
/* WARNING: Removing unreachable block (ram,0x0004da3c) */
/* WARNING: Type propagation algorithm not settling */

reg_errcode_t sift_states_backward(re_match_context_t *mctx,re_sift_context_t *sctx)

{
  byte bVar1;
  bool bVar2;
  bool bVar3;
  bool bVar4;
  bool bVar5;
  re_dfastate_t *prVar6;
  undefined3 extraout_var;
  reg_errcode_t rVar7;
  code *pcVar8;
  code *pcVar9;
  code *pcVar10;
  _Bool _Var28;
  int iVar11;
  int *piVar12;
  wint_t *pwVar13;
  re_backref_cache_entry *prVar14;
  uint uVar15;
  re_dfa_t **pprVar16;
  int iVar17;
  re_dfastate_t *prVar18;
  int iVar19;
  int iVar20;
  Idx IVar21;
  re_dfastate_t **pprVar22;
  char cVar29;
  Idx *pIVar23;
  int iVar24;
  anon_union_4_2_9a799d16_for___pthread_mutex_s_5 aVar25;
  regmatch_t *prVar26;
  regmatch_t *prVar27;
  bool bVar30;
  re_match_context_t *preg;
  int iVar31;
  uint uVar32;
  uint extraout_v1;
  int iVar33;
  int iVar34;
  int iVar35;
  re_bitset_ptr_t pbVar36;
  uint uVar37;
  re_dfastate_t *prVar38;
  re_dfastate_t *prVar39;
  re_token_t *prVar40;
  undefined1 *new_buf_len;
  uint uVar41;
  re_dfa_t *prVar42;
  re_dfa_t *prVar43;
  re_dfa_t *in_a2;
  re_node_set *src2;
  undefined4 uVar44;
  re_dfa_t *in_a3;
  undefined1 *puVar45;
  re_dfa_t *prVar46;
  uchar *puVar47;
  re_dfa_t *prVar48;
  re_dfastate_t *prVar49;
  Idx **nodes_1;
  re_dfa_t *prVar50;
  re_dfastate_t *prVar51;
  re_dfa_t *unaff_s4;
  re_dfastate_t *prVar52;
  int unaff_s5;
  re_dfastate_t *unaff_s6;
  re_dfa_t *prVar53;
  int iVar54;
  re_dfa_t *unaff_s7;
  code *pcVar55;
  undefined *puVar56;
  int unaff_s8;
  re_dfastate_t *prStack_1f0;
  re_dfastate_t **pprStack_1ec;
  re_dfastate_t *prStack_1e4;
  char *pcStack_1e0;
  re_dfa_t **pprStack_1dc;
  re_dfastate_t *prStack_1d0;
  int iStack_180;
  re_dfa_t *prStack_16c;
  undefined1 auStack_168 [8];
  re_sift_context_t rStack_160;
  undefined1 auStack_144 [128];
  int iStack_c4;
  re_sub_match_top_t **pprStack_c0;
  int iStack_bc;
  re_dfa_t *prStack_b8;
  re_sift_context_t *prStack_b4;
  re_match_context_t *prStack_b0;
  re_dfa_t *prStack_ac;
  re_dfa_t *prStack_a8;
  int iStack_a4;
  re_dfastate_t *prStack_a0;
  re_dfa_t *prStack_9c;
  int iStack_98;
  code *pcStack_94;
  re_dfa_t *prStack_88;
  re_dfa_t *in_stack_ffffff80;
  re_dfa_t *prStack_7c;
  re_dfa_t *prStack_78;
  regmatch_t *prStack_74;
  int iStack_64;
  re_node_set cur_dest;
  
  puVar56 = PTR___stack_chk_guard_00075be8;
  cur_dest.alloc = 1;
  cur_dest.nelem = 1;
  preg = *(re_match_context_t **)PTR___stack_chk_guard_00075be8;
  prVar48 = (re_dfa_t *)sctx->last_str_idx;
  prVar50 = (re_dfa_t *)sctx->last_node;
  prVar46 = (re_dfa_t *)sctx;
  cur_dest.elems = (Idx *)(*(code *)PTR_malloc_00075b2c)(4);
  if (cur_dest.elems == (Idx *)0x0) {
    rVar7 = _REG_ESPACE;
  }
  else {
    *cur_dest.elems = (Idx)prVar50;
    pcVar55 = (code *)(PTR_LAB_00075978 + -0x1248);
    prVar46 = (re_dfa_t *)sctx;
    in_a2 = prVar48;
    in_a3 = (re_dfa_t *)&cur_dest;
    rVar7 = update_cur_sifted_state(mctx,sctx,(Idx)prVar48,&cur_dest);
    if (rVar7 == _REG_NOERROR) {
      iStack_64 = 0;
      if (0 < (int)prVar48) {
        pcVar8 = (code *)(PTR_LAB_00075920 + 0x5610);
        pcVar9 = (code *)(PTR_LAB_00075920 + 0x33f8);
        pcVar10 = (code *)(PTR_LAB_00075920 + 0x5230);
        do {
          unaff_s7 = (re_dfa_t *)((int)prVar48 * 4);
          if (*(int *)((int)unaff_s7->word_char + (int)(sctx->sifted_states + -0x18)) == 0) {
            iStack_64 = iStack_64 + 1;
            if (mctx->max_mb_elem_len < iStack_64) goto LAB_0004d6a0;
          }
          else {
            iStack_64 = 0;
            if (mctx->max_mb_elem_len < 0) {
LAB_0004d6a0:
              prVar46 = (re_dfa_t *)0x0;
              in_a2 = unaff_s7;
              (*(code *)PTR_memset_00075ad4)();
              (*(code *)PTR_free_00075bfc)(cur_dest.elems);
              rVar7 = _REG_NOERROR;
              goto LAB_0004d644;
            }
          }
          cur_dest.nelem = 0;
          unaff_s6 = (mctx->state_log + (int)prVar48)[-1];
          prVar48 = (re_dfa_t *)(prVar48[-1].lock.__size + 0x17);
          if ((unaff_s6 != (re_dfastate_t *)0x0) &&
             (unaff_s4 = mctx->dfa, 0 < (unaff_s6->non_eps_nodes).nelem)) {
            unaff_s5 = 0;
            do {
              prVar50 = (re_dfa_t *)(unaff_s6->non_eps_nodes).elems[unaff_s5];
              unaff_s8 = (int)prVar50 * 8;
              prVar40 = unaff_s4->nodes + (int)prVar50;
              if ((*(uint *)&prVar40->field_0x4 & 0x800) == 0) {
LAB_0004d464:
                _Var28 = check_node_accept(mctx,prVar40,(Idx)prVar48);
                if ((CONCAT31(extraout_var,_Var28) != 0) &&
                   (iVar11 = *(int *)((int)unaff_s7->word_char + (int)(sctx->sifted_states + -0x18))
                   , iVar11 != 0)) {
                  in_a2 = (re_dfa_t *)unaff_s4->nexts[(int)prVar50];
                  iVar31 = (*pcVar10)(*(undefined4 *)(iVar11 + 8),iVar11 + 0xc);
                  iVar11 = 1;
                  if (iVar31 != 0) goto LAB_0004d4b4;
                }
              }
              else {
                prVar46 = mctx->dfa;
                iVar31 = sctx->last_str_idx;
                in_a2 = prVar50;
                in_a3 = (re_dfa_t *)mctx;
                in_stack_ffffff80 = prVar48;
                iVar11 = check_node_accept_bytes
                                   ((re_dfa_t *)prVar46->nodes,(Idx)&prVar46->syntax,
                                    (re_string_t *)prVar50,(Idx)mctx,prVar48);
                if (iVar11 < 1) {
                  if (iVar11 == 0) {
                    prVar40 = unaff_s4->nodes;
                    goto LAB_0004d460;
                  }
                }
                else {
                  iVar17 = (int)prVar48->word_char + iVar11 + -0x60;
                  if (iVar17 <= iVar31) {
                    prVar39 = sctx->sifted_states[iVar17];
                    if (prVar39 != (re_dfastate_t *)0x0) {
                      in_a2 = (re_dfa_t *)prVar46->nexts[(int)prVar50];
                      iVar31 = (*pcVar10)((prVar39->nodes).nelem,&(prVar39->nodes).elems);
                      if (iVar31 != 0) goto LAB_0004d4b4;
                    }
                    prVar40 = unaff_s4->nodes;
LAB_0004d460:
                    prVar40 = prVar40 + (int)prVar50;
                    goto LAB_0004d464;
                  }
                }
LAB_0004d4b4:
                if ((sctx->limits).nelem != 0) {
                  in_stack_ffffff80 = (re_dfa_t *)((int)prVar48->word_char + iVar11 + -0x60);
                  in_a2 = (re_dfa_t *)&(sctx->limits).elems;
                  in_a3 = (re_dfa_t *)unaff_s4->nexts[(int)prVar50];
                  iVar11 = (*pcVar8)(mctx,&(sctx->limits).nelem);
                  prStack_7c = prVar50;
                  prStack_78 = prVar48;
                  if (iVar11 != 0) goto LAB_0004d510;
                }
                prVar46 = prVar50;
                iVar11 = (*pcVar9)((re_dfa_t *)&cur_dest);
                if (iVar11 == 0) {
                  rVar7 = _REG_ESPACE;
                  goto LAB_0004d62c;
                }
              }
LAB_0004d510:
              unaff_s5 = unaff_s5 + 1;
              in_a3 = (re_dfa_t *)&cur_dest;
            } while (unaff_s5 < (unaff_s6->non_eps_nodes).nelem);
          }
          prVar46 = (re_dfa_t *)sctx;
          in_a2 = prVar48;
          in_a3 = (re_dfa_t *)&cur_dest;
          rVar7 = (*pcVar55)(mctx);
          if (rVar7 != _REG_NOERROR) goto LAB_0004d62c;
        } while (prVar48 != (re_dfa_t *)0x0);
      }
      rVar7 = _REG_NOERROR;
    }
LAB_0004d62c:
    (*(code *)PTR_free_00075bfc)(cur_dest.elems);
  }
LAB_0004d644:
  if (preg == *(re_match_context_t **)puVar56) {
    return rVar7;
  }
  pcVar55 = re_search_internal;
  puVar56 = PTR___stack_chk_fail_00075ba8;
  (*(code *)PTR___stack_chk_fail_00075ba8)();
  piVar12 = *(int **)(puVar56 + 0x2850c);
  iStack_bc = *piVar12;
  prVar53 = (re_dfa_t *)(preg->input).raw_mbs;
  prStack_b8 = prVar48;
  prStack_b4 = sctx;
  prStack_b0 = mctx;
  prStack_ac = prVar50;
  prStack_a8 = unaff_s4;
  iStack_a4 = unaff_s5;
  prStack_a0 = unaff_s6;
  prStack_9c = unaff_s7;
  iStack_98 = unaff_s8;
  pcStack_94 = pcVar55;
  prStack_88 = in_a2;
  (**(code **)(puVar56 + 0x283f8))((re_match_context_t *)auStack_144,0,0x88);
  pcStack_1e0 = (char *)(preg->input).cur_state.__count;
  if (pcStack_1e0 != (char *)0x0) {
    bVar1 = *(byte *)&(preg->input).valid_len;
    if (((bVar1 & 0x10) == 0) || (in_a3 == in_stack_ffffff80)) {
      pcStack_1e0 = (char *)0x0;
    }
    else if ((char)bVar1 < '\0') {
      pcStack_1e0 = (char *)0x0;
    }
  }
  prVar48 = (re_dfa_t *)(preg->input).raw_mbs_idx;
  if (prVar48 < prStack_78) {
    puVar45 = (undefined1 *)((int)&prStack_78[-1].lock + 0x17);
    iStack_180 = (int)puVar45 - (int)prVar48;
    prStack_78 = (re_dfa_t *)((int)prStack_78 + ((int)prVar48 - (int)puVar45));
    pwVar13 = (preg->input).wcs;
  }
  else {
    pwVar13 = (preg->input).wcs;
    iStack_180 = 0;
  }
  auStack_144._84_4_ = prVar53;
  if ((((pwVar13 == (wint_t *)0x0) || (prVar53->init_state == (re_dfastate_t *)0x0)) ||
      (prVar53->init_state_word == (re_dfastate_t *)0x0)) ||
     ((prVar53->init_state_nl == (re_dfastate_t *)0x0 ||
      (prVar53->init_state_begbuf == (re_dfastate_t *)0x0)))) {
LAB_0004db54:
    prStack_1e4 = (re_dfastate_t *)0x1;
    goto LAB_0004db58;
  }
  if ((((prVar53->init_state->nodes).nelem == 0) && ((prVar53->init_state_word->nodes).nelem == 0))
     && (((prVar53->init_state_nl->nodes).nelem == 0 || (((preg->input).valid_len & 0x1000000) == 0)
         ))) {
    if (in_a3 == (re_dfa_t *)0x0) {
      in_stack_ffffff80 = (re_dfa_t *)0x0;
    }
    else {
      if (in_stack_ffffff80 != (re_dfa_t *)0x0) goto LAB_0004db54;
      in_a3 = (re_dfa_t *)0x0;
    }
  }
  if (prStack_78 == (re_dfa_t *)0x0) {
    bVar30 = prVar53->nbackref != 0;
  }
  else {
    bVar30 = true;
  }
  auStack_144._80_4_ = prVar53->mb_cur_max;
  puVar45 = (undefined1 *)(prVar53->nodes_len + 1);
  puVar47 = (uchar *)(preg->input).cur_state.__value.__wch;
  if ((int)puVar45 < (int)auStack_144._80_4_) {
    puVar45 = (undefined1 *)auStack_144._80_4_;
  }
  new_buf_len = (undefined1 *)((int)&prStack_88->nodes + 1);
  auStack_144[0x48] = (byte)((uint)((int)(preg->input).offsets << 9) >> 0x1f);
  auStack_144[0x4b] = 1;
  if (puVar47 == (uchar *)0x0) {
    auStack_144[0x4b] = auStack_144[0x48];
  }
  if ((int)puVar45 <= (int)new_buf_len) {
    new_buf_len = puVar45;
  }
  auStack_144[0x49] = (byte)((uint)(*(int *)&prVar53->field_0x58 << 2) >> 0x1f);
  auStack_144[0x4a] = (byte)((uint)(*(int *)&prVar53->field_0x58 << 3) >> 0x1f);
  auStack_144._48_4_ = prStack_88;
  auStack_144._44_4_ = prStack_88;
  auStack_144._56_4_ = prStack_88;
  auStack_144._52_4_ = prStack_88;
  auStack_144._0_4_ = prVar46;
  auStack_144._64_4_ = puVar47;
  prStack_1e4 = (re_dfastate_t *)
                re_string_realloc_buffers((re_string_t *)auStack_144,(Idx)new_buf_len);
  pprVar22 = (re_dfastate_t **)auStack_144._100_4_;
  if (prStack_1e4 != (re_dfastate_t *)0x0) {
LAB_0004dbbc:
    while( true ) {
      pcVar55 = *(code **)(puVar56 + 0x28520);
LAB_0004dbc0:
      (*pcVar55)(pprVar22);
      if (prVar53->nbackref != 0) {
LAB_0004dc14:
        match_ctx_clean((re_match_context_t *)auStack_144);
        (**(code **)(puVar56 + 0x28520))(pprStack_c0);
        (**(code **)(puVar56 + 0x28520))(auStack_144._116_4_);
      }
LAB_0004dbd4:
      re_string_destruct((re_string_t *)auStack_144);
LAB_0004db58:
      if (iStack_bc == *piVar12) break;
      prStack_1e4 = (re_dfastate_t *)(**(code **)(puVar56 + 0x284cc))();
      pprVar22 = (re_dfastate_t **)auStack_144._100_4_;
    }
    return (reg_errcode_t)prStack_1e4;
  }
  auStack_144._68_4_ = prVar53->word_char;
  auStack_144[0x4e] = (byte)((uint)(*(int *)&prVar53->field_0x58 << 4) >> 0x1f);
  if ((auStack_144[0x4b] != 0) ||
     (auStack_144._4_4_ = prVar46, auStack_144._28_4_ = prStack_88, 1 < prVar53->mb_cur_max)) {
    auStack_144._28_4_ = (re_dfa_t *)0x0;
  }
  auStack_144._56_4_ = prStack_7c;
  auStack_144._52_4_ = prStack_7c;
  auStack_144._32_4_ = auStack_144._28_4_;
  auStack_144[0x4d] = (byte)((uint)((preg->input).valid_len << 7) >> 0x1f);
  iVar11 = prVar53->nbackref;
  iVar31 = iVar11 * 2;
  auStack_144._88_4_ = &_gp;
  auStack_144._92_4_ = (re_dfastate_t *)0xffffffff;
  if (0 < iVar31) {
    if (0xccccccc < iVar31) goto LAB_0004dbf8;
    prVar14 = (re_backref_cache_entry *)(**(code **)(puVar56 + 0x28450))(iVar11 * 0x28);
    auStack_144._116_4_ = prVar14;
    pprStack_c0 = (re_sub_match_top_t **)(**(code **)(puVar56 + 0x28450))(iVar11 * 8);
    if ((prVar14 == (re_backref_cache_entry *)0x0) || (pprStack_c0 == (re_sub_match_top_t **)0x0))
    goto LAB_0004dbf8;
  }
  auStack_144._112_4_ = iVar31;
  iStack_c4 = iVar31;
  bVar2 = (re_dfa_t *)0x1 < prStack_78;
  auStack_144._120_4_ = (anon_union_4_2_9a799d16_for___pthread_mutex_s_5)0x1;
  if ((bVar2) || ((prVar53->field_0x58 & 0x40) != 0)) {
    if (0x3ffffffe < (uint)auStack_144._36_4_) {
LAB_0004dbf8:
      prStack_1e4 = (re_dfastate_t *)0xc;
      (**(code **)(puVar56 + 0x28520))(auStack_144._100_4_);
      if (prVar53->nbackref == 0) goto LAB_0004dbd4;
      goto LAB_0004dc14;
    }
    auStack_144._100_4_ = (**(code **)(puVar56 + 0x28450))((auStack_144._36_4_ + 1) * 4);
    pprVar22 = (re_dfastate_t **)auStack_144._100_4_;
    if ((re_dfastate_t **)auStack_144._100_4_ == (re_dfastate_t **)0x0) {
LAB_0004dbb4:
      prStack_1e4 = (re_dfastate_t *)0xc;
      goto LAB_0004dbbc;
    }
  }
  else {
    auStack_144._100_4_ = (re_dfastate_t **)0x0;
  }
  iVar31 = prVar53->mb_cur_max;
  iVar11 = -1;
  prStack_16c = in_a3;
  auStack_144._60_4_ = 6;
  uVar32 = (uint)((int)in_stack_ffffff80 < (int)in_a3);
  prVar46 = in_stack_ffffff80;
  if (uVar32 == 0) {
    iVar11 = 1;
    prVar46 = in_a3;
  }
  if ((int)in_stack_ffffff80 <= (int)in_a3) {
    in_stack_ffffff80 = in_a3;
  }
  if (pcStack_1e0 == (char *)0x0) goto LAB_0004eabc;
  uVar15 = 4;
  if (((iVar31 != 1) && (uVar15 = 0, -1 < (int)(preg->input).offsets << 9)) &&
     (uVar15 = 4, puVar47 != (uchar *)0x0)) {
    uVar15 = 0;
  }
  uVar41 = 2;
  if (uVar32 != 0) {
    uVar41 = 0;
  }
  uVar41 = puVar47 != (uchar *)0x0 | uVar15 | uVar41;
LAB_0004dab0:
  if (((int)prVar46 <= (int)in_a3) && ((int)in_a3 <= (int)in_stack_ffffff80)) {
    pprVar16 = &prStack_16c;
    if (uVar32 != 0) {
      pprVar16 = (re_dfa_t **)0x0;
    }
    iVar33 = *(int *)(puVar56 + 0x28244);
    iVar17 = *(int *)(puVar56 + 0x27edc);
    iVar34 = *(int *)(puVar56 + 0x2829c);
    pbVar36 = (re_bitset_ptr_t)auStack_144._24_4_;
    prVar48 = prStack_88;
    do {
      prStack_88 = prVar48;
      if (uVar41 - 4 < 5) {
                    /* WARNING: Could not recover jumptable at 0x0004db3c. Too many branches */
                    /* WARNING: Treating indirect jump as call */
        rVar7 = (*(code *)(puVar56 + *(int *)(iVar17 + 0x2be4 + (uVar41 - 4) * 4) + 0x2fea4))();
        return rVar7;
      }
      auStack_144._24_4_ = pbVar36;
      while( true ) {
        prVar50 = (re_dfa_t *)((int)in_a3 - (int)pbVar36);
        if ((uint)auStack_144._32_4_ <= prVar50) {
          prStack_1e4 = (re_dfastate_t *)
                        (*(code *)(iVar33 + 0x7eac))((re_match_context_t *)auStack_144,in_a3,&_gp);
          pprVar22 = (re_dfastate_t **)auStack_144._100_4_;
          if (prStack_1e4 != (re_dfastate_t *)0x0) goto LAB_0004dbbc;
          prVar50 = (re_dfa_t *)((int)in_a3 - auStack_144._24_4_);
          pbVar36 = (re_bitset_ptr_t)auStack_144._24_4_;
        }
        if ((int)in_a3 < (int)prVar48) {
          cVar29 = pcStack_1e0
                   [*(byte *)((int)(((re_dfa_t *)
                                    (((re_dfa_t *)(prVar50->word_char + -0x18))->word_char + -0x18))
                                    ->word_char + 0xffffffe8) +
                             (int)((re_dfa_t *)
                                  (((re_dfa_t *)
                                   (((re_dfa_t *)
                                    ((bitset_word_t *)(auStack_144._4_4_ + 0x60) + -0x18))->
                                    word_char + -0x18))->word_char + -0x18))->word_char +
                             0xffffffa0U)];
        }
        else {
          cVar29 = *pcStack_1e0;
        }
        if (cVar29 != '\0') break;
        in_a3 = (re_dfa_t *)((int)in_a3->word_char + iVar11 + -0x60);
        prStack_16c = in_a3;
        if (((int)in_a3 < (int)prVar46) || ((int)in_stack_ffffff80 < (int)in_a3)) goto LAB_0004df68;
      }
      prVar18 = (re_dfastate_t *)
                re_string_reconstruct((re_string_t *)auStack_144,(Idx)in_a3,0x7d580);
      uVar44 = auStack_144._84_4_;
      prVar39 = (re_dfastate_t *)auStack_144._40_4_;
      pprVar22 = (re_dfastate_t **)auStack_144._100_4_;
      prStack_1e4 = prVar18;
      if (prVar18 != (re_dfastate_t *)0x0) goto LAB_0004dbbc;
      if (((iVar31 == 1) || ((re_dfa_t *)auStack_144._28_4_ == (re_dfa_t *)0x0)) ||
         (*(re_hashval_t *)auStack_144._8_4_ != 0xffffffff)) {
        auStack_144._120_4_ = (anon_union_4_2_9a799d16_for___pthread_mutex_s_5)0x0;
        auStack_144._108_4_ = 0;
        prVar52 = *(re_dfastate_t **)(auStack_144._84_4_ + 0x24);
        prStack_1d0 = (re_dfastate_t *)auStack_144._40_4_;
        auStack_144._104_4_ = 0;
        auStack_168._0_4_ = (re_dfastate_t *)0x0;
        if ((prVar52->field_0x34 & 1) != 0) {
          uVar32 = re_string_context_at
                             ((re_string_t *)auStack_144,
                              (Idx)&((re_dfastate_t *)(auStack_144._40_4_ + -0x38))->field_0x37,
                              auStack_144._88_4_);
          if ((uVar32 & 1) == 0) {
            if (uVar32 == 0) goto LAB_0004dd24;
            if ((uVar32 & 6) == 6) {
              prVar52 = *(re_dfastate_t **)(uVar44 + 0x30);
            }
            else if ((uVar32 & 2) == 0) {
              if ((uVar32 & 4) == 0) goto LAB_0004dd24;
              prVar52 = re_acquire_state_context
                                  ((reg_errcode_t *)auStack_168,(re_dfa_t *)uVar44,
                                   prVar52->entrance_nodes,uVar32);
            }
            else {
              prVar52 = *(re_dfastate_t **)(uVar44 + 0x2c);
            }
          }
          else {
            prVar52 = *(re_dfastate_t **)(uVar44 + 0x28);
          }
          if (prVar52 == (re_dfastate_t *)0x0) goto code_r0x0004ea7c;
        }
LAB_0004dd24:
        bVar4 = pprVar16 != (re_dfa_t **)0x0;
        if (((re_dfastate_t **)auStack_144._100_4_ == (re_dfastate_t **)0x0) ||
           (iVar35 = *(Idx *)(uVar44 + 0x4c),
           *(re_dfastate_t **)(auStack_144._100_4_ + (int)prVar39 * 4) = prVar52, iVar35 == 0)) {
LAB_0004dd48:
          if (*(int *)&prVar52->field_0x34 << 4 < 0) {
            if (((prVar52->field_0x34 & 1) == 0) ||
               (IVar21 = check_halt_state_context
                                   ((re_match_context_t *)auStack_144,
                                    (re_dfastate_t *)(prVar52->nodes).nelem,
                                    (Idx)&(prVar52->nodes).elems,prVar39), IVar21 != 0)) {
              prVar38 = prVar39;
              bVar5 = bVar30;
              if (!bVar30) goto LAB_0004e0e4;
            }
            else {
              prVar39 = (re_dfastate_t *)0xffffffff;
              bVar5 = false;
            }
          }
          else {
            prVar39 = (re_dfastate_t *)0xffffffff;
            bVar5 = false;
          }
          iVar35 = *(int *)(puVar56 + 0x28244);
          iVar19 = *(int *)(puVar56 + 0x2829c);
          prVar38 = (re_dfastate_t *)auStack_144._40_4_;
          pprStack_1dc = pprVar16;
          while ((int)prVar38 < (int)auStack_144._56_4_) {
            prVar51 = (re_dfastate_t *)((int)&prVar38->hash + 1);
            if ((((int)prVar51 < (int)auStack_144._36_4_) ||
                ((int)auStack_144._48_4_ <= (int)auStack_144._36_4_)) &&
               (((int)prVar51 < (int)auStack_144._28_4_ ||
                ((int)auStack_144._48_4_ <= (int)auStack_144._28_4_)))) {
              iVar20 = *(int *)&prVar52->field_0x34;
              prVar48 = (re_dfa_t *)auStack_144._84_4_;
            }
            else {
              auStack_168._0_4_ =
                   (*(code *)(iVar35 + 0x41e4))
                             ((re_match_context_t *)auStack_144,
                              (undefined1 *)((int)&prVar38->hash + 2));
              if ((re_dfastate_t *)auStack_168._0_4_ != (re_dfastate_t *)0x0) {
                if ((re_dfastate_t *)auStack_168._0_4_ == (re_dfastate_t *)0xc) goto LAB_0004dbf8;
                uVar44 = 0x46c;
                goto LAB_0004ea9c;
              }
              iVar20 = *(int *)&prVar52->field_0x34;
              prVar38 = (re_dfastate_t *)auStack_144._40_4_;
              prVar48 = (re_dfa_t *)auStack_144._84_4_;
            }
            auStack_144._84_4_ = prVar48;
            if (iVar20 << 5 < 0) {
              iVar20 = (prVar52->nodes).nelem;
              if (0 < iVar20) {
                in_a3 = (re_dfa_t *)0x0;
                iVar24 = *(int *)(puVar56 + 0x28244);
                pcVar55 = (code *)(*(int *)(puVar56 + 0x28244) + 0x7ab0);
                do {
                  prVar40 = prVar48->nodes;
                  iVar54 = (prVar52->nodes).elems[(int)in_a3];
                  uVar32 = *(uint *)&prVar40[iVar54].field_0x4;
                  if ((uVar32 & 0x800) != 0) {
                    if ((uVar32 & 0xffc000) != 0) {
                      uVar15 = (*pcVar55)((re_match_context_t *)auStack_144,prVar38,
                                          auStack_144._88_4_);
                      uVar32 = (uVar32 << 8) >> 0x16;
                      if ((uVar32 & 4) == 0) {
                        uVar37 = uVar15 & 1;
                        if ((uVar32 & 8) != 0) goto joined_r0x0004e514;
                      }
                      else {
                        uVar37 = uVar32 & 8;
                        if ((uVar15 & 1) == 0) goto LAB_0004e670;
joined_r0x0004e514:
                        if (uVar37 != 0) goto LAB_0004e670;
                      }
                      if ((((uVar32 & 0x20) != 0) && ((uVar15 & 2) == 0)) ||
                         (((uVar32 & 0x80) != 0 && ((uVar15 & 8) == 0)))) goto LAB_0004e670;
                    }
                    aVar25.__spins =
                         (*(code *)(iVar19 + -0x4eb0))
                                   (prVar40,&prVar48->syntax,iVar54,
                                    (re_match_context_t *)auStack_144,prVar38);
                    if (aVar25.__spins != 0) {
                      if ((int)auStack_144._120_4_ < aVar25.__spins) {
                        auStack_144._120_4_ = aVar25.__spins;
                      }
                      puVar45 = (undefined1 *)
                                ((int)(re_hashval_t *)auStack_144._40_4_ + aVar25.__spins);
                      auStack_168._4_4_ =
                           (*(code *)(iVar24 + 0x43b0))((re_match_context_t *)auStack_144,puVar45);
                      prVar38 = (re_dfastate_t *)auStack_168._4_4_;
                      if ((re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0)
                      goto joined_r0x0004e770;
                      iVar20 = (int)puVar45 * 4;
                      pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + iVar20);
                      prVar38 = *pprVar22;
                      src2 = prVar48->eclosures + prVar48->nexts[iVar54];
                      if (prVar38 == (re_dfastate_t *)0x0) {
                        rStack_160.sifted_states = (re_dfastate_t **)src2->alloc;
                        rStack_160.limited_states = (re_dfastate_t **)src2->nelem;
                        rStack_160.last_node = (Idx)src2->elems;
                        uVar32 = (*pcVar55)((re_match_context_t *)auStack_144,
                                            (re_dfastate_t *)(puVar45 + -1),auStack_144._88_4_);
                        prVar38 = re_acquire_state_context
                                            ((reg_errcode_t *)(auStack_168 + 4),prVar48,
                                             (re_node_set *)(auStack_168 + 8),uVar32);
                        *pprVar22 = prVar38;
                      }
                      else {
                        auStack_168._4_4_ =
                             re_node_set_init_union
                                       ((re_node_set *)(auStack_168 + 8),prVar38->entrance_nodes,
                                        src2);
                        prVar38 = (re_dfastate_t *)auStack_168._4_4_;
                        if ((re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0)
                        goto joined_r0x0004e770;
                        uVar32 = (*pcVar55)((re_match_context_t *)auStack_144,
                                            (re_dfastate_t *)(puVar45 + -1),auStack_144._88_4_);
                        pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + iVar20);
                        prVar38 = re_acquire_state_context
                                            ((reg_errcode_t *)(auStack_168 + 4),prVar48,
                                             (re_node_set *)(auStack_168 + 8),uVar32);
                        pcVar8 = *(code **)(puVar56 + 0x28520);
                        *pprVar22 = prVar38;
                        (*pcVar8)(rStack_160.last_node);
                      }
                      if ((*(re_dfastate_t **)(auStack_144._100_4_ + iVar20) == (re_dfastate_t *)0x0
                          ) && (prVar38 = (re_dfastate_t *)auStack_168._4_4_,
                               (re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0))
                      goto joined_r0x0004e770;
                    }
                    iVar20 = (prVar52->nodes).nelem;
                    prVar38 = (re_dfastate_t *)auStack_144._40_4_;
                  }
LAB_0004e670:
                  in_a3 = (re_dfa_t *)((int)&((re_string_t *)&in_a3->nodes)->raw_mbs + 1);
                } while ((int)in_a3 < iVar20);
              }
              auStack_168._0_4_ = (re_dfastate_t *)0x0;
            }
            auStack_144._40_4_ = (int)&prVar38->hash + 1;
            uVar32 = (uint)*(byte *)((int)((re_dfa_t *)
                                          ((bitset_word_t *)(auStack_144._4_4_ + 0x60) + -0x18))->
                                          word_char + (int)&prVar38[-2].non_eps_nodes);
            do {
              if (prVar52->trtable != (re_dfastate_t **)0x0) {
                prVar49 = prVar52->trtable[uVar32];
LAB_0004ddf0:
                if ((re_dfastate_t **)auStack_144._100_4_ != (re_dfastate_t **)0x0)
                goto LAB_0004ddfc;
                goto LAB_0004de1c;
              }
              pprVar22 = prVar52->word_trtable;
              if (pprVar22 != (re_dfastate_t **)0x0) {
                uVar15 = re_string_context_at
                                   ((re_string_t *)auStack_144,
                                    (Idx)&((re_dfastate_t *)(auStack_144._40_4_ + -0x38))->
                                          field_0x37,auStack_144._88_4_);
                if ((uVar15 & 1) == 0) {
                  prVar49 = pprVar22[uVar32];
                }
                else {
                  prVar49 = pprVar22[uVar32 + 0x100];
                }
                goto LAB_0004ddf0;
              }
              iVar20 = (*(code *)(iVar34 + -0x7510))(auStack_144._84_4_,prVar52);
            } while (iVar20 != 0);
            auStack_168._0_4_ = (re_dfastate_t *)0xc;
            prVar38 = (re_dfastate_t *)auStack_168._0_4_;
joined_r0x0004e770:
            auStack_168._0_4_ = prVar38;
            if ((re_dfastate_t **)auStack_144._100_4_ == (re_dfastate_t **)0x0) {
              pprVar22 = (re_dfastate_t **)0x0;
              goto LAB_0004dbb4;
            }
            prVar49 = (re_dfastate_t *)0x0;
LAB_0004ddfc:
            prVar49 = merge_state_with_log
                                ((reg_errcode_t *)auStack_168,(re_match_context_t *)auStack_144,
                                 prVar49);
LAB_0004de1c:
            prVar38 = (re_dfastate_t *)auStack_144._40_4_;
            if (prVar49 == (re_dfastate_t *)0x0) {
              pprVar22 = (re_dfastate_t **)auStack_144._100_4_;
              if ((re_dfastate_t *)auStack_168._0_4_ != (re_dfastate_t *)0x0) goto LAB_0004dbb4;
              if (((re_dfastate_t **)auStack_144._100_4_ == (re_dfastate_t **)0x0) ||
                 ((bVar5 && (!bVar30)))) break;
              in_a3 = (re_dfa_t *)auStack_168;
              do {
                bVar3 = false;
                pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + auStack_144._40_4_ * 4);
                prVar38 = (re_dfastate_t *)auStack_144._40_4_;
                do {
                  prVar49 = (re_dfastate_t *)((int)&prVar38->hash + 1);
                  pprVar22 = pprVar22 + 1;
                  if ((int)auStack_144._104_4_ < (int)prVar49) {
                    if (bVar3) {
                      auStack_144._40_4_ = prVar38;
                    }
                    goto LAB_0004e0cc;
                  }
                  bVar3 = true;
                  prVar38 = prVar49;
                } while (*pprVar22 == (re_dfastate_t *)0x0);
                auStack_144._40_4_ = prVar49;
                prVar49 = merge_state_with_log
                                    ((reg_errcode_t *)in_a3,(re_match_context_t *)auStack_144,
                                     (re_dfastate_t *)0x0);
                prVar38 = (re_dfastate_t *)auStack_144._40_4_;
                if ((re_dfastate_t *)auStack_168._0_4_ != (re_dfastate_t *)0x0) {
                  if (prVar49 == (re_dfastate_t *)0x0) goto LAB_0004e0cc;
                  break;
                }
              } while (prVar49 == (re_dfastate_t *)0x0);
            }
            prVar6 = prStack_1d0;
            if ((bVar4) && (prVar6 = prVar51, prVar52 != prVar49)) {
              bVar4 = false;
              prVar6 = prStack_1d0;
            }
            prStack_1d0 = prVar6;
            prVar52 = prVar49;
            auStack_144._40_4_ = prVar38;
            if (((prVar49->field_0x34 & 8) != 0) &&
               (((prVar49->field_0x34 & 1) == 0 ||
                (IVar21 = check_halt_state_context
                                    ((re_match_context_t *)auStack_144,
                                     (re_dfastate_t *)(prVar49->nodes).nelem,
                                     (Idx)&(prVar49->nodes).elems,prVar38), IVar21 != 0)))) {
              if (!bVar30) goto LAB_0004e0e4;
              pprStack_1dc = (re_dfa_t **)0x0;
              prVar39 = prVar38;
              bVar5 = bVar30;
            }
          }
LAB_0004e0cc:
          prVar38 = prVar39;
          if (pprStack_1dc != (re_dfa_t **)0x0) {
            *pprStack_1dc = (re_dfa_t *)((int)&prStack_1d0->hash + (int)*pprStack_1dc);
          }
        }
        else {
          pIVar23 = &(prVar52->nodes).nelem;
          nodes_1 = &(prVar52->nodes).elems;
          prVar38 = (re_dfastate_t *)
                    check_subexp_matching_top
                              ((re_match_context_t *)auStack_144,(re_node_set *)pIVar23,(Idx)nodes_1
                               ,(re_node_set *)0x0);
          auStack_168._0_4_ = prVar38;
          if (prVar38 == (re_dfastate_t *)0x0) {
            if ((prVar52->field_0x34 & 2) == 0) {
              bVar4 = false;
            }
            else {
              prVar38 = (re_dfastate_t *)
                        transit_state_bkref((re_match_context_t *)auStack_144,(re_node_set *)pIVar23
                                            ,(re_node_set *)nodes_1);
              auStack_168._0_4_ = prVar38;
              if (prVar38 != (re_dfastate_t *)0x0) goto LAB_0004e0e4;
              bVar4 = false;
            }
            goto LAB_0004dd48;
          }
        }
LAB_0004e0e4:
        pprVar22 = (re_dfastate_t **)auStack_144._100_4_;
        if (prVar38 != (re_dfastate_t *)0xffffffff) {
          if (prVar38 == (re_dfastate_t *)&SUB_fffffffe) goto LAB_0004dbf8;
          auStack_144._92_4_ = prVar38;
          if (((preg->input).valid_len & 0x8000000) == 0) {
            if (!bVar2) {
              iVar35 = prVar53->nbackref;
              goto joined_r0x0004e94c;
            }
            pcVar55 = (code *)(*(int *)(puVar56 + 0x28244) + 0x7d8c);
            prVar39 = *(re_dfastate_t **)(auStack_144._100_4_ + (int)prVar38 * 4);
            auStack_144._96_4_ =
                 check_halt_state_context
                           ((re_match_context_t *)auStack_144,
                            (re_dfastate_t *)(prVar39->nodes).nelem,(Idx)&(prVar39->nodes).elems,
                            prVar38);
            if (((char)prVar53->field_0x58 < '\0') || (prVar53->nbackref != 0)) goto LAB_0004e170;
          }
          else {
            iVar35 = prVar53->nbackref;
joined_r0x0004e94c:
            if (iVar35 != 0) {
              pcVar55 = (code *)(*(int *)(puVar56 + 0x28244) + 0x7d8c);
              prVar39 = *(re_dfastate_t **)(auStack_144._100_4_ + (int)prVar38 * 4);
              auStack_144._96_4_ =
                   check_halt_state_context
                             ((re_match_context_t *)auStack_144,
                              (re_dfastate_t *)(prVar39->nodes).nelem,(Idx)&(prVar39->nodes).elems,
                              prVar38);
LAB_0004e170:
              pIVar23 = (Idx *)auStack_144._96_4_;
              uVar44 = auStack_144._84_4_;
              if (prVar38 < (re_dfastate_t *)0x3fffffff) {
                prStack_1f0 = (re_dfastate_t *)((int)&prVar38->hash + 1);
                pprVar22 = (re_dfastate_t **)(**(code **)(puVar56 + 0x28450))((int)prStack_1f0 * 4);
                if (pprVar22 == (re_dfastate_t **)0x0) goto LAB_0004dbf8;
                if (*(Idx *)(uVar44 + 0x4c) == 0) {
                  rStack_160.limited_states = (re_dfastate_t **)0x0;
                  rStack_160.limits.alloc = 0;
                  rStack_160.limits.nelem = 0;
                  rStack_160.limits.elems = (Idx *)0x0;
                  rStack_160.sifted_states = pprVar22;
                  rStack_160.last_node = (Idx)pIVar23;
                  rStack_160.last_str_idx = (Idx)prVar38;
                  prStack_1e4 = (re_dfastate_t *)
                                sift_states_backward
                                          ((re_match_context_t *)auStack_144,
                                           (re_sift_context_t *)(auStack_168 + 8));
                  (**(code **)(puVar56 + 0x28520))(rStack_160.limits.elems);
                  if (prStack_1e4 == (re_dfastate_t *)0x0) {
                    if (*pprVar22 == (re_dfastate_t *)0x0) {
                      (**(code **)(puVar56 + 0x28520))(pprVar22);
                      goto LAB_0004e2d4;
                    }
LAB_0004e9f8:
                    (**(code **)(puVar56 + 0x28520))(auStack_144._100_4_);
                    auStack_144._92_4_ = prVar38;
                    auStack_144._96_4_ = pIVar23;
                    auStack_144._100_4_ = pprVar22;
                    goto LAB_0004e7e0;
                  }
LAB_0004ed18:
                  pprStack_1ec = (re_dfastate_t **)0x0;
                }
                else {
                  pprStack_1ec = (re_dfastate_t **)
                                 (**(code **)(puVar56 + 0x28450))((int)prStack_1f0 * 4);
                  if (pprStack_1ec == (re_dfastate_t **)0x0) {
                    (**(code **)(puVar56 + 0x28520))(pprVar22);
                    prStack_1e4 = (re_dfastate_t *)0xc;
                    pprVar22 = (re_dfastate_t **)auStack_144._100_4_;
                    goto LAB_0004dbbc;
                  }
                  iVar35 = *(int *)(puVar56 + 0x2829c);
                  while( true ) {
                    (**(code **)(puVar56 + 0x283f8))(pprStack_1ec,0,(int)prStack_1f0 * 4);
                    rStack_160.limits.alloc = 0;
                    rStack_160.limits.nelem = 0;
                    rStack_160.limits.elems = (Idx *)0x0;
                    rStack_160.sifted_states = pprVar22;
                    rStack_160.limited_states = pprStack_1ec;
                    rStack_160.last_node = (Idx)pIVar23;
                    rStack_160.last_str_idx = (Idx)prVar38;
                    prStack_1e4 = (re_dfastate_t *)
                                  (*(code *)(iVar35 + -0x2cf4))
                                            ((re_match_context_t *)auStack_144,auStack_168 + 8);
                    (**(code **)(puVar56 + 0x28520))(rStack_160.limits.elems);
                    if (prStack_1e4 != (re_dfastate_t *)0x0) break;
                    if ((*pprVar22 != (re_dfastate_t *)0x0) ||
                       (*pprStack_1ec != (re_dfastate_t *)0x0)) {
                      prStack_1e4 = (re_dfastate_t *)
                                    merge_state_array((re_dfa_t *)uVar44,pprVar22,pprStack_1ec,
                                                      (Idx)prStack_1f0);
                      (**(code **)(puVar56 + 0x28520))(pprStack_1ec);
                      if (prStack_1e4 != (re_dfastate_t *)0x0) goto LAB_0004ed18;
                      goto LAB_0004e9f8;
                    }
                    iVar19 = auStack_144._100_4_ + (int)prStack_1f0 * 4 + -4;
                    prStack_1f0 = prVar38;
                    while( true ) {
                      prVar38 = (re_dfastate_t *)&prStack_1f0[-1].field_0x37;
                      if (prVar38 == (re_dfastate_t *)0xffffffff) {
                        (**(code **)(puVar56 + 0x28520))(pprVar22);
                        (**(code **)(puVar56 + 0x28520))(pprStack_1ec);
                        goto LAB_0004e2d4;
                      }
                      iVar20 = *(int *)(iVar19 + -4);
                      if ((iVar20 != 0) && ((*(byte *)(iVar20 + 0x34) & 8) != 0)) break;
                      iVar19 = iVar19 + -4;
                      prStack_1f0 = prVar38;
                    }
                    pIVar23 = (Idx *)(*pcVar55)((re_match_context_t *)auStack_144,
                                                *(undefined4 *)(iVar20 + 8),iVar20 + 0xc,prVar38);
                  }
                }
                (**(code **)(puVar56 + 0x28520))(pprVar22);
                (**(code **)(puVar56 + 0x28520))(pprStack_1ec);
                pprVar22 = (re_dfastate_t **)auStack_144._100_4_;
                if (prStack_1e4 == (re_dfastate_t *)0x1) goto LAB_0004e2d4;
                goto LAB_0004dbbc;
              }
              prStack_1e4 = (re_dfastate_t *)0xc;
              goto LAB_0004dbbc;
            }
          }
LAB_0004e7e0:
          pprVar22 = (re_dfastate_t **)auStack_144._100_4_;
          prStack_1e4 = prVar18;
          if (prStack_78 == (re_dfa_t *)0x0) goto LAB_0004dbbc;
          IVar21 = (preg->input).valid_len;
          if (bVar2) {
            prVar27 = prStack_74 + 1;
            do {
              prVar27->rm_eo = -1;
              prVar26 = prVar27 + 1;
              prVar27->rm_so = -1;
              prVar27 = prVar26;
            } while (prStack_74 + (int)prStack_78 != prVar26);
            prStack_74->rm_so = 0;
            prStack_74->rm_eo = auStack_144._92_4_;
            if ((IVar21 & 0x8000000) == 0) {
              if ((char)prVar53->field_0x58 < '\0') {
                bVar30 = 0 < prVar53->nbackref;
              }
              else {
                bVar30 = false;
              }
              prStack_1e4 = (re_dfastate_t *)
                            set_regs((regex_t *)preg,(re_match_context_t *)auStack_144,
                                     (size_t)prStack_78,prStack_74,bVar30);
              pprVar22 = (re_dfastate_t **)auStack_144._100_4_;
              if (prStack_1e4 != (re_dfastate_t *)0x0) goto LAB_0004dbbc;
              prVar46 = (re_dfa_t *)prStack_74->rm_so;
            }
            else {
LAB_0004e838:
              prVar46 = (re_dfa_t *)0x0;
            }
            prVar48 = (re_dfa_t *)0x0;
            prVar27 = prStack_74;
            while( true ) {
              if (prVar46 != (re_dfa_t *)0xffffffff) {
                prVar42 = (re_dfa_t *)prVar27->rm_eo;
                prVar50 = prVar46;
                prVar43 = prVar42;
                if (auStack_144[0x4c] != '\0') {
                  prVar50 = (re_dfa_t *)auStack_144._32_4_;
                  if ((re_dfa_t *)auStack_144._28_4_ != prVar46) {
                    prVar50 = (re_dfa_t *)((re_hashval_t *)auStack_144._12_4_)[(int)prVar46];
                  }
                  prVar27->rm_so = (regoff_t)prVar50;
                  prVar43 = (re_dfa_t *)auStack_144._32_4_;
                  if ((re_dfa_t *)auStack_144._28_4_ != prVar42) {
                    prVar43 = (re_dfa_t *)((re_hashval_t *)auStack_144._12_4_)[(int)prVar42];
                  }
                }
                prVar27->rm_so =
                     (int)(((re_dfa_t *)
                           (((re_dfa_t *)(prVar50->word_char + -0x18))->word_char + -0x18))->
                           word_char + 0xffffffe8) +
                     (int)((re_dfa_t *)
                          (((re_dfa_t *)
                           (((re_dfa_t *)(prStack_16c->word_char + -0x18))->word_char + -0x18))->
                           word_char + -0x18))->word_char + 0xffffffa0U;
                prVar27->rm_eo =
                     (int)(((re_dfa_t *)
                           (((re_dfa_t *)(prVar43->word_char + -0x18))->word_char + -0x18))->
                           word_char + 0xffffffe8) +
                     (int)((re_dfa_t *)
                          (((re_dfa_t *)
                           (((re_dfa_t *)(prStack_16c->word_char + -0x18))->word_char + -0x18))->
                           word_char + -0x18))->word_char + 0xffffffa0U;
              }
              prVar48 = (re_dfa_t *)((int)&prVar48->nodes + 1);
              prVar27 = prVar27 + 1;
              if (prVar48 == prStack_78) break;
              prVar46 = (re_dfa_t *)prVar27->rm_so;
            }
            if (0 < iStack_180) {
              prVar27 = prStack_74 + (int)prStack_78;
              do {
                prVar27->rm_so = -1;
                prVar26 = prVar27 + 1;
                prVar27->rm_eo = -1;
                prVar27 = prVar26;
              } while (prStack_74 + (int)prStack_78->word_char + iStack_180 + -0x60 != prVar26);
            }
            pIVar23 = prVar53->subexp_map;
            pprVar22 = (re_dfastate_t **)auStack_144._100_4_;
            prStack_1e4 = prVar18;
            if (pIVar23 != (Idx *)0x0) {
              puVar45 = (undefined1 *)0x0;
              prVar27 = prStack_74;
              do {
                pcVar55 = *(code **)(puVar56 + 0x28520);
                if (puVar45 == (undefined1 *)((int)&prStack_78[-1].lock + 0x17)) goto LAB_0004dbc0;
                if ((undefined1 *)*pIVar23 != puVar45) {
                  prVar27[1].rm_so = prStack_74[(int)((undefined1 *)*pIVar23 + 1)].rm_so;
                  prVar27[1].rm_eo = prStack_74[*pIVar23 + 1].rm_eo;
                }
                puVar45 = puVar45 + 1;
                pIVar23 = pIVar23 + 1;
                prVar27 = prVar27 + 1;
              } while( true );
            }
            goto LAB_0004dbbc;
          }
          prStack_74->rm_so = 0;
          prStack_74->rm_eo = auStack_144._92_4_;
          goto LAB_0004e838;
        }
LAB_0004e2d4:
        match_ctx_clean((re_match_context_t *)auStack_144);
        in_a3 = prStack_16c;
      }
      in_a3 = (re_dfa_t *)((int)in_a3->word_char + iVar11 + -0x60);
      prStack_16c = in_a3;
      if (((int)in_a3 < (int)prVar46) ||
         (pbVar36 = (re_bitset_ptr_t)auStack_144._24_4_, prVar48 = prStack_88,
         (int)in_stack_ffffff80 < (int)in_a3)) break;
    } while( true );
  }
LAB_0004df68:
  prStack_1e4 = (re_dfastate_t *)0x1;
  pprVar22 = (re_dfastate_t **)auStack_144._100_4_;
  goto LAB_0004dbbc;
code_r0x0004ea7c:
  prStack_1e4 = (re_dfastate_t *)auStack_168._0_4_;
  pprVar22 = (re_dfastate_t **)auStack_144._100_4_;
  if ((re_dfastate_t *)auStack_168._0_4_ == (re_dfastate_t *)0xc) goto LAB_0004dbbc;
  uVar44 = 0x435;
LAB_0004ea9c:
  (**(code **)(puVar56 + 0x282f4))
            (*(int *)(puVar56 + 0x27edc) + 0x2b30,*(int *)(puVar56 + 0x27edc) + 0x2ac0,uVar44,
             *(int *)(puVar56 + 0x27edc) + 0x3030);
  uVar32 = extraout_v1;
  preg = (re_match_context_t *)auStack_144;
LAB_0004eabc:
  uVar41 = 8;
  goto LAB_0004dab0;
}



/* WARNING: Removing unreachable block (ram,0x0004da3c) */

uint FUN_0004d30c(uint *param_1,uint *param_2,uint *param_3,uint *param_4)

{
  bool bVar1;
  bool bVar2;
  int *piVar3;
  bool bVar4;
  bool bVar5;
  uint uVar6;
  code *pcVar7;
  code *pcVar8;
  code *pcVar9;
  int *piVar10;
  uint uVar11;
  uint **ppuVar12;
  int iVar13;
  uint uVar14;
  int iVar15;
  int iVar16;
  int *piVar17;
  char cVar21;
  int iVar18;
  uint uVar19;
  undefined4 uVar20;
  bool bVar22;
  uint *puVar23;
  uint extraout_v1;
  uint **ppuVar24;
  int iVar25;
  int iVar26;
  uint uVar27;
  int iVar28;
  int iVar29;
  int iVar30;
  uint uVar31;
  uint *puVar32;
  int *piVar33;
  uint uVar34;
  undefined4 *puVar35;
  uint *puVar36;
  uint uVar37;
  uint *puVar38;
  uint *puVar39;
  uint uVar40;
  int *unaff_s4;
  uint uVar41;
  int unaff_s5;
  uint uVar42;
  int unaff_s6;
  uint *puVar43;
  int iVar44;
  uint *unaff_s7;
  code *pcVar45;
  undefined *puVar46;
  int unaff_s8;
  uint uStack_1f0;
  int *piStack_1ec;
  uint uStack_1e4;
  uint *puStack_1e0;
  uint **ppuStack_1dc;
  uint uStack_1d0;
  int iStack_180;
  uint *puStack_16c;
  uint uStack_168;
  uint uStack_164;
  int *piStack_160;
  int *piStack_15c;
  int iStack_158;
  uint uStack_154;
  undefined4 uStack_150;
  undefined4 uStack_14c;
  undefined4 uStack_148;
  uint *puStack_144;
  uint *puStack_140;
  int *piStack_13c;
  int iStack_138;
  int iStack_12c;
  uint *puStack_128;
  uint *puStack_124;
  uint uStack_120;
  uint uStack_11c;
  uint *puStack_118;
  uint *puStack_114;
  uint *puStack_110;
  uint *puStack_10c;
  undefined4 uStack_108;
  uint *puStack_104;
  uint *puStack_100;
  byte bStack_fc;
  byte bStack_fb;
  byte bStack_fa;
  byte bStack_f9;
  char cStack_f8;
  byte bStack_f7;
  byte bStack_f6;
  uint uStack_f4;
  uint *puStack_f0;
  undefined1 *puStack_ec;
  uint uStack_e8;
  int iStack_e4;
  int *piStack_e0;
  int iStack_dc;
  undefined4 uStack_d8;
  int iStack_d4;
  int iStack_d0;
  int iStack_cc;
  int iStack_c4;
  int iStack_c0;
  int iStack_bc;
  uint *puStack_b8;
  uint *puStack_b4;
  uint *puStack_b0;
  uint *puStack_ac;
  int *piStack_a8;
  int iStack_a4;
  int iStack_a0;
  uint *puStack_9c;
  int iStack_98;
  code *pcStack_94;
  uint *puStack_88;
  uint *local_80;
  uint *local_7c;
  uint *local_78;
  int *piStack_74;
  int local_64;
  uint local_38;
  undefined4 local_34;
  undefined4 *local_30;
  uint **local_2c;
  
  puVar46 = PTR___stack_chk_guard_00075be8;
  local_38 = 1;
  local_34 = 1;
  local_2c = *(uint ***)PTR___stack_chk_guard_00075be8;
  puVar36 = (uint *)param_2[3];
  puVar39 = (uint *)param_2[2];
  puVar23 = param_2;
  local_30 = (undefined4 *)(*(code *)PTR_malloc_00075b2c)(4);
  if (local_30 == (undefined4 *)0x0) {
    uVar6 = 0xc;
  }
  else {
    *local_30 = puVar39;
    pcVar45 = (code *)(PTR_DAT_00075978 + -0x1248);
    puVar23 = param_2;
    param_3 = puVar36;
    param_4 = &local_38;
    uVar6 = FUN_0004edb8(param_1);
    if (uVar6 == 0) {
      local_64 = 0;
      if (0 < (int)puVar36) {
        pcVar7 = (code *)(PTR_LAB_00075920 + 0x5610);
        pcVar8 = (code *)(PTR_LAB_00075920 + 0x33f8);
        pcVar9 = (code *)(PTR_LAB_00075920 + 0x5230);
        do {
          unaff_s7 = (uint *)((int)puVar36 * 4);
          if (*(int *)(*param_2 + (int)unaff_s7) == 0) {
            local_64 = local_64 + 1;
            if ((int)param_1[0x1e] < local_64) goto LAB_0004d6a0;
          }
          else {
            local_64 = 0;
            if ((int)param_1[0x1e] < 0) {
LAB_0004d6a0:
              puVar23 = (uint *)0x0;
              param_3 = unaff_s7;
              (*(code *)PTR_memset_00075ad4)();
              (*(code *)PTR_free_00075bfc)(local_30);
              uVar6 = 0;
              goto LAB_0004d644;
            }
          }
          local_34 = 0;
          unaff_s6 = *(int *)((int)unaff_s7 + (param_1[0x19] - 4));
          puVar36 = (uint *)((int)puVar36 + -1);
          if ((unaff_s6 != 0) && (unaff_s4 = (int *)param_1[0x15], 0 < *(int *)(unaff_s6 + 0x14))) {
            unaff_s5 = 0;
            do {
              puVar39 = *(uint **)(*(int *)(unaff_s6 + 0x18) + unaff_s5 * 4);
              unaff_s8 = (int)puVar39 * 8;
              iVar29 = *unaff_s4 + unaff_s8;
              if ((*(uint *)(iVar29 + 4) & 0x800) == 0) {
LAB_0004d464:
                iVar29 = FUN_00047bf8(param_1,iVar29,puVar36);
                if (iVar29 != 0) {
                  iVar29 = *(int *)(*param_2 + (int)unaff_s7);
                  if (iVar29 != 0) {
                    param_3 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);
                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc);
                    iVar29 = 1;
                    if (iVar30 != 0) goto LAB_0004d4b4;
                  }
                }
              }
              else {
                puVar35 = (undefined4 *)param_1[0x15];
                uVar6 = param_2[3];
                param_3 = puVar39;
                param_4 = param_1;
                local_80 = puVar36;
                iVar29 = FUN_0004b150(*puVar35,puVar35 + 0x20);
                if (iVar29 < 1) {
                  if (iVar29 == 0) {
                    iVar29 = *unaff_s4;
                    goto LAB_0004d460;
                  }
                }
                else if ((int)puVar36 + iVar29 <= (int)uVar6) {
                  iVar30 = *(int *)(*param_2 + ((int)puVar36 + iVar29) * 4);
                  if (iVar30 != 0) {
                    param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);
                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);
                    if (iVar30 != 0) goto LAB_0004d4b4;
                  }
                  iVar29 = *unaff_s4;
LAB_0004d460:
                  iVar29 = iVar29 + unaff_s8;
                  goto LAB_0004d464;
                }
LAB_0004d4b4:
                if (param_2[5] != 0) {
                  local_80 = (uint *)((int)puVar36 + iVar29);
                  param_3 = param_2 + 6;
                  param_4 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);
                  local_7c = puVar39;
                  local_78 = puVar36;
                  iVar29 = (*pcVar7)(param_1,param_2 + 5);
                  if (iVar29 != 0) goto LAB_0004d510;
                }
                puVar23 = puVar39;
                iVar29 = (*pcVar8)(&local_38);
                if (iVar29 == 0) {
                  uVar6 = 0xc;
                  goto LAB_0004d62c;
                }
              }
LAB_0004d510:
              unaff_s5 = unaff_s5 + 1;
              param_4 = &local_38;
            } while (unaff_s5 < *(int *)(unaff_s6 + 0x14));
          }
          puVar23 = param_2;
          param_3 = puVar36;
          param_4 = &local_38;
          uVar6 = (*pcVar45)(param_1);
          if (uVar6 != 0) goto LAB_0004d62c;
        } while (puVar36 != (uint *)0x0);
      }
      uVar6 = 0;
    }
LAB_0004d62c:
    (*(code *)PTR_free_00075bfc)(local_30);
  }
LAB_0004d644:
  if (local_2c == *(uint ***)puVar46) {
    return uVar6;
  }
  pcVar45 = FUN_0004d6dc;
  ppuVar24 = local_2c;
  puVar46 = PTR___stack_chk_fail_00075ba8;
  (*(code *)PTR___stack_chk_fail_00075ba8)();
  puVar32 = local_7c;
  puVar38 = local_80;
  piVar10 = *(int **)(puVar46 + 0x2850c);
  iStack_bc = *piVar10;
  puVar43 = *ppuVar24;
  puStack_b8 = puVar36;
  puStack_b4 = param_2;
  puStack_b0 = param_1;
  puStack_ac = puVar39;
  piStack_a8 = unaff_s4;
  iStack_a4 = unaff_s5;
  iStack_a0 = unaff_s6;
  puStack_9c = unaff_s7;
  iStack_98 = unaff_s8;
  pcStack_94 = pcVar45;
  puStack_88 = param_3;
  (**(code **)(puVar46 + 0x283f8))(&puStack_144,0,0x88);
  puStack_1e0 = ppuVar24[4];
  if (puStack_1e0 != (uint *)0x0) {
    if (((*(byte *)(ppuVar24 + 7) & 0x10) == 0) || (param_4 == puVar38)) {
      puStack_1e0 = (uint *)0x0;
    }
    else if ((char)*(byte *)(ppuVar24 + 7) < '\0') {
      puStack_1e0 = (uint *)0x0;
    }
  }
  puVar36 = ppuVar24[6];
  if (puVar36 < local_78) {
    iStack_180 = ((int)local_78 + -1) - (int)puVar36;
    local_78 = (uint *)((int)local_78 + ((int)puVar36 - ((int)local_78 + -1)));
    puVar36 = ppuVar24[2];
  }
  else {
    puVar36 = ppuVar24[2];
    iStack_180 = 0;
  }
  puStack_f0 = puVar43;
  if ((((puVar36 == (uint *)0x0) || (puVar43[9] == 0)) || (puVar43[10] == 0)) ||
     ((puVar43[0xb] == 0 || (puVar43[0xc] == 0)))) {
LAB_0004db54:
    uStack_1e4 = 1;
    goto LAB_0004db58;
  }
  if (((*(int *)(puVar43[9] + 8) == 0) && (*(int *)(puVar43[10] + 8) == 0)) &&
     ((*(int *)(puVar43[0xb] + 8) == 0 || (((uint)ppuVar24[7] & 0x1000000) == 0)))) {
    if (param_4 == (uint *)0x0) {
      puVar38 = (uint *)0x0;
    }
    else {
      if (puVar38 != (uint *)0x0) goto LAB_0004db54;
      param_4 = (uint *)0x0;
    }
  }
  if (local_78 == (uint *)0x0) {
    bVar22 = puVar43[0x13] != 0;
  }
  else {
    bVar22 = true;
  }
  uStack_f4 = puVar43[0x17];
  puVar36 = ppuVar24[5];
  uVar6 = puVar43[2] + 1;
  if ((int)(puVar43[2] + 1) < (int)uStack_f4) {
    uVar6 = uStack_f4;
  }
  bStack_fc = (byte)((uint)((int)ppuVar24[3] << 9) >> 0x18);
  bStack_f9 = 1;
  if (puVar36 == (uint *)0x0) {
    bStack_f9 = bStack_fc >> 7;
  }
  uVar34 = (int)puStack_88 + 1U;
  if ((int)uVar6 <= (int)((int)puStack_88 + 1U)) {
    uVar34 = uVar6;
  }
  bStack_fc = bStack_fc >> 7;
  bStack_fb = (byte)((puVar43[0x16] << 2) >> 0x1f);
  bStack_fa = (byte)((puVar43[0x16] << 3) >> 0x1f);
  puStack_114 = puStack_88;
  puStack_118 = puStack_88;
  puStack_10c = puStack_88;
  puStack_110 = puStack_88;
  puStack_144 = puVar23;
  puStack_104 = puVar36;
  uStack_1e4 = FUN_00043278(&puStack_144,uVar34);
  piVar17 = piStack_e0;
  if (uStack_1e4 != 0) {
LAB_0004dbbc:
    while( true ) {
      pcVar45 = *(code **)(puVar46 + 0x28520);
LAB_0004dbc0:
      (*pcVar45)(piVar17);
      if (puVar43[0x13] != 0) {
LAB_0004dc14:
        FUN_00044db0(&puStack_144);
        (**(code **)(puVar46 + 0x28520))(iStack_c0);
        (**(code **)(puVar46 + 0x28520))(iStack_d0);
      }
LAB_0004dbd4:
      FUN_00044d40(&puStack_144);
LAB_0004db58:
      if (iStack_bc == *piVar10) break;
      uStack_1e4 = (**(code **)(puVar46 + 0x284cc))();
      piVar17 = piStack_e0;
    }
    return uStack_1e4;
  }
  puStack_100 = puVar43 + 0x18;
  bStack_f6 = (byte)((puVar43[0x16] << 4) >> 0x1f);
  if ((bStack_f9 != 0) || (puStack_140 = puVar23, puStack_128 = puStack_88, 1 < (int)puVar43[0x17]))
  {
    puStack_128 = (uint *)0x0;
  }
  puStack_10c = puVar32;
  puStack_110 = puVar32;
  puStack_124 = puStack_128;
  bStack_f7 = (byte)((uint)((int)ppuVar24[7] << 7) >> 0x1f);
  uVar6 = puVar43[0x13];
  iVar29 = uVar6 * 2;
  puStack_ec = &_gp_1;
  uStack_e8 = 0xffffffff;
  if (0 < iVar29) {
    if (0xccccccc < iVar29) goto LAB_0004dbf8;
    iVar30 = (**(code **)(puVar46 + 0x28450))(uVar6 * 0x28);
    iStack_d0 = iVar30;
    iStack_c0 = (**(code **)(puVar46 + 0x28450))(uVar6 * 8);
    if ((iVar30 == 0) || (iStack_c0 == 0)) goto LAB_0004dbf8;
  }
  iStack_d4 = iVar29;
  iStack_c4 = iVar29;
  bVar1 = (uint *)0x1 < local_78;
  iStack_cc = 1;
  if ((bVar1) || ((puVar43[0x16] & 0x40000000) != 0)) {
    if (0x3ffffffe < uStack_120) {
LAB_0004dbf8:
      uStack_1e4 = 0xc;
      (**(code **)(puVar46 + 0x28520))(piStack_e0);
      if (puVar43[0x13] == 0) goto LAB_0004dbd4;
      goto LAB_0004dc14;
    }
    piStack_e0 = (int *)(**(code **)(puVar46 + 0x28450))((uStack_120 + 1) * 4);
    piVar17 = piStack_e0;
    if (piStack_e0 == (int *)0x0) {
LAB_0004dbb4:
      uStack_1e4 = 0xc;
      goto LAB_0004dbbc;
    }
  }
  else {
    piStack_e0 = (int *)0x0;
  }
  uVar34 = puVar43[0x17];
  iVar29 = -1;
  puStack_16c = param_4;
  uStack_108 = 6;
  uVar6 = (uint)((int)puVar38 < (int)param_4);
  puVar23 = puVar38;
  if (uVar6 == 0) {
    iVar29 = 1;
    puVar23 = param_4;
  }
  if ((int)puVar38 <= (int)param_4) {
    puVar38 = param_4;
  }
  if (puStack_1e0 == (uint *)0x0) goto LAB_0004eabc;
  uVar11 = 4;
  if (((uVar34 != 1) && (uVar11 = 0, -1 < (int)ppuVar24[3] << 9)) &&
     (uVar11 = 4, puVar36 != (uint *)0x0)) {
    uVar11 = 0;
  }
  uVar31 = 2;
  if (uVar6 != 0) {
    uVar31 = 0;
  }
  uVar31 = puVar36 != (uint *)0x0 | uVar11 | uVar31;
LAB_0004dab0:
  if (((int)puVar23 <= (int)param_4) && ((int)param_4 <= (int)puVar38)) {
    ppuVar12 = &puStack_16c;
    if (uVar6 != 0) {
      ppuVar12 = (uint **)0x0;
    }
    iVar25 = *(int *)(puVar46 + 0x28244);
    iVar13 = *(int *)(puVar46 + 0x27edc);
    iVar26 = *(int *)(puVar46 + 0x2829c);
    iVar30 = iStack_12c;
    puVar36 = puStack_88;
    do {
      puStack_88 = puVar36;
      if (uVar31 - 4 < 5) {
                    /* WARNING: Could not recover jumptable at 0x0004db3c. Too many branches */
                    /* WARNING: Treating indirect jump as call */
        uVar6 = (*(code *)(puVar46 + *(int *)(iVar13 + 0x2be4 + (uVar31 - 4) * 4) + 0x2fea4))();
        return uVar6;
      }
      iStack_12c = iVar30;
      while( true ) {
        puVar39 = (uint *)((int)param_4 - iVar30);
        if (puStack_124 <= puVar39) {
          uStack_1e4 = (*(code *)(iVar25 + 0x7eac))(&puStack_144,param_4,&_gp_1);
          piVar17 = piStack_e0;
          if (uStack_1e4 != 0) goto LAB_0004dbbc;
          puVar39 = (uint *)((int)param_4 - iStack_12c);
          iVar30 = iStack_12c;
        }
        if ((int)param_4 < (int)puVar36) {
          cVar21 = *(char *)((int)puStack_1e0 + (uint)*(byte *)((int)puStack_140 + (int)puVar39));
        }
        else {
          cVar21 = *(char *)puStack_1e0;
        }
        if (cVar21 != '\0') break;
        param_4 = (uint *)((int)param_4 + iVar29);
        puStack_16c = param_4;
        if (((int)param_4 < (int)puVar23) || ((int)puVar38 < (int)param_4)) goto LAB_0004df68;
      }
      uVar11 = FUN_00047eac(&puStack_144,param_4,&_gp_1);
      puVar36 = puStack_f0;
      uVar6 = uStack_11c;
      piVar17 = piStack_e0;
      uStack_1e4 = uVar11;
      if (uVar11 != 0) goto LAB_0004dbbc;
      if (((uVar34 == 1) || (puStack_128 == (uint *)0x0)) || (*piStack_13c != -1)) {
        iStack_cc = 0;
        uStack_d8 = 0;
        uVar41 = puStack_f0[9];
        uStack_1d0 = uStack_11c;
        iStack_dc = 0;
        uStack_168 = 0;
        if ((*(byte *)(uVar41 + 0x34) & 1) != 0) {
          uVar14 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);
          if ((uVar14 & 1) == 0) {
            if (uVar14 == 0) goto LAB_0004dd24;
            if ((uVar14 & 6) == 6) {
              uVar41 = puVar36[0xc];
            }
            else if ((uVar14 & 2) == 0) {
              if ((uVar14 & 4) == 0) goto LAB_0004dd24;
              uVar41 = FUN_00046cac(&uStack_168,puVar36,*(undefined4 *)(uVar41 + 0x28),uVar14);
            }
            else {
              uVar41 = puVar36[0xb];
            }
          }
          else {
            uVar41 = puVar36[10];
          }
          if (uVar41 == 0) goto code_r0x0004ea7c;
        }
LAB_0004dd24:
        bVar4 = ppuVar12 != (uint **)0x0;
        if ((piStack_e0 == (int *)0x0) ||
           (uVar14 = puVar36[0x13], piStack_e0[uVar6] = uVar41, uVar14 == 0)) {
LAB_0004dd48:
          if (*(int *)(uVar41 + 0x34) << 4 < 0) {
            if (((*(byte *)(uVar41 + 0x34) & 1) == 0) ||
               (iVar30 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar41 + 8),uVar41 + 0xc,uVar6),
               iVar30 != 0)) {
              uVar14 = uVar6;
              bVar5 = bVar22;
              if (!bVar22) goto LAB_0004e0e4;
            }
            else {
              uVar6 = 0xffffffff;
              bVar5 = false;
            }
          }
          else {
            uVar6 = 0xffffffff;
            bVar5 = false;
          }
          iVar30 = *(int *)(puVar46 + 0x28244);
          iVar15 = *(int *)(puVar46 + 0x2829c);
          uVar14 = uStack_11c;
          ppuStack_1dc = ppuVar12;
          while ((int)uVar14 < (int)puStack_10c) {
            uVar40 = uVar14 + 1;
            if ((((int)uVar40 < (int)uStack_120) || ((int)puStack_114 <= (int)uStack_120)) &&
               (((int)uVar40 < (int)puStack_128 || ((int)puStack_114 <= (int)puStack_128)))) {
              iVar16 = *(int *)(uVar41 + 0x34);
              puVar36 = puStack_f0;
            }
            else {
              uStack_168 = (*(code *)(iVar30 + 0x41e4))(&puStack_144,uVar14 + 2);
              if (uStack_168 != 0) {
                if (uStack_168 == 0xc) goto LAB_0004dbf8;
                uVar20 = 0x46c;
                goto LAB_0004ea9c;
              }
              iVar16 = *(int *)(uVar41 + 0x34);
              uVar14 = uStack_11c;
              puVar36 = puStack_f0;
            }
            puStack_f0 = puVar36;
            if (iVar16 << 5 < 0) {
              iVar16 = *(int *)(uVar41 + 8);
              if (0 < iVar16) {
                param_4 = (uint *)0x0;
                iVar18 = *(int *)(puVar46 + 0x28244);
                pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7ab0);
                do {
                  uVar42 = *puVar36;
                  iVar44 = *(int *)(*(int *)(uVar41 + 0xc) + (int)param_4 * 4);
                  uVar37 = *(uint *)(uVar42 + iVar44 * 8 + 4);
                  if ((uVar37 & 0x800) != 0) {
                    if ((uVar37 & 0xffc000) != 0) {
                      uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec);
                      uVar37 = (uVar37 << 8) >> 0x16;
                      if ((uVar37 & 4) == 0) {
                        uVar27 = uVar19 & 1;
                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;
                      }
                      else {
                        uVar27 = uVar37 & 8;
                        if ((uVar19 & 1) == 0) goto LAB_0004e670;
joined_r0x0004e514:
                        if (uVar27 != 0) goto LAB_0004e670;
                      }
                      if ((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||
                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))) goto LAB_0004e670;
                    }
                    iVar16 = (*(code *)(iVar15 + -0x4eb0))
                                       (uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14);
                    if (iVar16 != 0) {
                      if (iStack_cc < iVar16) {
                        iStack_cc = iVar16;
                      }
                      iVar16 = iVar16 + uStack_11c;
                      uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16);
                      uVar14 = uStack_164;
                      if (uStack_164 != 0) goto joined_r0x0004e770;
                      piVar33 = piStack_e0 + iVar16;
                      iVar28 = *piVar33;
                      piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc);
                      if (iVar28 == 0) {
                        piStack_160 = (int *)*piVar17;
                        piStack_15c = (int *)piVar17[1];
                        iStack_158 = piVar17[2];
                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);
                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);
                        *piVar33 = iVar44;
                      }
                      else {
                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));
                        uVar14 = uStack_164;
                        if (uStack_164 != 0) goto joined_r0x0004e770;
                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);
                        piVar17 = piStack_e0 + iVar16;
                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);
                        pcVar7 = *(code **)(puVar46 + 0x28520);
                        *piVar17 = iVar44;
                        (*pcVar7)(iStack_158);
                      }
                      if ((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))
                      goto joined_r0x0004e770;
                    }
                    iVar16 = *(int *)(uVar41 + 8);
                    uVar14 = uStack_11c;
                  }
LAB_0004e670:
                  param_4 = (uint *)((int)param_4 + 1);
                } while ((int)param_4 < iVar16);
              }
              uStack_168 = 0;
            }
            uStack_11c = uVar14 + 1;
            uVar14 = (uint)*(byte *)((int)puStack_140 + uVar14);
            do {
              if (*(int *)(uVar41 + 0x2c) != 0) {
                uVar37 = *(uint *)(*(int *)(uVar41 + 0x2c) + uVar14 * 4);
LAB_0004ddf0:
                if (piStack_e0 != (int *)0x0) goto LAB_0004ddfc;
                goto LAB_0004de1c;
              }
              iVar16 = *(int *)(uVar41 + 0x30);
              if (iVar16 != 0) {
                uVar37 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);
                if ((uVar37 & 1) == 0) {
                  uVar37 = *(uint *)(iVar16 + uVar14 * 4);
                }
                else {
                  uVar37 = *(uint *)(iVar16 + (uVar14 + 0x100) * 4);
                }
                goto LAB_0004ddf0;
              }
              iVar16 = (*(code *)(iVar26 + -0x7510))(puStack_f0,uVar41);
            } while (iVar16 != 0);
            uStack_168 = 0xc;
            uVar14 = uStack_168;
joined_r0x0004e770:
            uStack_168 = uVar14;
            if (piStack_e0 == (int *)0x0) {
              piVar17 = (int *)0x0;
              goto LAB_0004dbb4;
            }
            uVar37 = 0;
LAB_0004ddfc:
            uVar37 = FUN_0004d0a8(&uStack_168,&puStack_144,uVar37);
LAB_0004de1c:
            uVar14 = uStack_11c;
            if (uVar37 == 0) {
              piVar17 = piStack_e0;
              if (uStack_168 != 0) goto LAB_0004dbb4;
              if ((piStack_e0 == (int *)0x0) || ((bVar5 && (!bVar22)))) break;
              param_4 = &uStack_168;
              do {
                bVar2 = false;
                piVar17 = piStack_e0 + uStack_11c;
                uVar14 = uStack_11c;
                do {
                  uVar37 = uVar14 + 1;
                  piVar17 = piVar17 + 1;
                  if (iStack_dc < (int)uVar37) {
                    if (bVar2) {
                      uStack_11c = uVar14;
                    }
                    goto LAB_0004e0cc;
                  }
                  bVar2 = true;
                  uVar14 = uVar37;
                } while (*piVar17 == 0);
                uStack_11c = uVar37;
                uVar37 = FUN_0004d0a8(param_4,&puStack_144,0);
                uVar14 = uStack_11c;
                if (uStack_168 != 0) {
                  if (uVar37 == 0) goto LAB_0004e0cc;
                  break;
                }
              } while (uVar37 == 0);
            }
            uVar42 = uStack_1d0;
            if ((bVar4) && (uVar42 = uVar40, uVar41 != uVar37)) {
              bVar4 = false;
              uVar42 = uStack_1d0;
            }
            uStack_1d0 = uVar42;
            uVar41 = uVar37;
            uStack_11c = uVar14;
            if (((*(byte *)(uVar37 + 0x34) & 8) != 0) &&
               (((*(byte *)(uVar37 + 0x34) & 1) == 0 ||
                (iVar16 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar37 + 8),uVar37 + 0xc,uVar14)
                , iVar16 != 0)))) {
              if (!bVar22) goto LAB_0004e0e4;
              ppuStack_1dc = (uint **)0x0;
              uVar6 = uVar14;
              bVar5 = bVar22;
            }
          }
LAB_0004e0cc:
          uVar14 = uVar6;
          if (ppuStack_1dc != (uint **)0x0) {
            *ppuStack_1dc = (uint *)((int)*ppuStack_1dc + uStack_1d0);
          }
        }
        else {
          uVar14 = FUN_00047924(&puStack_144,uVar41 + 8,uVar41 + 0xc,0);
          uStack_168 = uVar14;
          if (uVar14 == 0) {
            if ((*(byte *)(uVar41 + 0x34) & 2) == 0) {
              bVar4 = false;
            }
            else {
              uVar14 = FUN_0004c6a8(&puStack_144,uVar41 + 8,uVar41 + 0xc);
              uStack_168 = uVar14;
              if (uVar14 != 0) goto LAB_0004e0e4;
              bVar4 = false;
            }
            goto LAB_0004dd48;
          }
        }
LAB_0004e0e4:
        piVar17 = piStack_e0;
        if (uVar14 != 0xffffffff) {
          if (uVar14 == 0xfffffffe) goto LAB_0004dbf8;
          uStack_e8 = uVar14;
          if (((uint)ppuVar24[7] & 0x8000000) == 0) {
            if (!bVar1) {
              uVar6 = puVar43[0x13];
              goto joined_r0x0004e94c;
            }
            pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);
            iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),
                                     piStack_e0[uVar14] + 0xc,uVar14);
            if ((*(char *)(puVar43 + 0x16) < '\0') || (puVar43[0x13] != 0)) goto LAB_0004e170;
          }
          else {
            uVar6 = puVar43[0x13];
joined_r0x0004e94c:
            if (uVar6 != 0) {
              pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);
              iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),
                                       piStack_e0[uVar14] + 0xc,uVar14);
LAB_0004e170:
              iVar30 = iStack_e4;
              puVar36 = puStack_f0;
              if (uVar14 < 0x3fffffff) {
                uStack_1f0 = uVar14 + 1;
                piVar17 = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);
                if (piVar17 == (int *)0x0) goto LAB_0004dbf8;
                if (puVar36[0x13] == 0) {
                  piStack_15c = (int *)0x0;
                  uStack_150 = 0;
                  uStack_14c = 0;
                  uStack_148 = 0;
                  piStack_160 = piVar17;
                  iStack_158 = iVar30;
                  uStack_154 = uVar14;
                  uStack_1e4 = FUN_0004d30c(&puStack_144,&piStack_160);
                  (**(code **)(puVar46 + 0x28520))(uStack_148);
                  if (uStack_1e4 == 0) {
                    if (*piVar17 == 0) {
                      (**(code **)(puVar46 + 0x28520))(piVar17);
                      goto LAB_0004e2d4;
                    }
LAB_0004e9f8:
                    (**(code **)(puVar46 + 0x28520))(piStack_e0);
                    uStack_e8 = uVar14;
                    iStack_e4 = iVar30;
                    piStack_e0 = piVar17;
                    goto LAB_0004e7e0;
                  }
LAB_0004ed18:
                  piStack_1ec = (int *)0x0;
                }
                else {
                  piStack_1ec = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);
                  if (piStack_1ec == (int *)0x0) {
                    (**(code **)(puVar46 + 0x28520))(piVar17);
                    uStack_1e4 = 0xc;
                    piVar17 = piStack_e0;
                    goto LAB_0004dbbc;
                  }
                  iVar15 = *(int *)(puVar46 + 0x2829c);
                  while( true ) {
                    (**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);
                    uStack_150 = 0;
                    uStack_14c = 0;
                    uStack_148 = 0;
                    piStack_160 = piVar17;
                    piStack_15c = piStack_1ec;
                    iStack_158 = iVar30;
                    uStack_154 = uVar14;
                    uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);
                    (**(code **)(puVar46 + 0x28520))(uStack_148);
                    if (uStack_1e4 != 0) break;
                    if ((*piVar17 != 0) || (*piStack_1ec != 0)) {
                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);
                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);
                      if (uStack_1e4 != 0) goto LAB_0004ed18;
                      goto LAB_0004e9f8;
                    }
                    piVar33 = piStack_e0 + (uStack_1f0 - 1);
                    uStack_1f0 = uVar14;
                    while( true ) {
                      uVar14 = uStack_1f0 - 1;
                      if (uVar14 == 0xffffffff) {
                        (**(code **)(puVar46 + 0x28520))(piVar17);
                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);
                        goto LAB_0004e2d4;
                      }
                      iVar30 = piVar33[-1];
                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;
                      piVar33 = piVar33 + -1;
                      uStack_1f0 = uVar14;
                    }
                    iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14
                                       );
                  }
                }
                (**(code **)(puVar46 + 0x28520))(piVar17);
                (**(code **)(puVar46 + 0x28520))(piStack_1ec);
                piVar17 = piStack_e0;
                if (uStack_1e4 == 1) goto LAB_0004e2d4;
                goto LAB_0004dbbc;
              }
              uStack_1e4 = 0xc;
              goto LAB_0004dbbc;
            }
          }
LAB_0004e7e0:
          piVar17 = piStack_e0;
          uStack_1e4 = uVar11;
          if (local_78 == (uint *)0x0) goto LAB_0004dbbc;
          puVar23 = ppuVar24[7];
          if (bVar1) {
            piVar17 = piStack_74 + 2;
            do {
              piVar17[1] = -1;
              piVar33 = piVar17 + 2;
              *piVar17 = -1;
              piVar17 = piVar33;
            } while (piStack_74 + (int)local_78 * 2 != piVar33);
            *piStack_74 = 0;
            piStack_74[1] = uStack_e8;
            if (((uint)puVar23 & 0x8000000) == 0) {
              if (*(char *)(puVar43 + 0x16) < '\0') {
                bVar22 = 0 < (int)puVar43[0x13];
              }
              else {
                bVar22 = false;
              }
              uStack_1e4 = FUN_0004bc00(ppuVar24,&puStack_144,local_78,piStack_74,bVar22);
              piVar17 = piStack_e0;
              if (uStack_1e4 != 0) goto LAB_0004dbbc;
              puVar23 = (uint *)*piStack_74;
            }
            else {
LAB_0004e838:
              puVar23 = (uint *)0x0;
            }
            puVar36 = (uint *)0x0;
            piVar17 = piStack_74;
            while( true ) {
              if (puVar23 != (uint *)0xffffffff) {
                puVar32 = (uint *)piVar17[1];
                puVar39 = puVar23;
                puVar38 = puVar32;
                if (cStack_f8 != '\0') {
                  puVar39 = puStack_124;
                  if (puStack_128 != puVar23) {
                    puVar39 = *(uint **)(iStack_138 + (int)puVar23 * 4);
                  }
                  *piVar17 = (int)puVar39;
                  puVar38 = puStack_124;
                  if (puStack_128 != puVar32) {
                    puVar38 = *(uint **)(iStack_138 + (int)puVar32 * 4);
                  }
                }
                *piVar17 = (int)puStack_16c + (int)puVar39;
                piVar17[1] = (int)puStack_16c + (int)puVar38;
              }
              puVar36 = (uint *)((int)puVar36 + 1);
              piVar17 = piVar17 + 2;
              if (puVar36 == local_78) break;
              puVar23 = (uint *)*piVar17;
            }
            if (0 < iStack_180) {
              piVar17 = piStack_74 + (int)local_78 * 2;
              do {
                *piVar17 = -1;
                piVar33 = piVar17 + 2;
                piVar17[1] = -1;
                piVar17 = piVar33;
              } while (piStack_74 + (iStack_180 + (int)local_78) * 2 != piVar33);
            }
            piVar33 = (int *)puVar43[0x21];
            piVar17 = piStack_e0;
            uStack_1e4 = uVar11;
            if (piVar33 != (int *)0x0) {
              iVar29 = 0;
              piVar3 = piStack_74;
              do {
                pcVar45 = *(code **)(puVar46 + 0x28520);
                if (iVar29 == (int)local_78 + -1) goto LAB_0004dbc0;
                if (*piVar33 != iVar29) {
                  piVar3[2] = piStack_74[(*piVar33 + 1) * 2];
                  piVar3[3] = piStack_74[(*piVar33 + 1) * 2 + 1];
                }
                iVar29 = iVar29 + 1;
                piVar33 = piVar33 + 1;
                piVar3 = piVar3 + 2;
              } while( true );
            }
            goto LAB_0004dbbc;
          }
          *piStack_74 = 0;
          piStack_74[1] = uStack_e8;
          goto LAB_0004e838;
        }
LAB_0004e2d4:
        FUN_00044db0(&puStack_144);
        param_4 = puStack_16c;
      }
      param_4 = (uint *)((int)param_4 + iVar29);
      puStack_16c = param_4;
      if (((int)param_4 < (int)puVar23) ||
         (iVar30 = iStack_12c, puVar36 = puStack_88, (int)puVar38 < (int)param_4)) break;
    } while( true );
  }
LAB_0004df68:
  uStack_1e4 = 1;
  piVar17 = piStack_e0;
  goto LAB_0004dbbc;
code_r0x0004ea7c:
  uStack_1e4 = uStack_168;
  piVar17 = piStack_e0;
  if (uStack_168 == 0xc) goto LAB_0004dbbc;
  uVar20 = 0x435;
LAB_0004ea9c:
  (**(code **)(puVar46 + 0x282f4))
            (*(int *)(puVar46 + 0x27edc) + 0x2b30,*(int *)(puVar46 + 0x27edc) + 0x2ac0,uVar20,
             *(int *)(puVar46 + 0x27edc) + 0x3030);
  uVar6 = extraout_v1;
  ppuVar24 = &puStack_144;
LAB_0004eabc:
  uVar31 = 8;
  goto LAB_0004dab0;
}


lui gp,0x3
addiu gp,gp,0x274
addu gp,gp,t9
lw v0,-0x7998(gp)
addiu sp,sp,-0x90
lw t9,-0x7a54(gp)
or v1,v0,zero
sw v0,0x54(sp)
li v0,0x1
sw s2,0x70(sp)
sw gp,0x20(sp)
or s2,a0,zero
sw s3,0x74(sp)
li a0,0x4
sw s1,0x6c(sp)
or s1,a1,zero
sw s0,0x68(sp)
sw ra,0x8c(sp)
sw s8,0x88(sp)
sw s7,0x84(sp)
sw s6,0x80(sp)
sw s5,0x7c(sp)
sw s4,0x78(sp)
sw v0,0x58(sp)
sw v0,0x5c(sp)
lw v1,0x0(v1)
lw s0,0xc(a1)
lw s3,0x8(a1)
sw v1,0x64(sp)
jalr t9
_nop
lw gp,0x20(sp)
beq v0,zero,0x0004d6c8
_sw v0,0x60(sp)
sw s3,0x0(v0)
addiu v1,sp,0x58
lw v0,-0x7c08(gp)
or a2,s0,zero
sw v1,0x30(sp)
or a3,v1,zero
or a1,s1,zero
addiu t9,v0,-0x1248
or a0,s2,zero
bal 0x0004edb8
_sw t9,0x50(sp)
bne v0,zero,0x0004d62c
_lw gp,0x20(sp)
blez s0,0x0004d60c
_sw zero,0x2c(sp)
lw v0,-0x7c60(gp)
addiu v0,v0,0x5610
sw v0,0x48(sp)
lw v0,-0x7c60(gp)
addiu v0,v0,0x33f8
sw v0,0x4c(sp)
lw v0,-0x7c60(gp)
addiu v0,v0,0x5230
sw v0,0x40(sp)
lw a0,0x0(s1)
sll s7,s0,0x2
addu v0,a0,s7
lw v0,0x0(v0)
beq v0,zero,0x0004d684
_lw v0,0x2c(sp)
lw v0,0x78(s2)
sw zero,0x2c(sp)
lw v1,0x2c(sp)
slt v0,v0,v1
bne v0,zero,0x0004d6a0
_lw t9,-0x7aac(gp)
lw v0,0x64(s2)
sw zero,0x5c(sp)
addu v0,v0,s7
lw s6,-0x4(v0)
beq s6,zero,0x0004d5e4
_addiu s0,s0,-0x1
lw v0,0x14(s6)
blez v0,0x0004d5e4
_lw s4,0x54(s2)
lw v0,-0x7c60(gp)
or s5,zero,zero
sw v0,0x38(sp)
lw v0,-0x7c08(gp)
b 0x0004d524
_sw v0,0x3c(sp)
lw v0,0x38(sp)
or a2,s0,zero
addiu t9,v0,0x7bf8
bal 0x00047bf8
_or a0,s2,zero
beq v0,zero,0x0004d510
_nop
lw v0,0x0(s1)
addu v0,v0,s7
lw a1,0x0(v0)
beq a1,zero,0x0004d510
_sll v1,s3,0x2
lw v0,0xc(s4)
lw a0,0x8(a1)
addiu a1,a1,0xc
lw t9,0x40(sp)
addu v0,v0,v1
jalr t9
_lw a2,0x0(v0)
beq v0,zero,0x0004d510
_li t0,0x1
lw v0,0x14(s1)
beq v0,zero,0x0004d4fc
_lw a0,0x30(sp)
lw v1,0xc(s4)
sll v0,s3,0x2
addu t0,s0,t0
lw t9,0x48(sp)
addiu a2,s1,0x18
addu v0,v1,v0
addiu a1,s1,0x14
or a0,s2,zero
lw a3,0x0(v0)
sw s0,0x18(sp)
sw s3,0x14(sp)
jalr t9
_sw t0,0x10(sp)
bne v0,zero,0x0004d510
_lw a0,0x30(sp)
lw t9,0x4c(sp)
jalr t9
_or a1,s3,zero
beq v0,zero,0x0004d628
_lw gp,0x20(sp)
lw v0,0x14(s6)
addiu s5,s5,0x1
slt v0,s5,v0
beq v0,zero,0x0004d5e8
_lw a3,0x30(sp)
lw v1,0x18(s6)
sll v0,s5,0x2
lw a1,0x0(s4)
addu v0,v1,v0
lw s3,0x0(v0)
sll s8,s3,0x3
addu a1,a1,s8
lw v0,0x4(a1)
andi v0,v0,0x800
beq v0,zero,0x0004d464
_lw v0,0x38(sp)
lw t2,0x54(s2)
or a3,s2,zero
lw v0,0x3c(sp)
or a2,s3,zero
lw v1,0xc(s1)
addiu a1,t2,0x80
sw t2,0x44(sp)
lw a0,0x0(t2)
addiu t9,v0,-0x4eb0
sw v1,0x34(sp)
bal 0x0004b150
_sw s0,0x10(sp)
blez v0,0x0004d614
_or t0,v0,zero
lw v1,0x34(sp)
addu v0,s0,v0
slt v1,v1,v0
bne v1,zero,0x0004d4b4
_sll v0,v0,0x2
lw v1,0x0(s1)
addu v0,v1,v0
lw a1,0x0(v0)
beq a1,zero,0x0004d5d8
_lw t2,0x44(sp)
lw v0,0xc(t2)
sll v1,s3,0x2
lw a0,0x8(a1)
addiu a1,a1,0xc
lw t9,0x40(sp)
addu v0,v0,v1
jalr t9
_lw a2,0x0(v0)
bne v0,zero,0x0004d4b4
_nop
lw a1,0x0(s4)
b 0x0004d460
_addu a1,a1,s8
lw a3,0x30(sp)
or a2,s0,zero
lw t9,0x50(sp)
or a1,s1,zero
jalr t9
_or a0,s2,zero
bne v0,zero,0x0004d62c
_lw gp,0x20(sp)
bne s0,zero,0x0004d3f4
_nop
b 0x0004d62c
_or v0,zero,zero
bne v0,zero,0x0004d4b4
_nop
lw a1,0x0(s4)
b 0x0004d460
_addu a1,a1,s8
li v0,0xc
lw t9,-0x7984(gp)
lw a0,0x60(sp)
jalr t9
_sw v0,0x2c(sp)
lw gp,0x20(sp)
lw v0,0x2c(sp)
lw v1,0x54(sp)
lw a0,0x64(sp)
lw v1,0x0(v1)
bne a0,v1,0x0004d6d0
_lw ra,0x8c(sp)
lw s8,0x88(sp)
lw s7,0x84(sp)
lw s6,0x80(sp)
lw s5,0x7c(sp)
lw s4,0x78(sp)
lw s3,0x74(sp)
lw s2,0x70(sp)
lw s1,0x6c(sp)
lw s0,0x68(sp)
jr ra
_addiu sp,sp,0x90
addiu v0,v0,0x1
sw v0,0x2c(sp)
lw v1,0x2c(sp)
lw v0,0x78(s2)
slt v0,v0,v1
beq v0,zero,0x0004d424
_lw t9,-0x7aac(gp)
or a1,zero,zero
jalr t9
_or a2,s7,zero
lw gp,0x20(sp)
lw t9,-0x7984(gp)
jalr t9
_lw a0,0x60(sp)
or v0,zero,zero
b 0x0004d644
_lw gp,0x20(sp)
b 0x0004d644
_li v0,0xc
lw t9,-0x79d8(gp)
jalr t9
_nop
(translation_unit "/* WARNING: Removing unreachable block (ram,0x0004da3c) */\n\nuint FUN_0004d30c(uint *param_1,uint *param_2,uint *param_3,uint *param_4)\n\n{\n  bool bVar1;\n  bool bVar2;\n  int *piVar3;\n  bool bVar4;\n  bool bVar5;\n  uint uVar6;\n  code *pcVar7;\n  code *pcVar8;\n  code *pcVar9;\n  int *piVar10;\n  uint uVar11;\n  uint **ppuVar12;\n  int iVar13;\n  uint uVar14;\n  int iVar15;\n  int iVar16;\n  int *piVar17;\n  char cVar21;\n  int iVar18;\n  uint uVar19;\n  undefined4 uVar20;\n  bool bVar22;\n  uint *puVar23;\n  uint extraout_v1;\n  uint **ppuVar24;\n  int iVar25;\n  int iVar26;\n  uint uVar27;\n  int iVar28;\n  int iVar29;\n  int iVar30;\n  uint uVar31;\n  uint *puVar32;\n  int *piVar33;\n  uint uVar34;\n  undefined4 *puVar35;\n  uint *puVar36;\n  uint uVar37;\n  uint *puVar38;\n  uint *puVar39;\n  uint uVar40;\n  int *unaff_s4;\n  uint uVar41;\n  int unaff_s5;\n  uint uVar42;\n  int unaff_s6;\n  uint *puVar43;\n  int iVar44;\n  uint *unaff_s7;\n  code *pcVar45;\n  undefined *puVar46;\n  int unaff_s8;\n  uint uStack_1f0;\n  int *piStack_1ec;\n  uint uStack_1e4;\n  uint *puStack_1e0;\n  uint **ppuStack_1dc;\n  uint uStack_1d0;\n  int iStack_180;\n  uint *puStack_16c;\n  uint uStack_168;\n  uint uStack_164;\n  int *piStack_160;\n  int *piStack_15c;\n  int iStack_158;\n  uint uStack_154;\n  undefined4 uStack_150;\n  undefined4 uStack_14c;\n  undefined4 uStack_148;\n  uint *puStack_144;\n  uint *puStack_140;\n  int *piStack_13c;\n  int iStack_138;\n  int iStack_12c;\n  uint *puStack_128;\n  uint *puStack_124;\n  uint uStack_120;\n  uint uStack_11c;\n  uint *puStack_118;\n  uint *puStack_114;\n  uint *puStack_110;\n  uint *puStack_10c;\n  undefined4 uStack_108;\n  uint *puStack_104;\n  uint *puStack_100;\n  byte bStack_fc;\n  byte bStack_fb;\n  byte bStack_fa;\n  byte bStack_f9;\n  char cStack_f8;\n  byte bStack_f7;\n  byte bStack_f6;\n  uint uStack_f4;\n  uint *puStack_f0;\n  undefined1 *puStack_ec;\n  uint uStack_e8;\n  int iStack_e4;\n  int *piStack_e0;\n  int iStack_dc;\n  undefined4 uStack_d8;\n  int iStack_d4;\n  int iStack_d0;\n  int iStack_cc;\n  int iStack_c4;\n  int iStack_c0;\n  int iStack_bc;\n  uint *puStack_b8;\n  uint *puStack_b4;\n  uint *puStack_b0;\n  uint *puStack_ac;\n  int *piStack_a8;\n  int iStack_a4;\n  int iStack_a0;\n  uint *puStack_9c;\n  int iStack_98;\n  code *pcStack_94;\n  uint *puStack_88;\n  uint *local_80;\n  uint *local_7c;\n  uint *local_78;\n  int *piStack_74;\n  int local_64;\n  uint local_38;\n  undefined4 local_34;\n  undefined4 *local_30;\n  uint **local_2c;\n  \n  puVar46 = PTR___stack_chk_guard_00075be8;\n  local_38 = 1;\n  local_34 = 1;\n  local_2c = *(uint ***)PTR___stack_chk_guard_00075be8;\n  puVar36 = (uint *)param_2[3];\n  puVar39 = (uint *)param_2[2];\n  puVar23 = param_2;\n  local_30 = (undefined4 *)(*(code *)PTR_malloc_00075b2c)(4);\n  if (local_30 == (undefined4 *)0x0) {\n    uVar6 = 0xc;\n  }\n  else {\n    *local_30 = puVar39;\n    pcVar45 = (code *)(PTR_DAT_00075978 + -0x1248);\n    puVar23 = param_2;\n    param_3 = puVar36;\n    param_4 = &local_38;\n    uVar6 = FUN_0004edb8(param_1);\n    if (uVar6 == 0) {\n      local_64 = 0;\n      if (0 < (int)puVar36) {\n        pcVar7 = (code *)(PTR_LAB_00075920 + 0x5610);\n        pcVar8 = (code *)(PTR_LAB_00075920 + 0x33f8);\n        pcVar9 = (code *)(PTR_LAB_00075920 + 0x5230);\n        do {\n          unaff_s7 = (uint *)((int)puVar36 * 4);\n          if (*(int *)(*param_2 + (int)unaff_s7) == 0) {\n            local_64 = local_64 + 1;\n            if ((int)param_1[0x1e] < local_64) goto LAB_0004d6a0;\n          }\n          else {\n            local_64 = 0;\n            if ((int)param_1[0x1e] < 0) {\nLAB_0004d6a0:\n              puVar23 = (uint *)0x0;\n              param_3 = unaff_s7;\n              (*(code *)PTR_memset_00075ad4)();\n              (*(code *)PTR_free_00075bfc)(local_30);\n              uVar6 = 0;\n              goto LAB_0004d644;\n            }\n          }\n          local_34 = 0;\n          unaff_s6 = *(int *)((int)unaff_s7 + (param_1[0x19] - 4));\n          puVar36 = (uint *)((int)puVar36 + -1);\n          if ((unaff_s6 != 0) && (unaff_s4 = (int *)param_1[0x15], 0 < *(int *)(unaff_s6 + 0x14))) {\n            unaff_s5 = 0;\n            do {\n              puVar39 = *(uint **)(*(int *)(unaff_s6 + 0x18) + unaff_s5 * 4);\n              unaff_s8 = (int)puVar39 * 8;\n              iVar29 = *unaff_s4 + unaff_s8;\n              if ((*(uint *)(iVar29 + 4) & 0x800) == 0) {\nLAB_0004d464:\n                iVar29 = FUN_00047bf8(param_1,iVar29,puVar36);\n                if (iVar29 != 0) {\n                  iVar29 = *(int *)(*param_2 + (int)unaff_s7);\n                  if (iVar29 != 0) {\n                    param_3 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc);\n                    iVar29 = 1;\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                }\n              }\n              else {\n                puVar35 = (undefined4 *)param_1[0x15];\n                uVar6 = param_2[3];\n                param_3 = puVar39;\n                param_4 = param_1;\n                local_80 = puVar36;\n                iVar29 = FUN_0004b150(*puVar35,puVar35 + 0x20);\n                if (iVar29 < 1) {\n                  if (iVar29 == 0) {\n                    iVar29 = *unaff_s4;\n                    goto LAB_0004d460;\n                  }\n                }\n                else if ((int)puVar36 + iVar29 <= (int)uVar6) {\n                  iVar30 = *(int *)(*param_2 + ((int)puVar36 + iVar29) * 4);\n                  if (iVar30 != 0) {\n                    param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                  iVar29 = *unaff_s4;\nLAB_0004d460:\n                  iVar29 = iVar29 + unaff_s8;\n                  goto LAB_0004d464;\n                }\nLAB_0004d4b4:\n                if (param_2[5] != 0) {\n                  local_80 = (uint *)((int)puVar36 + iVar29);\n                  param_3 = param_2 + 6;\n                  param_4 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                  local_7c = puVar39;\n                  local_78 = puVar36;\n                  iVar29 = (*pcVar7)(param_1,param_2 + 5);\n                  if (iVar29 != 0) goto LAB_0004d510;\n                }\n                puVar23 = puVar39;\n                iVar29 = (*pcVar8)(&local_38);\n                if (iVar29 == 0) {\n                  uVar6 = 0xc;\n                  goto LAB_0004d62c;\n                }\n              }\nLAB_0004d510:\n              unaff_s5 = unaff_s5 + 1;\n              param_4 = &local_38;\n            } while (unaff_s5 < *(int *)(unaff_s6 + 0x14));\n          }\n          puVar23 = param_2;\n          param_3 = puVar36;\n          param_4 = &local_38;\n          uVar6 = (*pcVar45)(param_1);\n          if (uVar6 != 0) goto LAB_0004d62c;\n        } while (puVar36 != (uint *)0x0);\n      }\n      uVar6 = 0;\n    }\nLAB_0004d62c:\n    (*(code *)PTR_free_00075bfc)(local_30);\n  }\nLAB_0004d644:\n  if (local_2c == *(uint ***)puVar46) {\n    return uVar6;\n  }\n  pcVar45 = FUN_0004d6dc;\n  ppuVar24 = local_2c;\n  puVar46 = PTR___stack_chk_fail_00075ba8;\n  (*(code *)PTR___stack_chk_fail_00075ba8)();\n  puVar32 = local_7c;\n  puVar38 = local_80;\n  piVar10 = *(int **)(puVar46 + 0x2850c);\n  iStack_bc = *piVar10;\n  puVar43 = *ppuVar24;\n  puStack_b8 = puVar36;\n  puStack_b4 = param_2;\n  puStack_b0 = param_1;\n  puStack_ac = puVar39;\n  piStack_a8 = unaff_s4;\n  iStack_a4 = unaff_s5;\n  iStack_a0 = unaff_s6;\n  puStack_9c = unaff_s7;\n  iStack_98 = unaff_s8;\n  pcStack_94 = pcVar45;\n  puStack_88 = param_3;\n  (**(code **)(puVar46 + 0x283f8))(&puStack_144,0,0x88);\n  puStack_1e0 = ppuVar24[4];\n  if (puStack_1e0 != (uint *)0x0) {\n    if (((*(byte *)(ppuVar24 + 7) & 0x10) == 0) || (param_4 == puVar38)) {\n      puStack_1e0 = (uint *)0x0;\n    }\n    else if ((char)*(byte *)(ppuVar24 + 7) < '\0') {\n      puStack_1e0 = (uint *)0x0;\n    }\n  }\n  puVar36 = ppuVar24[6];\n  if (puVar36 < local_78) {\n    iStack_180 = ((int)local_78 + -1) - (int)puVar36;\n    local_78 = (uint *)((int)local_78 + ((int)puVar36 - ((int)local_78 + -1)));\n    puVar36 = ppuVar24[2];\n  }\n  else {\n    puVar36 = ppuVar24[2];\n    iStack_180 = 0;\n  }\n  puStack_f0 = puVar43;\n  if ((((puVar36 == (uint *)0x0) || (puVar43[9] == 0)) || (puVar43[10] == 0)) ||\n     ((puVar43[0xb] == 0 || (puVar43[0xc] == 0)))) {\nLAB_0004db54:\n    uStack_1e4 = 1;\n    goto LAB_0004db58;\n  }\n  if (((*(int *)(puVar43[9] + 8) == 0) && (*(int *)(puVar43[10] + 8) == 0)) &&\n     ((*(int *)(puVar43[0xb] + 8) == 0 || (((uint)ppuVar24[7] & 0x1000000) == 0)))) {\n    if (param_4 == (uint *)0x0) {\n      puVar38 = (uint *)0x0;\n    }\n    else {\n      if (puVar38 != (uint *)0x0) goto LAB_0004db54;\n      param_4 = (uint *)0x0;\n    }\n  }\n  if (local_78 == (uint *)0x0) {\n    bVar22 = puVar43[0x13] != 0;\n  }\n  else {\n    bVar22 = true;\n  }\n  uStack_f4 = puVar43[0x17];\n  puVar36 = ppuVar24[5];\n  uVar6 = puVar43[2] + 1;\n  if ((int)(puVar43[2] + 1) < (int)uStack_f4) {\n    uVar6 = uStack_f4;\n  }\n  bStack_fc = (byte)((uint)((int)ppuVar24[3] << 9) >> 0x18);\n  bStack_f9 = 1;\n  if (puVar36 == (uint *)0x0) {\n    bStack_f9 = bStack_fc >> 7;\n  }\n  uVar34 = (int)puStack_88 + 1U;\n  if ((int)uVar6 <= (int)((int)puStack_88 + 1U)) {\n    uVar34 = uVar6;\n  }\n  bStack_fc = bStack_fc >> 7;\n  bStack_fb = (byte)((puVar43[0x16] << 2) >> 0x1f);\n  bStack_fa = (byte)((puVar43[0x16] << 3) >> 0x1f);\n  puStack_114 = puStack_88;\n  puStack_118 = puStack_88;\n  puStack_10c = puStack_88;\n  puStack_110 = puStack_88;\n  puStack_144 = puVar23;\n  puStack_104 = puVar36;\n  uStack_1e4 = FUN_00043278(&puStack_144,uVar34);\n  piVar17 = piStack_e0;\n  if (uStack_1e4 != 0) {\nLAB_0004dbbc:\n    while( true ) {\n      pcVar45 = *(code **)(puVar46 + 0x28520);\nLAB_0004dbc0:\n      (*pcVar45)(piVar17);\n      if (puVar43[0x13] != 0) {\nLAB_0004dc14:\n        FUN_00044db0(&puStack_144);\n        (**(code **)(puVar46 + 0x28520))(iStack_c0);\n        (**(code **)(puVar46 + 0x28520))(iStack_d0);\n      }\nLAB_0004dbd4:\n      FUN_00044d40(&puStack_144);\nLAB_0004db58:\n      if (iStack_bc == *piVar10) break;\n      uStack_1e4 = (**(code **)(puVar46 + 0x284cc))();\n      piVar17 = piStack_e0;\n    }\n    return uStack_1e4;\n  }\n  puStack_100 = puVar43 + 0x18;\n  bStack_f6 = (byte)((puVar43[0x16] << 4) >> 0x1f);\n  if ((bStack_f9 != 0) || (puStack_140 = puVar23, puStack_128 = puStack_88, 1 < (int)puVar43[0x17]))\n  {\n    puStack_128 = (uint *)0x0;\n  }\n  puStack_10c = puVar32;\n  puStack_110 = puVar32;\n  puStack_124 = puStack_128;\n  bStack_f7 = (byte)((uint)((int)ppuVar24[7] << 7) >> 0x1f);\n  uVar6 = puVar43[0x13];\n  iVar29 = uVar6 * 2;\n  puStack_ec = &_gp_1;\n  uStack_e8 = 0xffffffff;\n  if (0 < iVar29) {\n    if (0xccccccc < iVar29) goto LAB_0004dbf8;\n    iVar30 = (**(code **)(puVar46 + 0x28450))(uVar6 * 0x28);\n    iStack_d0 = iVar30;\n    iStack_c0 = (**(code **)(puVar46 + 0x28450))(uVar6 * 8);\n    if ((iVar30 == 0) || (iStack_c0 == 0)) goto LAB_0004dbf8;\n  }\n  iStack_d4 = iVar29;\n  iStack_c4 = iVar29;\n  bVar1 = (uint *)0x1 < local_78;\n  iStack_cc = 1;\n  if ((bVar1) || ((puVar43[0x16] & 0x40000000) != 0)) {\n    if (0x3ffffffe < uStack_120) {\nLAB_0004dbf8:\n      uStack_1e4 = 0xc;\n      (**(code **)(puVar46 + 0x28520))(piStack_e0);\n      if (puVar43[0x13] == 0) goto LAB_0004dbd4;\n      goto LAB_0004dc14;\n    }\n    piStack_e0 = (int *)(**(code **)(puVar46 + 0x28450))((uStack_120 + 1) * 4);\n    piVar17 = piStack_e0;\n    if (piStack_e0 == (int *)0x0) {\nLAB_0004dbb4:\n      uStack_1e4 = 0xc;\n      goto LAB_0004dbbc;\n    }\n  }\n  else {\n    piStack_e0 = (int *)0x0;\n  }\n  uVar34 = puVar43[0x17];\n  iVar29 = -1;\n  puStack_16c = param_4;\n  uStack_108 = 6;\n  uVar6 = (uint)((int)puVar38 < (int)param_4);\n  puVar23 = puVar38;\n  if (uVar6 == 0) {\n    iVar29 = 1;\n    puVar23 = param_4;\n  }\n  if ((int)puVar38 <= (int)param_4) {\n    puVar38 = param_4;\n  }\n  if (puStack_1e0 == (uint *)0x0) goto LAB_0004eabc;\n  uVar11 = 4;\n  if (((uVar34 != 1) && (uVar11 = 0, -1 < (int)ppuVar24[3] << 9)) &&\n     (uVar11 = 4, puVar36 != (uint *)0x0)) {\n    uVar11 = 0;\n  }\n  uVar31 = 2;\n  if (uVar6 != 0) {\n    uVar31 = 0;\n  }\n  uVar31 = puVar36 != (uint *)0x0 | uVar11 | uVar31;\nLAB_0004dab0:\n  if (((int)puVar23 <= (int)param_4) && ((int)param_4 <= (int)puVar38)) {\n    ppuVar12 = &puStack_16c;\n    if (uVar6 != 0) {\n      ppuVar12 = (uint **)0x0;\n    }\n    iVar25 = *(int *)(puVar46 + 0x28244);\n    iVar13 = *(int *)(puVar46 + 0x27edc);\n    iVar26 = *(int *)(puVar46 + 0x2829c);\n    iVar30 = iStack_12c;\n    puVar36 = puStack_88;\n    do {\n      puStack_88 = puVar36;\n      if (uVar31 - 4 < 5) {\n                    /* WARNING: Could not recover jumptable at 0x0004db3c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar6 = (*(code *)(puVar46 + *(int *)(iVar13 + 0x2be4 + (uVar31 - 4) * 4) + 0x2fea4))();\n        return uVar6;\n      }\n      iStack_12c = iVar30;\n      while( true ) {\n        puVar39 = (uint *)((int)param_4 - iVar30);\n        if (puStack_124 <= puVar39) {\n          uStack_1e4 = (*(code *)(iVar25 + 0x7eac))(&puStack_144,param_4,&_gp_1);\n          piVar17 = piStack_e0;\n          if (uStack_1e4 != 0) goto LAB_0004dbbc;\n          puVar39 = (uint *)((int)param_4 - iStack_12c);\n          iVar30 = iStack_12c;\n        }\n        if ((int)param_4 < (int)puVar36) {\n          cVar21 = *(char *)((int)puStack_1e0 + (uint)*(byte *)((int)puStack_140 + (int)puVar39));\n        }\n        else {\n          cVar21 = *(char *)puStack_1e0;\n        }\n        if (cVar21 != '\0') break;\n        param_4 = (uint *)((int)param_4 + iVar29);\n        puStack_16c = param_4;\n        if (((int)param_4 < (int)puVar23) || ((int)puVar38 < (int)param_4)) goto LAB_0004df68;\n      }\n      uVar11 = FUN_00047eac(&puStack_144,param_4,&_gp_1);\n      puVar36 = puStack_f0;\n      uVar6 = uStack_11c;\n      piVar17 = piStack_e0;\n      uStack_1e4 = uVar11;\n      if (uVar11 != 0) goto LAB_0004dbbc;\n      if (((uVar34 == 1) || (puStack_128 == (uint *)0x0)) || (*piStack_13c != -1)) {\n        iStack_cc = 0;\n        uStack_d8 = 0;\n        uVar41 = puStack_f0[9];\n        uStack_1d0 = uStack_11c;\n        iStack_dc = 0;\n        uStack_168 = 0;\n        if ((*(byte *)(uVar41 + 0x34) & 1) != 0) {\n          uVar14 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n          if ((uVar14 & 1) == 0) {\n            if (uVar14 == 0) goto LAB_0004dd24;\n            if ((uVar14 & 6) == 6) {\n              uVar41 = puVar36[0xc];\n            }\n            else if ((uVar14 & 2) == 0) {\n              if ((uVar14 & 4) == 0) goto LAB_0004dd24;\n              uVar41 = FUN_00046cac(&uStack_168,puVar36,*(undefined4 *)(uVar41 + 0x28),uVar14);\n            }\n            else {\n              uVar41 = puVar36[0xb];\n            }\n          }\n          else {\n            uVar41 = puVar36[10];\n          }\n          if (uVar41 == 0) goto code_r0x0004ea7c;\n        }\nLAB_0004dd24:\n        bVar4 = ppuVar12 != (uint **)0x0;\n        if ((piStack_e0 == (int *)0x0) ||\n           (uVar14 = puVar36[0x13], piStack_e0[uVar6] = uVar41, uVar14 == 0)) {\nLAB_0004dd48:\n          if (*(int *)(uVar41 + 0x34) << 4 < 0) {\n            if (((*(byte *)(uVar41 + 0x34) & 1) == 0) ||\n               (iVar30 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar41 + 8),uVar41 + 0xc,uVar6),\n               iVar30 != 0)) {\n              uVar14 = uVar6;\n              bVar5 = bVar22;\n              if (!bVar22) goto LAB_0004e0e4;\n            }\n            else {\n              uVar6 = 0xffffffff;\n              bVar5 = false;\n            }\n          }\n          else {\n            uVar6 = 0xffffffff;\n            bVar5 = false;\n          }\n          iVar30 = *(int *)(puVar46 + 0x28244);\n          iVar15 = *(int *)(puVar46 + 0x2829c);\n          uVar14 = uStack_11c;\n          ppuStack_1dc = ppuVar12;\n          while ((int)uVar14 < (int)puStack_10c) {\n            uVar40 = uVar14 + 1;\n            if ((((int)uVar40 < (int)uStack_120) || ((int)puStack_114 <= (int)uStack_120)) &&\n               (((int)uVar40 < (int)puStack_128 || ((int)puStack_114 <= (int)puStack_128)))) {\n              iVar16 = *(int *)(uVar41 + 0x34);\n              puVar36 = puStack_f0;\n            }\n            else {\n              uStack_168 = (*(code *)(iVar30 + 0x41e4))(&puStack_144,uVar14 + 2);\n              if (uStack_168 != 0) {\n                if (uStack_168 == 0xc) goto LAB_0004dbf8;\n                uVar20 = 0x46c;\n                goto LAB_0004ea9c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x34);\n              uVar14 = uStack_11c;\n              puVar36 = puStack_f0;\n            }\n            puStack_f0 = puVar36;\n            if (iVar16 << 5 < 0) {\n              iVar16 = *(int *)(uVar41 + 8);\n              if (0 < iVar16) {\n                param_4 = (uint *)0x0;\n                iVar18 = *(int *)(puVar46 + 0x28244);\n                pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7ab0);\n                do {\n                  uVar42 = *puVar36;\n                  iVar44 = *(int *)(*(int *)(uVar41 + 0xc) + (int)param_4 * 4);\n                  uVar37 = *(uint *)(uVar42 + iVar44 * 8 + 4);\n                  if ((uVar37 & 0x800) != 0) {\n                    if ((uVar37 & 0xffc000) != 0) {\n                      uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec);\n                      uVar37 = (uVar37 << 8) >> 0x16;\n                      if ((uVar37 & 4) == 0) {\n                        uVar27 = uVar19 & 1;\n                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    iVar16 = (*(code *)(iVar15 + -0x4eb0))\n                                       (uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14);\n                    if (iVar16 != 0) {\n                      if (iStack_cc < iVar16) {\n                        iStack_cc = iVar16;\n                      }\n                      iVar16 = iVar16 + uStack_11c;\n                      uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16);\n                      uVar14 = uStack_164;\n                      if (uStack_164 != 0) goto joined_r0x0004e770;\n                      piVar33 = piStack_e0 + iVar16;\n                      iVar28 = *piVar33;\n                      piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc);\n                      if (iVar28 == 0) {\n                        piStack_160 = (int *)*piVar17;\n                        piStack_15c = (int *)piVar17[1];\n                        iStack_158 = piVar17[2];\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        *piVar33 = iVar44;\n                      }\n                      else {\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }\n                      if ((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar16 = *(int *)(uVar41 + 8);\n                    uVar14 = uStack_11c;\n                  }\nLAB_0004e670:\n                  param_4 = (uint *)((int)param_4 + 1);\n                } while ((int)param_4 < iVar16);\n              }\n              uStack_168 = 0;\n            }\n            uStack_11c = uVar14 + 1;\n            uVar14 = (uint)*(byte *)((int)puStack_140 + uVar14);\n            do {\n              if (*(int *)(uVar41 + 0x2c) != 0) {\n                uVar37 = *(uint *)(*(int *)(uVar41 + 0x2c) + uVar14 * 4);\nLAB_0004ddf0:\n                if (piStack_e0 != (int *)0x0) goto LAB_0004ddfc;\n                goto LAB_0004de1c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x30);\n              if (iVar16 != 0) {\n                uVar37 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n                if ((uVar37 & 1) == 0) {\n                  uVar37 = *(uint *)(iVar16 + uVar14 * 4);\n                }\n                else {\n                  uVar37 = *(uint *)(iVar16 + (uVar14 + 0x100) * 4);\n                }\n                goto LAB_0004ddf0;\n              }\n              iVar16 = (*(code *)(iVar26 + -0x7510))(puStack_f0,uVar41);\n            } while (iVar16 != 0);\n            uStack_168 = 0xc;\n            uVar14 = uStack_168;\njoined_r0x0004e770:\n            uStack_168 = uVar14;\n            if (piStack_e0 == (int *)0x0) {\n              piVar17 = (int *)0x0;\n              goto LAB_0004dbb4;\n            }\n            uVar37 = 0;\nLAB_0004ddfc:\n            uVar37 = FUN_0004d0a8(&uStack_168,&puStack_144,uVar37);\nLAB_0004de1c:\n            uVar14 = uStack_11c;\n            if (uVar37 == 0) {\n              piVar17 = piStack_e0;\n              if (uStack_168 != 0) goto LAB_0004dbb4;\n              if ((piStack_e0 == (int *)0x0) || ((bVar5 && (!bVar22)))) break;\n              param_4 = &uStack_168;\n              do {\n                bVar2 = false;\n                piVar17 = piStack_e0 + uStack_11c;\n                uVar14 = uStack_11c;\n                do {\n                  uVar37 = uVar14 + 1;\n                  piVar17 = piVar17 + 1;\n                  if (iStack_dc < (int)uVar37) {\n                    if (bVar2) {\n                      uStack_11c = uVar14;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar2 = true;\n                  uVar14 = uVar37;\n                } while (*piVar17 == 0);\n                uStack_11c = uVar37;\n                uVar37 = FUN_0004d0a8(param_4,&puStack_144,0);\n                uVar14 = uStack_11c;\n                if (uStack_168 != 0) {\n                  if (uVar37 == 0) goto LAB_0004e0cc;\n                  break;\n                }\n              } while (uVar37 == 0);\n            }\n            uVar42 = uStack_1d0;\n            if ((bVar4) && (uVar42 = uVar40, uVar41 != uVar37)) {\n              bVar4 = false;\n              uVar42 = uStack_1d0;\n            }\n            uStack_1d0 = uVar42;\n            uVar41 = uVar37;\n            uStack_11c = uVar14;\n            if (((*(byte *)(uVar37 + 0x34) & 8) != 0) &&\n               (((*(byte *)(uVar37 + 0x34) & 1) == 0 ||\n                (iVar16 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar37 + 8),uVar37 + 0xc,uVar14)\n                , iVar16 != 0)))) {\n              if (!bVar22) goto LAB_0004e0e4;\n              ppuStack_1dc = (uint **)0x0;\n              uVar6 = uVar14;\n              bVar5 = bVar22;\n            }\n          }\nLAB_0004e0cc:\n          uVar14 = uVar6;\n          if (ppuStack_1dc != (uint **)0x0) {\n            *ppuStack_1dc = (uint *)((int)*ppuStack_1dc + uStack_1d0);\n          }\n        }\n        else {\n          uVar14 = FUN_00047924(&puStack_144,uVar41 + 8,uVar41 + 0xc,0);\n          uStack_168 = uVar14;\n          if (uVar14 == 0) {\n            if ((*(byte *)(uVar41 + 0x34) & 2) == 0) {\n              bVar4 = false;\n            }\n            else {\n              uVar14 = FUN_0004c6a8(&puStack_144,uVar41 + 8,uVar41 + 0xc);\n              uStack_168 = uVar14;\n              if (uVar14 != 0) goto LAB_0004e0e4;\n              bVar4 = false;\n            }\n            goto LAB_0004dd48;\n          }\n        }\nLAB_0004e0e4:\n        piVar17 = piStack_e0;\n        if (uVar14 != 0xffffffff) {\n          if (uVar14 == 0xfffffffe) goto LAB_0004dbf8;\n          uStack_e8 = uVar14;\n          if (((uint)ppuVar24[7] & 0x8000000) == 0) {\n            if (!bVar1) {\n              uVar6 = puVar43[0x13];\n              goto joined_r0x0004e94c;\n            }\n            pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n            iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                     piStack_e0[uVar14] + 0xc,uVar14);\n            if ((*(char *)(puVar43 + 0x16) < '\0') || (puVar43[0x13] != 0)) goto LAB_0004e170;\n          }\n          else {\n            uVar6 = puVar43[0x13];\njoined_r0x0004e94c:\n            if (uVar6 != 0) {\n              pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n              iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                       piStack_e0[uVar14] + 0xc,uVar14);\nLAB_0004e170:\n              iVar30 = iStack_e4;\n              puVar36 = puStack_f0;\n              if (uVar14 < 0x3fffffff) {\n                uStack_1f0 = uVar14 + 1;\n                piVar17 = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                if (piVar17 == (int *)0x0) goto LAB_0004dbf8;\n                if (puVar36[0x13] == 0) {\n                  piStack_15c = (int *)0x0;\n                  uStack_150 = 0;\n                  uStack_14c = 0;\n                  uStack_148 = 0;\n                  piStack_160 = piVar17;\n                  iStack_158 = iVar30;\n                  uStack_154 = uVar14;\n                  uStack_1e4 = FUN_0004d30c(&puStack_144,&piStack_160);\n                  (**(code **)(puVar46 + 0x28520))(uStack_148);\n                  if (uStack_1e4 == 0) {\n                    if (*piVar17 == 0) {\n                      (**(code **)(puVar46 + 0x28520))(piVar17);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar46 + 0x28520))(piStack_e0);\n                    uStack_e8 = uVar14;\n                    iStack_e4 = iVar30;\n                    piStack_e0 = piVar17;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  piStack_1ec = (int *)0x0;\n                }\n                else {\n                  piStack_1ec = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                  if (piStack_1ec == (int *)0x0) {\n                    (**(code **)(puVar46 + 0x28520))(piVar17);\n                    uStack_1e4 = 0xc;\n                    piVar17 = piStack_e0;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar15 = *(int *)(puVar46 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);\n                    uStack_150 = 0;\n                    uStack_14c = 0;\n                    uStack_148 = 0;\n                    piStack_160 = piVar17;\n                    piStack_15c = piStack_1ec;\n                    iStack_158 = iVar30;\n                    uStack_154 = uVar14;\n                    uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);\n                    (**(code **)(puVar46 + 0x28520))(uStack_148);\n                    if (uStack_1e4 != 0) break;\n                    if ((*piVar17 != 0) || (*piStack_1ec != 0)) {\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    piVar33 = piStack_e0 + (uStack_1f0 - 1);\n                    uStack_1f0 = uVar14;\n                    while( true ) {\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }\n                    iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       );\n                  }\n                }\n                (**(code **)(puVar46 + 0x28520))(piVar17);\n                (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                piVar17 = piStack_e0;\n                if (uStack_1e4 == 1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }\n              uStack_1e4 = 0xc;\n              goto LAB_0004dbbc;\n            }\n          }\nLAB_0004e7e0:\n          piVar17 = piStack_e0;\n          uStack_1e4 = uVar11;\n          if (local_78 == (uint *)0x0) goto LAB_0004dbbc;\n          puVar23 = ppuVar24[7];\n          if (bVar1) {\n            piVar17 = piStack_74 + 2;\n            do {\n              piVar17[1] = -1;\n              piVar33 = piVar17 + 2;\n              *piVar17 = -1;\n              piVar17 = piVar33;\n            } while (piStack_74 + (int)local_78 * 2 != piVar33);\n            *piStack_74 = 0;\n            piStack_74[1] = uStack_e8;\n            if (((uint)puVar23 & 0x8000000) == 0) {\n              if (*(char *)(puVar43 + 0x16) < '\0') {\n                bVar22 = 0 < (int)puVar43[0x13];\n              }\n              else {\n                bVar22 = false;\n              }\n              uStack_1e4 = FUN_0004bc00(ppuVar24,&puStack_144,local_78,piStack_74,bVar22);\n              piVar17 = piStack_e0;\n              if (uStack_1e4 != 0) goto LAB_0004dbbc;\n              puVar23 = (uint *)*piStack_74;\n            }\n            else {\nLAB_0004e838:\n              puVar23 = (uint *)0x0;\n            }\n            puVar36 = (uint *)0x0;\n            piVar17 = piStack_74;\n            while( true ) {\n              if (puVar23 != (uint *)0xffffffff) {\n                puVar32 = (uint *)piVar17[1];\n                puVar39 = puVar23;\n                puVar38 = puVar32;\n                if (cStack_f8 != '\0') {\n                  puVar39 = puStack_124;\n                  if (puStack_128 != puVar23) {\n                    puVar39 = *(uint **)(iStack_138 + (int)puVar23 * 4);\n                  }\n                  *piVar17 = (int)puVar39;\n                  puVar38 = puStack_124;\n                  if (puStack_128 != puVar32) {\n                    puVar38 = *(uint **)(iStack_138 + (int)puVar32 * 4);\n                  }\n                }\n                *piVar17 = (int)puStack_16c + (int)puVar39;\n                piVar17[1] = (int)puStack_16c + (int)puVar38;\n              }\n              puVar36 = (uint *)((int)puVar36 + 1);\n              piVar17 = piVar17 + 2;\n              if (puVar36 == local_78) break;\n              puVar23 = (uint *)*piVar17;\n            }\n            if (0 < iStack_180) {\n              piVar17 = piStack_74 + (int)local_78 * 2;\n              do {\n                *piVar17 = -1;\n                piVar33 = piVar17 + 2;\n                piVar17[1] = -1;\n                piVar17 = piVar33;\n              } while (piStack_74 + (iStack_180 + (int)local_78) * 2 != piVar33);\n            }\n            piVar33 = (int *)puVar43[0x21];\n            piVar17 = piStack_e0;\n            uStack_1e4 = uVar11;\n            if (piVar33 != (int *)0x0) {\n              iVar29 = 0;\n              piVar3 = piStack_74;\n              do {\n                pcVar45 = *(code **)(puVar46 + 0x28520);\n                if (iVar29 == (int)local_78 + -1) goto LAB_0004dbc0;\n                if (*piVar33 != iVar29) {\n                  piVar3[2] = piStack_74[(*piVar33 + 1) * 2];\n                  piVar3[3] = piStack_74[(*piVar33 + 1) * 2 + 1];\n                }\n                iVar29 = iVar29 + 1;\n                piVar33 = piVar33 + 1;\n                piVar3 = piVar3 + 2;\n              } while( true );\n            }\n            goto LAB_0004dbbc;\n          }\n          *piStack_74 = 0;\n          piStack_74[1] = uStack_e8;\n          goto LAB_0004e838;\n        }\nLAB_0004e2d4:\n        FUN_00044db0(&puStack_144);\n        param_4 = puStack_16c;\n      }\n      param_4 = (uint *)((int)param_4 + iVar29);\n      puStack_16c = param_4;\n      if (((int)param_4 < (int)puVar23) ||\n         (iVar30 = iStack_12c, puVar36 = puStack_88, (int)puVar38 < (int)param_4)) break;\n    } while( true );\n  }\nLAB_0004df68:\n  uStack_1e4 = 1;\n  piVar17 = piStack_e0;\n  goto LAB_0004dbbc;\ncode_r0x0004ea7c:\n  uStack_1e4 = uStack_168;\n  piVar17 = piStack_e0;\n  if (uStack_168 == 0xc) goto LAB_0004dbbc;\n  uVar20 = 0x435;\nLAB_0004ea9c:\n  (**(code **)(puVar46 + 0x282f4))\n            (*(int *)(puVar46 + 0x27edc) + 0x2b30,*(int *)(puVar46 + 0x27edc) + 0x2ac0,uVar20,\n             *(int *)(puVar46 + 0x27edc) + 0x3030);\n  uVar6 = extraout_v1;\n  ppuVar24 = &puStack_144;\nLAB_0004eabc:\n  uVar31 = 8;\n  goto LAB_0004dab0;\n}\n\n" comment (function_definition "uint FUN_0004d30c(uint *param_1,uint *param_2,uint *param_3,uint *param_4)\n\n{\n  bool bVar1;\n  bool bVar2;\n  int *piVar3;\n  bool bVar4;\n  bool bVar5;\n  uint uVar6;\n  code *pcVar7;\n  code *pcVar8;\n  code *pcVar9;\n  int *piVar10;\n  uint uVar11;\n  uint **ppuVar12;\n  int iVar13;\n  uint uVar14;\n  int iVar15;\n  int iVar16;\n  int *piVar17;\n  char cVar21;\n  int iVar18;\n  uint uVar19;\n  undefined4 uVar20;\n  bool bVar22;\n  uint *puVar23;\n  uint extraout_v1;\n  uint **ppuVar24;\n  int iVar25;\n  int iVar26;\n  uint uVar27;\n  int iVar28;\n  int iVar29;\n  int iVar30;\n  uint uVar31;\n  uint *puVar32;\n  int *piVar33;\n  uint uVar34;\n  undefined4 *puVar35;\n  uint *puVar36;\n  uint uVar37;\n  uint *puVar38;\n  uint *puVar39;\n  uint uVar40;\n  int *unaff_s4;\n  uint uVar41;\n  int unaff_s5;\n  uint uVar42;\n  int unaff_s6;\n  uint *puVar43;\n  int iVar44;\n  uint *unaff_s7;\n  code *pcVar45;\n  undefined *puVar46;\n  int unaff_s8;\n  uint uStack_1f0;\n  int *piStack_1ec;\n  uint uStack_1e4;\n  uint *puStack_1e0;\n  uint **ppuStack_1dc;\n  uint uStack_1d0;\n  int iStack_180;\n  uint *puStack_16c;\n  uint uStack_168;\n  uint uStack_164;\n  int *piStack_160;\n  int *piStack_15c;\n  int iStack_158;\n  uint uStack_154;\n  undefined4 uStack_150;\n  undefined4 uStack_14c;\n  undefined4 uStack_148;\n  uint *puStack_144;\n  uint *puStack_140;\n  int *piStack_13c;\n  int iStack_138;\n  int iStack_12c;\n  uint *puStack_128;\n  uint *puStack_124;\n  uint uStack_120;\n  uint uStack_11c;\n  uint *puStack_118;\n  uint *puStack_114;\n  uint *puStack_110;\n  uint *puStack_10c;\n  undefined4 uStack_108;\n  uint *puStack_104;\n  uint *puStack_100;\n  byte bStack_fc;\n  byte bStack_fb;\n  byte bStack_fa;\n  byte bStack_f9;\n  char cStack_f8;\n  byte bStack_f7;\n  byte bStack_f6;\n  uint uStack_f4;\n  uint *puStack_f0;\n  undefined1 *puStack_ec;\n  uint uStack_e8;\n  int iStack_e4;\n  int *piStack_e0;\n  int iStack_dc;\n  undefined4 uStack_d8;\n  int iStack_d4;\n  int iStack_d0;\n  int iStack_cc;\n  int iStack_c4;\n  int iStack_c0;\n  int iStack_bc;\n  uint *puStack_b8;\n  uint *puStack_b4;\n  uint *puStack_b0;\n  uint *puStack_ac;\n  int *piStack_a8;\n  int iStack_a4;\n  int iStack_a0;\n  uint *puStack_9c;\n  int iStack_98;\n  code *pcStack_94;\n  uint *puStack_88;\n  uint *local_80;\n  uint *local_7c;\n  uint *local_78;\n  int *piStack_74;\n  int local_64;\n  uint local_38;\n  undefined4 local_34;\n  undefined4 *local_30;\n  uint **local_2c;\n  \n  puVar46 = PTR___stack_chk_guard_00075be8;\n  local_38 = 1;\n  local_34 = 1;\n  local_2c = *(uint ***)PTR___stack_chk_guard_00075be8;\n  puVar36 = (uint *)param_2[3];\n  puVar39 = (uint *)param_2[2];\n  puVar23 = param_2;\n  local_30 = (undefined4 *)(*(code *)PTR_malloc_00075b2c)(4);\n  if (local_30 == (undefined4 *)0x0) {\n    uVar6 = 0xc;\n  }\n  else {\n    *local_30 = puVar39;\n    pcVar45 = (code *)(PTR_DAT_00075978 + -0x1248);\n    puVar23 = param_2;\n    param_3 = puVar36;\n    param_4 = &local_38;\n    uVar6 = FUN_0004edb8(param_1);\n    if (uVar6 == 0) {\n      local_64 = 0;\n      if (0 < (int)puVar36) {\n        pcVar7 = (code *)(PTR_LAB_00075920 + 0x5610);\n        pcVar8 = (code *)(PTR_LAB_00075920 + 0x33f8);\n        pcVar9 = (code *)(PTR_LAB_00075920 + 0x5230);\n        do {\n          unaff_s7 = (uint *)((int)puVar36 * 4);\n          if (*(int *)(*param_2 + (int)unaff_s7) == 0) {\n            local_64 = local_64 + 1;\n            if ((int)param_1[0x1e] < local_64) goto LAB_0004d6a0;\n          }\n          else {\n            local_64 = 0;\n            if ((int)param_1[0x1e] < 0) {\nLAB_0004d6a0:\n              puVar23 = (uint *)0x0;\n              param_3 = unaff_s7;\n              (*(code *)PTR_memset_00075ad4)();\n              (*(code *)PTR_free_00075bfc)(local_30);\n              uVar6 = 0;\n              goto LAB_0004d644;\n            }\n          }\n          local_34 = 0;\n          unaff_s6 = *(int *)((int)unaff_s7 + (param_1[0x19] - 4));\n          puVar36 = (uint *)((int)puVar36 + -1);\n          if ((unaff_s6 != 0) && (unaff_s4 = (int *)param_1[0x15], 0 < *(int *)(unaff_s6 + 0x14))) {\n            unaff_s5 = 0;\n            do {\n              puVar39 = *(uint **)(*(int *)(unaff_s6 + 0x18) + unaff_s5 * 4);\n              unaff_s8 = (int)puVar39 * 8;\n              iVar29 = *unaff_s4 + unaff_s8;\n              if ((*(uint *)(iVar29 + 4) & 0x800) == 0) {\nLAB_0004d464:\n                iVar29 = FUN_00047bf8(param_1,iVar29,puVar36);\n                if (iVar29 != 0) {\n                  iVar29 = *(int *)(*param_2 + (int)unaff_s7);\n                  if (iVar29 != 0) {\n                    param_3 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc);\n                    iVar29 = 1;\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                }\n              }\n              else {\n                puVar35 = (undefined4 *)param_1[0x15];\n                uVar6 = param_2[3];\n                param_3 = puVar39;\n                param_4 = param_1;\n                local_80 = puVar36;\n                iVar29 = FUN_0004b150(*puVar35,puVar35 + 0x20);\n                if (iVar29 < 1) {\n                  if (iVar29 == 0) {\n                    iVar29 = *unaff_s4;\n                    goto LAB_0004d460;\n                  }\n                }\n                else if ((int)puVar36 + iVar29 <= (int)uVar6) {\n                  iVar30 = *(int *)(*param_2 + ((int)puVar36 + iVar29) * 4);\n                  if (iVar30 != 0) {\n                    param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                  iVar29 = *unaff_s4;\nLAB_0004d460:\n                  iVar29 = iVar29 + unaff_s8;\n                  goto LAB_0004d464;\n                }\nLAB_0004d4b4:\n                if (param_2[5] != 0) {\n                  local_80 = (uint *)((int)puVar36 + iVar29);\n                  param_3 = param_2 + 6;\n                  param_4 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                  local_7c = puVar39;\n                  local_78 = puVar36;\n                  iVar29 = (*pcVar7)(param_1,param_2 + 5);\n                  if (iVar29 != 0) goto LAB_0004d510;\n                }\n                puVar23 = puVar39;\n                iVar29 = (*pcVar8)(&local_38);\n                if (iVar29 == 0) {\n                  uVar6 = 0xc;\n                  goto LAB_0004d62c;\n                }\n              }\nLAB_0004d510:\n              unaff_s5 = unaff_s5 + 1;\n              param_4 = &local_38;\n            } while (unaff_s5 < *(int *)(unaff_s6 + 0x14));\n          }\n          puVar23 = param_2;\n          param_3 = puVar36;\n          param_4 = &local_38;\n          uVar6 = (*pcVar45)(param_1);\n          if (uVar6 != 0) goto LAB_0004d62c;\n        } while (puVar36 != (uint *)0x0);\n      }\n      uVar6 = 0;\n    }\nLAB_0004d62c:\n    (*(code *)PTR_free_00075bfc)(local_30);\n  }\nLAB_0004d644:\n  if (local_2c == *(uint ***)puVar46) {\n    return uVar6;\n  }\n  pcVar45 = FUN_0004d6dc;\n  ppuVar24 = local_2c;\n  puVar46 = PTR___stack_chk_fail_00075ba8;\n  (*(code *)PTR___stack_chk_fail_00075ba8)();\n  puVar32 = local_7c;\n  puVar38 = local_80;\n  piVar10 = *(int **)(puVar46 + 0x2850c);\n  iStack_bc = *piVar10;\n  puVar43 = *ppuVar24;\n  puStack_b8 = puVar36;\n  puStack_b4 = param_2;\n  puStack_b0 = param_1;\n  puStack_ac = puVar39;\n  piStack_a8 = unaff_s4;\n  iStack_a4 = unaff_s5;\n  iStack_a0 = unaff_s6;\n  puStack_9c = unaff_s7;\n  iStack_98 = unaff_s8;\n  pcStack_94 = pcVar45;\n  puStack_88 = param_3;\n  (**(code **)(puVar46 + 0x283f8))(&puStack_144,0,0x88);\n  puStack_1e0 = ppuVar24[4];\n  if (puStack_1e0 != (uint *)0x0) {\n    if (((*(byte *)(ppuVar24 + 7) & 0x10) == 0) || (param_4 == puVar38)) {\n      puStack_1e0 = (uint *)0x0;\n    }\n    else if ((char)*(byte *)(ppuVar24 + 7) < '\0') {\n      puStack_1e0 = (uint *)0x0;\n    }\n  }\n  puVar36 = ppuVar24[6];\n  if (puVar36 < local_78) {\n    iStack_180 = ((int)local_78 + -1) - (int)puVar36;\n    local_78 = (uint *)((int)local_78 + ((int)puVar36 - ((int)local_78 + -1)));\n    puVar36 = ppuVar24[2];\n  }\n  else {\n    puVar36 = ppuVar24[2];\n    iStack_180 = 0;\n  }\n  puStack_f0 = puVar43;\n  if ((((puVar36 == (uint *)0x0) || (puVar43[9] == 0)) || (puVar43[10] == 0)) ||\n     ((puVar43[0xb] == 0 || (puVar43[0xc] == 0)))) {\nLAB_0004db54:\n    uStack_1e4 = 1;\n    goto LAB_0004db58;\n  }\n  if (((*(int *)(puVar43[9] + 8) == 0) && (*(int *)(puVar43[10] + 8) == 0)) &&\n     ((*(int *)(puVar43[0xb] + 8) == 0 || (((uint)ppuVar24[7] & 0x1000000) == 0)))) {\n    if (param_4 == (uint *)0x0) {\n      puVar38 = (uint *)0x0;\n    }\n    else {\n      if (puVar38 != (uint *)0x0) goto LAB_0004db54;\n      param_4 = (uint *)0x0;\n    }\n  }\n  if (local_78 == (uint *)0x0) {\n    bVar22 = puVar43[0x13] != 0;\n  }\n  else {\n    bVar22 = true;\n  }\n  uStack_f4 = puVar43[0x17];\n  puVar36 = ppuVar24[5];\n  uVar6 = puVar43[2] + 1;\n  if ((int)(puVar43[2] + 1) < (int)uStack_f4) {\n    uVar6 = uStack_f4;\n  }\n  bStack_fc = (byte)((uint)((int)ppuVar24[3] << 9) >> 0x18);\n  bStack_f9 = 1;\n  if (puVar36 == (uint *)0x0) {\n    bStack_f9 = bStack_fc >> 7;\n  }\n  uVar34 = (int)puStack_88 + 1U;\n  if ((int)uVar6 <= (int)((int)puStack_88 + 1U)) {\n    uVar34 = uVar6;\n  }\n  bStack_fc = bStack_fc >> 7;\n  bStack_fb = (byte)((puVar43[0x16] << 2) >> 0x1f);\n  bStack_fa = (byte)((puVar43[0x16] << 3) >> 0x1f);\n  puStack_114 = puStack_88;\n  puStack_118 = puStack_88;\n  puStack_10c = puStack_88;\n  puStack_110 = puStack_88;\n  puStack_144 = puVar23;\n  puStack_104 = puVar36;\n  uStack_1e4 = FUN_00043278(&puStack_144,uVar34);\n  piVar17 = piStack_e0;\n  if (uStack_1e4 != 0) {\nLAB_0004dbbc:\n    while( true ) {\n      pcVar45 = *(code **)(puVar46 + 0x28520);\nLAB_0004dbc0:\n      (*pcVar45)(piVar17);\n      if (puVar43[0x13] != 0) {\nLAB_0004dc14:\n        FUN_00044db0(&puStack_144);\n        (**(code **)(puVar46 + 0x28520))(iStack_c0);\n        (**(code **)(puVar46 + 0x28520))(iStack_d0);\n      }\nLAB_0004dbd4:\n      FUN_00044d40(&puStack_144);\nLAB_0004db58:\n      if (iStack_bc == *piVar10) break;\n      uStack_1e4 = (**(code **)(puVar46 + 0x284cc))();\n      piVar17 = piStack_e0;\n    }\n    return uStack_1e4;\n  }\n  puStack_100 = puVar43 + 0x18;\n  bStack_f6 = (byte)((puVar43[0x16] << 4) >> 0x1f);\n  if ((bStack_f9 != 0) || (puStack_140 = puVar23, puStack_128 = puStack_88, 1 < (int)puVar43[0x17]))\n  {\n    puStack_128 = (uint *)0x0;\n  }\n  puStack_10c = puVar32;\n  puStack_110 = puVar32;\n  puStack_124 = puStack_128;\n  bStack_f7 = (byte)((uint)((int)ppuVar24[7] << 7) >> 0x1f);\n  uVar6 = puVar43[0x13];\n  iVar29 = uVar6 * 2;\n  puStack_ec = &_gp_1;\n  uStack_e8 = 0xffffffff;\n  if (0 < iVar29) {\n    if (0xccccccc < iVar29) goto LAB_0004dbf8;\n    iVar30 = (**(code **)(puVar46 + 0x28450))(uVar6 * 0x28);\n    iStack_d0 = iVar30;\n    iStack_c0 = (**(code **)(puVar46 + 0x28450))(uVar6 * 8);\n    if ((iVar30 == 0) || (iStack_c0 == 0)) goto LAB_0004dbf8;\n  }\n  iStack_d4 = iVar29;\n  iStack_c4 = iVar29;\n  bVar1 = (uint *)0x1 < local_78;\n  iStack_cc = 1;\n  if ((bVar1) || ((puVar43[0x16] & 0x40000000) != 0)) {\n    if (0x3ffffffe < uStack_120) {\nLAB_0004dbf8:\n      uStack_1e4 = 0xc;\n      (**(code **)(puVar46 + 0x28520))(piStack_e0);\n      if (puVar43[0x13] == 0) goto LAB_0004dbd4;\n      goto LAB_0004dc14;\n    }\n    piStack_e0 = (int *)(**(code **)(puVar46 + 0x28450))((uStack_120 + 1) * 4);\n    piVar17 = piStack_e0;\n    if (piStack_e0 == (int *)0x0) {\nLAB_0004dbb4:\n      uStack_1e4 = 0xc;\n      goto LAB_0004dbbc;\n    }\n  }\n  else {\n    piStack_e0 = (int *)0x0;\n  }\n  uVar34 = puVar43[0x17];\n  iVar29 = -1;\n  puStack_16c = param_4;\n  uStack_108 = 6;\n  uVar6 = (uint)((int)puVar38 < (int)param_4);\n  puVar23 = puVar38;\n  if (uVar6 == 0) {\n    iVar29 = 1;\n    puVar23 = param_4;\n  }\n  if ((int)puVar38 <= (int)param_4) {\n    puVar38 = param_4;\n  }\n  if (puStack_1e0 == (uint *)0x0) goto LAB_0004eabc;\n  uVar11 = 4;\n  if (((uVar34 != 1) && (uVar11 = 0, -1 < (int)ppuVar24[3] << 9)) &&\n     (uVar11 = 4, puVar36 != (uint *)0x0)) {\n    uVar11 = 0;\n  }\n  uVar31 = 2;\n  if (uVar6 != 0) {\n    uVar31 = 0;\n  }\n  uVar31 = puVar36 != (uint *)0x0 | uVar11 | uVar31;\nLAB_0004dab0:\n  if (((int)puVar23 <= (int)param_4) && ((int)param_4 <= (int)puVar38)) {\n    ppuVar12 = &puStack_16c;\n    if (uVar6 != 0) {\n      ppuVar12 = (uint **)0x0;\n    }\n    iVar25 = *(int *)(puVar46 + 0x28244);\n    iVar13 = *(int *)(puVar46 + 0x27edc);\n    iVar26 = *(int *)(puVar46 + 0x2829c);\n    iVar30 = iStack_12c;\n    puVar36 = puStack_88;\n    do {\n      puStack_88 = puVar36;\n      if (uVar31 - 4 < 5) {\n                    /* WARNING: Could not recover jumptable at 0x0004db3c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar6 = (*(code *)(puVar46 + *(int *)(iVar13 + 0x2be4 + (uVar31 - 4) * 4) + 0x2fea4))();\n        return uVar6;\n      }\n      iStack_12c = iVar30;\n      while( true ) {\n        puVar39 = (uint *)((int)param_4 - iVar30);\n        if (puStack_124 <= puVar39) {\n          uStack_1e4 = (*(code *)(iVar25 + 0x7eac))(&puStack_144,param_4,&_gp_1);\n          piVar17 = piStack_e0;\n          if (uStack_1e4 != 0) goto LAB_0004dbbc;\n          puVar39 = (uint *)((int)param_4 - iStack_12c);\n          iVar30 = iStack_12c;\n        }\n        if ((int)param_4 < (int)puVar36) {\n          cVar21 = *(char *)((int)puStack_1e0 + (uint)*(byte *)((int)puStack_140 + (int)puVar39));\n        }\n        else {\n          cVar21 = *(char *)puStack_1e0;\n        }\n        if (cVar21 != '\0') break;\n        param_4 = (uint *)((int)param_4 + iVar29);\n        puStack_16c = param_4;\n        if (((int)param_4 < (int)puVar23) || ((int)puVar38 < (int)param_4)) goto LAB_0004df68;\n      }\n      uVar11 = FUN_00047eac(&puStack_144,param_4,&_gp_1);\n      puVar36 = puStack_f0;\n      uVar6 = uStack_11c;\n      piVar17 = piStack_e0;\n      uStack_1e4 = uVar11;\n      if (uVar11 != 0) goto LAB_0004dbbc;\n      if (((uVar34 == 1) || (puStack_128 == (uint *)0x0)) || (*piStack_13c != -1)) {\n        iStack_cc = 0;\n        uStack_d8 = 0;\n        uVar41 = puStack_f0[9];\n        uStack_1d0 = uStack_11c;\n        iStack_dc = 0;\n        uStack_168 = 0;\n        if ((*(byte *)(uVar41 + 0x34) & 1) != 0) {\n          uVar14 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n          if ((uVar14 & 1) == 0) {\n            if (uVar14 == 0) goto LAB_0004dd24;\n            if ((uVar14 & 6) == 6) {\n              uVar41 = puVar36[0xc];\n            }\n            else if ((uVar14 & 2) == 0) {\n              if ((uVar14 & 4) == 0) goto LAB_0004dd24;\n              uVar41 = FUN_00046cac(&uStack_168,puVar36,*(undefined4 *)(uVar41 + 0x28),uVar14);\n            }\n            else {\n              uVar41 = puVar36[0xb];\n            }\n          }\n          else {\n            uVar41 = puVar36[10];\n          }\n          if (uVar41 == 0) goto code_r0x0004ea7c;\n        }\nLAB_0004dd24:\n        bVar4 = ppuVar12 != (uint **)0x0;\n        if ((piStack_e0 == (int *)0x0) ||\n           (uVar14 = puVar36[0x13], piStack_e0[uVar6] = uVar41, uVar14 == 0)) {\nLAB_0004dd48:\n          if (*(int *)(uVar41 + 0x34) << 4 < 0) {\n            if (((*(byte *)(uVar41 + 0x34) & 1) == 0) ||\n               (iVar30 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar41 + 8),uVar41 + 0xc,uVar6),\n               iVar30 != 0)) {\n              uVar14 = uVar6;\n              bVar5 = bVar22;\n              if (!bVar22) goto LAB_0004e0e4;\n            }\n            else {\n              uVar6 = 0xffffffff;\n              bVar5 = false;\n            }\n          }\n          else {\n            uVar6 = 0xffffffff;\n            bVar5 = false;\n          }\n          iVar30 = *(int *)(puVar46 + 0x28244);\n          iVar15 = *(int *)(puVar46 + 0x2829c);\n          uVar14 = uStack_11c;\n          ppuStack_1dc = ppuVar12;\n          while ((int)uVar14 < (int)puStack_10c) {\n            uVar40 = uVar14 + 1;\n            if ((((int)uVar40 < (int)uStack_120) || ((int)puStack_114 <= (int)uStack_120)) &&\n               (((int)uVar40 < (int)puStack_128 || ((int)puStack_114 <= (int)puStack_128)))) {\n              iVar16 = *(int *)(uVar41 + 0x34);\n              puVar36 = puStack_f0;\n            }\n            else {\n              uStack_168 = (*(code *)(iVar30 + 0x41e4))(&puStack_144,uVar14 + 2);\n              if (uStack_168 != 0) {\n                if (uStack_168 == 0xc) goto LAB_0004dbf8;\n                uVar20 = 0x46c;\n                goto LAB_0004ea9c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x34);\n              uVar14 = uStack_11c;\n              puVar36 = puStack_f0;\n            }\n            puStack_f0 = puVar36;\n            if (iVar16 << 5 < 0) {\n              iVar16 = *(int *)(uVar41 + 8);\n              if (0 < iVar16) {\n                param_4 = (uint *)0x0;\n                iVar18 = *(int *)(puVar46 + 0x28244);\n                pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7ab0);\n                do {\n                  uVar42 = *puVar36;\n                  iVar44 = *(int *)(*(int *)(uVar41 + 0xc) + (int)param_4 * 4);\n                  uVar37 = *(uint *)(uVar42 + iVar44 * 8 + 4);\n                  if ((uVar37 & 0x800) != 0) {\n                    if ((uVar37 & 0xffc000) != 0) {\n                      uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec);\n                      uVar37 = (uVar37 << 8) >> 0x16;\n                      if ((uVar37 & 4) == 0) {\n                        uVar27 = uVar19 & 1;\n                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    iVar16 = (*(code *)(iVar15 + -0x4eb0))\n                                       (uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14);\n                    if (iVar16 != 0) {\n                      if (iStack_cc < iVar16) {\n                        iStack_cc = iVar16;\n                      }\n                      iVar16 = iVar16 + uStack_11c;\n                      uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16);\n                      uVar14 = uStack_164;\n                      if (uStack_164 != 0) goto joined_r0x0004e770;\n                      piVar33 = piStack_e0 + iVar16;\n                      iVar28 = *piVar33;\n                      piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc);\n                      if (iVar28 == 0) {\n                        piStack_160 = (int *)*piVar17;\n                        piStack_15c = (int *)piVar17[1];\n                        iStack_158 = piVar17[2];\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        *piVar33 = iVar44;\n                      }\n                      else {\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }\n                      if ((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar16 = *(int *)(uVar41 + 8);\n                    uVar14 = uStack_11c;\n                  }\nLAB_0004e670:\n                  param_4 = (uint *)((int)param_4 + 1);\n                } while ((int)param_4 < iVar16);\n              }\n              uStack_168 = 0;\n            }\n            uStack_11c = uVar14 + 1;\n            uVar14 = (uint)*(byte *)((int)puStack_140 + uVar14);\n            do {\n              if (*(int *)(uVar41 + 0x2c) != 0) {\n                uVar37 = *(uint *)(*(int *)(uVar41 + 0x2c) + uVar14 * 4);\nLAB_0004ddf0:\n                if (piStack_e0 != (int *)0x0) goto LAB_0004ddfc;\n                goto LAB_0004de1c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x30);\n              if (iVar16 != 0) {\n                uVar37 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n                if ((uVar37 & 1) == 0) {\n                  uVar37 = *(uint *)(iVar16 + uVar14 * 4);\n                }\n                else {\n                  uVar37 = *(uint *)(iVar16 + (uVar14 + 0x100) * 4);\n                }\n                goto LAB_0004ddf0;\n              }\n              iVar16 = (*(code *)(iVar26 + -0x7510))(puStack_f0,uVar41);\n            } while (iVar16 != 0);\n            uStack_168 = 0xc;\n            uVar14 = uStack_168;\njoined_r0x0004e770:\n            uStack_168 = uVar14;\n            if (piStack_e0 == (int *)0x0) {\n              piVar17 = (int *)0x0;\n              goto LAB_0004dbb4;\n            }\n            uVar37 = 0;\nLAB_0004ddfc:\n            uVar37 = FUN_0004d0a8(&uStack_168,&puStack_144,uVar37);\nLAB_0004de1c:\n            uVar14 = uStack_11c;\n            if (uVar37 == 0) {\n              piVar17 = piStack_e0;\n              if (uStack_168 != 0) goto LAB_0004dbb4;\n              if ((piStack_e0 == (int *)0x0) || ((bVar5 && (!bVar22)))) break;\n              param_4 = &uStack_168;\n              do {\n                bVar2 = false;\n                piVar17 = piStack_e0 + uStack_11c;\n                uVar14 = uStack_11c;\n                do {\n                  uVar37 = uVar14 + 1;\n                  piVar17 = piVar17 + 1;\n                  if (iStack_dc < (int)uVar37) {\n                    if (bVar2) {\n                      uStack_11c = uVar14;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar2 = true;\n                  uVar14 = uVar37;\n                } while (*piVar17 == 0);\n                uStack_11c = uVar37;\n                uVar37 = FUN_0004d0a8(param_4,&puStack_144,0);\n                uVar14 = uStack_11c;\n                if (uStack_168 != 0) {\n                  if (uVar37 == 0) goto LAB_0004e0cc;\n                  break;\n                }\n              } while (uVar37 == 0);\n            }\n            uVar42 = uStack_1d0;\n            if ((bVar4) && (uVar42 = uVar40, uVar41 != uVar37)) {\n              bVar4 = false;\n              uVar42 = uStack_1d0;\n            }\n            uStack_1d0 = uVar42;\n            uVar41 = uVar37;\n            uStack_11c = uVar14;\n            if (((*(byte *)(uVar37 + 0x34) & 8) != 0) &&\n               (((*(byte *)(uVar37 + 0x34) & 1) == 0 ||\n                (iVar16 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar37 + 8),uVar37 + 0xc,uVar14)\n                , iVar16 != 0)))) {\n              if (!bVar22) goto LAB_0004e0e4;\n              ppuStack_1dc = (uint **)0x0;\n              uVar6 = uVar14;\n              bVar5 = bVar22;\n            }\n          }\nLAB_0004e0cc:\n          uVar14 = uVar6;\n          if (ppuStack_1dc != (uint **)0x0) {\n            *ppuStack_1dc = (uint *)((int)*ppuStack_1dc + uStack_1d0);\n          }\n        }\n        else {\n          uVar14 = FUN_00047924(&puStack_144,uVar41 + 8,uVar41 + 0xc,0);\n          uStack_168 = uVar14;\n          if (uVar14 == 0) {\n            if ((*(byte *)(uVar41 + 0x34) & 2) == 0) {\n              bVar4 = false;\n            }\n            else {\n              uVar14 = FUN_0004c6a8(&puStack_144,uVar41 + 8,uVar41 + 0xc);\n              uStack_168 = uVar14;\n              if (uVar14 != 0) goto LAB_0004e0e4;\n              bVar4 = false;\n            }\n            goto LAB_0004dd48;\n          }\n        }\nLAB_0004e0e4:\n        piVar17 = piStack_e0;\n        if (uVar14 != 0xffffffff) {\n          if (uVar14 == 0xfffffffe) goto LAB_0004dbf8;\n          uStack_e8 = uVar14;\n          if (((uint)ppuVar24[7] & 0x8000000) == 0) {\n            if (!bVar1) {\n              uVar6 = puVar43[0x13];\n              goto joined_r0x0004e94c;\n            }\n            pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n            iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                     piStack_e0[uVar14] + 0xc,uVar14);\n            if ((*(char *)(puVar43 + 0x16) < '\0') || (puVar43[0x13] != 0)) goto LAB_0004e170;\n          }\n          else {\n            uVar6 = puVar43[0x13];\njoined_r0x0004e94c:\n            if (uVar6 != 0) {\n              pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n              iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                       piStack_e0[uVar14] + 0xc,uVar14);\nLAB_0004e170:\n              iVar30 = iStack_e4;\n              puVar36 = puStack_f0;\n              if (uVar14 < 0x3fffffff) {\n                uStack_1f0 = uVar14 + 1;\n                piVar17 = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                if (piVar17 == (int *)0x0) goto LAB_0004dbf8;\n                if (puVar36[0x13] == 0) {\n                  piStack_15c = (int *)0x0;\n                  uStack_150 = 0;\n                  uStack_14c = 0;\n                  uStack_148 = 0;\n                  piStack_160 = piVar17;\n                  iStack_158 = iVar30;\n                  uStack_154 = uVar14;\n                  uStack_1e4 = FUN_0004d30c(&puStack_144,&piStack_160);\n                  (**(code **)(puVar46 + 0x28520))(uStack_148);\n                  if (uStack_1e4 == 0) {\n                    if (*piVar17 == 0) {\n                      (**(code **)(puVar46 + 0x28520))(piVar17);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar46 + 0x28520))(piStack_e0);\n                    uStack_e8 = uVar14;\n                    iStack_e4 = iVar30;\n                    piStack_e0 = piVar17;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  piStack_1ec = (int *)0x0;\n                }\n                else {\n                  piStack_1ec = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                  if (piStack_1ec == (int *)0x0) {\n                    (**(code **)(puVar46 + 0x28520))(piVar17);\n                    uStack_1e4 = 0xc;\n                    piVar17 = piStack_e0;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar15 = *(int *)(puVar46 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);\n                    uStack_150 = 0;\n                    uStack_14c = 0;\n                    uStack_148 = 0;\n                    piStack_160 = piVar17;\n                    piStack_15c = piStack_1ec;\n                    iStack_158 = iVar30;\n                    uStack_154 = uVar14;\n                    uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);\n                    (**(code **)(puVar46 + 0x28520))(uStack_148);\n                    if (uStack_1e4 != 0) break;\n                    if ((*piVar17 != 0) || (*piStack_1ec != 0)) {\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    piVar33 = piStack_e0 + (uStack_1f0 - 1);\n                    uStack_1f0 = uVar14;\n                    while( true ) {\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }\n                    iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       );\n                  }\n                }\n                (**(code **)(puVar46 + 0x28520))(piVar17);\n                (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                piVar17 = piStack_e0;\n                if (uStack_1e4 == 1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }\n              uStack_1e4 = 0xc;\n              goto LAB_0004dbbc;\n            }\n          }\nLAB_0004e7e0:\n          piVar17 = piStack_e0;\n          uStack_1e4 = uVar11;\n          if (local_78 == (uint *)0x0) goto LAB_0004dbbc;\n          puVar23 = ppuVar24[7];\n          if (bVar1) {\n            piVar17 = piStack_74 + 2;\n            do {\n              piVar17[1] = -1;\n              piVar33 = piVar17 + 2;\n              *piVar17 = -1;\n              piVar17 = piVar33;\n            } while (piStack_74 + (int)local_78 * 2 != piVar33);\n            *piStack_74 = 0;\n            piStack_74[1] = uStack_e8;\n            if (((uint)puVar23 & 0x8000000) == 0) {\n              if (*(char *)(puVar43 + 0x16) < '\0') {\n                bVar22 = 0 < (int)puVar43[0x13];\n              }\n              else {\n                bVar22 = false;\n              }\n              uStack_1e4 = FUN_0004bc00(ppuVar24,&puStack_144,local_78,piStack_74,bVar22);\n              piVar17 = piStack_e0;\n              if (uStack_1e4 != 0) goto LAB_0004dbbc;\n              puVar23 = (uint *)*piStack_74;\n            }\n            else {\nLAB_0004e838:\n              puVar23 = (uint *)0x0;\n            }\n            puVar36 = (uint *)0x0;\n            piVar17 = piStack_74;\n            while( true ) {\n              if (puVar23 != (uint *)0xffffffff) {\n                puVar32 = (uint *)piVar17[1];\n                puVar39 = puVar23;\n                puVar38 = puVar32;\n                if (cStack_f8 != '\0') {\n                  puVar39 = puStack_124;\n                  if (puStack_128 != puVar23) {\n                    puVar39 = *(uint **)(iStack_138 + (int)puVar23 * 4);\n                  }\n                  *piVar17 = (int)puVar39;\n                  puVar38 = puStack_124;\n                  if (puStack_128 != puVar32) {\n                    puVar38 = *(uint **)(iStack_138 + (int)puVar32 * 4);\n                  }\n                }\n                *piVar17 = (int)puStack_16c + (int)puVar39;\n                piVar17[1] = (int)puStack_16c + (int)puVar38;\n              }\n              puVar36 = (uint *)((int)puVar36 + 1);\n              piVar17 = piVar17 + 2;\n              if (puVar36 == local_78) break;\n              puVar23 = (uint *)*piVar17;\n            }\n            if (0 < iStack_180) {\n              piVar17 = piStack_74 + (int)local_78 * 2;\n              do {\n                *piVar17 = -1;\n                piVar33 = piVar17 + 2;\n                piVar17[1] = -1;\n                piVar17 = piVar33;\n              } while (piStack_74 + (iStack_180 + (int)local_78) * 2 != piVar33);\n            }\n            piVar33 = (int *)puVar43[0x21];\n            piVar17 = piStack_e0;\n            uStack_1e4 = uVar11;\n            if (piVar33 != (int *)0x0) {\n              iVar29 = 0;\n              piVar3 = piStack_74;\n              do {\n                pcVar45 = *(code **)(puVar46 + 0x28520);\n                if (iVar29 == (int)local_78 + -1) goto LAB_0004dbc0;\n                if (*piVar33 != iVar29) {\n                  piVar3[2] = piStack_74[(*piVar33 + 1) * 2];\n                  piVar3[3] = piStack_74[(*piVar33 + 1) * 2 + 1];\n                }\n                iVar29 = iVar29 + 1;\n                piVar33 = piVar33 + 1;\n                piVar3 = piVar3 + 2;\n              } while( true );\n            }\n            goto LAB_0004dbbc;\n          }\n          *piStack_74 = 0;\n          piStack_74[1] = uStack_e8;\n          goto LAB_0004e838;\n        }\nLAB_0004e2d4:\n        FUN_00044db0(&puStack_144);\n        param_4 = puStack_16c;\n      }\n      param_4 = (uint *)((int)param_4 + iVar29);\n      puStack_16c = param_4;\n      if (((int)param_4 < (int)puVar23) ||\n         (iVar30 = iStack_12c, puVar36 = puStack_88, (int)puVar38 < (int)param_4)) break;\n    } while( true );\n  }\nLAB_0004df68:\n  uStack_1e4 = 1;\n  piVar17 = piStack_e0;\n  goto LAB_0004dbbc;\ncode_r0x0004ea7c:\n  uStack_1e4 = uStack_168;\n  piVar17 = piStack_e0;\n  if (uStack_168 == 0xc) goto LAB_0004dbbc;\n  uVar20 = 0x435;\nLAB_0004ea9c:\n  (**(code **)(puVar46 + 0x282f4))\n            (*(int *)(puVar46 + 0x27edc) + 0x2b30,*(int *)(puVar46 + 0x27edc) + 0x2ac0,uVar20,\n             *(int *)(puVar46 + 0x27edc) + 0x3030);\n  uVar6 = extraout_v1;\n  ppuVar24 = &puStack_144;\nLAB_0004eabc:\n  uVar31 = 8;\n  goto LAB_0004dab0;\n}" type_identifier (function_declarator "FUN_0004d30c(uint *param_1,uint *param_2,uint *param_3,uint *param_4)" identifier (parameter_list "(uint *param_1,uint *param_2,uint *param_3,uint *param_4)" ( (parameter_declaration "uint *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "uint *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "uint *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) ))) (compound_statement "{\n  bool bVar1;\n  bool bVar2;\n  int *piVar3;\n  bool bVar4;\n  bool bVar5;\n  uint uVar6;\n  code *pcVar7;\n  code *pcVar8;\n  code *pcVar9;\n  int *piVar10;\n  uint uVar11;\n  uint **ppuVar12;\n  int iVar13;\n  uint uVar14;\n  int iVar15;\n  int iVar16;\n  int *piVar17;\n  char cVar21;\n  int iVar18;\n  uint uVar19;\n  undefined4 uVar20;\n  bool bVar22;\n  uint *puVar23;\n  uint extraout_v1;\n  uint **ppuVar24;\n  int iVar25;\n  int iVar26;\n  uint uVar27;\n  int iVar28;\n  int iVar29;\n  int iVar30;\n  uint uVar31;\n  uint *puVar32;\n  int *piVar33;\n  uint uVar34;\n  undefined4 *puVar35;\n  uint *puVar36;\n  uint uVar37;\n  uint *puVar38;\n  uint *puVar39;\n  uint uVar40;\n  int *unaff_s4;\n  uint uVar41;\n  int unaff_s5;\n  uint uVar42;\n  int unaff_s6;\n  uint *puVar43;\n  int iVar44;\n  uint *unaff_s7;\n  code *pcVar45;\n  undefined *puVar46;\n  int unaff_s8;\n  uint uStack_1f0;\n  int *piStack_1ec;\n  uint uStack_1e4;\n  uint *puStack_1e0;\n  uint **ppuStack_1dc;\n  uint uStack_1d0;\n  int iStack_180;\n  uint *puStack_16c;\n  uint uStack_168;\n  uint uStack_164;\n  int *piStack_160;\n  int *piStack_15c;\n  int iStack_158;\n  uint uStack_154;\n  undefined4 uStack_150;\n  undefined4 uStack_14c;\n  undefined4 uStack_148;\n  uint *puStack_144;\n  uint *puStack_140;\n  int *piStack_13c;\n  int iStack_138;\n  int iStack_12c;\n  uint *puStack_128;\n  uint *puStack_124;\n  uint uStack_120;\n  uint uStack_11c;\n  uint *puStack_118;\n  uint *puStack_114;\n  uint *puStack_110;\n  uint *puStack_10c;\n  undefined4 uStack_108;\n  uint *puStack_104;\n  uint *puStack_100;\n  byte bStack_fc;\n  byte bStack_fb;\n  byte bStack_fa;\n  byte bStack_f9;\n  char cStack_f8;\n  byte bStack_f7;\n  byte bStack_f6;\n  uint uStack_f4;\n  uint *puStack_f0;\n  undefined1 *puStack_ec;\n  uint uStack_e8;\n  int iStack_e4;\n  int *piStack_e0;\n  int iStack_dc;\n  undefined4 uStack_d8;\n  int iStack_d4;\n  int iStack_d0;\n  int iStack_cc;\n  int iStack_c4;\n  int iStack_c0;\n  int iStack_bc;\n  uint *puStack_b8;\n  uint *puStack_b4;\n  uint *puStack_b0;\n  uint *puStack_ac;\n  int *piStack_a8;\n  int iStack_a4;\n  int iStack_a0;\n  uint *puStack_9c;\n  int iStack_98;\n  code *pcStack_94;\n  uint *puStack_88;\n  uint *local_80;\n  uint *local_7c;\n  uint *local_78;\n  int *piStack_74;\n  int local_64;\n  uint local_38;\n  undefined4 local_34;\n  undefined4 *local_30;\n  uint **local_2c;\n  \n  puVar46 = PTR___stack_chk_guard_00075be8;\n  local_38 = 1;\n  local_34 = 1;\n  local_2c = *(uint ***)PTR___stack_chk_guard_00075be8;\n  puVar36 = (uint *)param_2[3];\n  puVar39 = (uint *)param_2[2];\n  puVar23 = param_2;\n  local_30 = (undefined4 *)(*(code *)PTR_malloc_00075b2c)(4);\n  if (local_30 == (undefined4 *)0x0) {\n    uVar6 = 0xc;\n  }\n  else {\n    *local_30 = puVar39;\n    pcVar45 = (code *)(PTR_DAT_00075978 + -0x1248);\n    puVar23 = param_2;\n    param_3 = puVar36;\n    param_4 = &local_38;\n    uVar6 = FUN_0004edb8(param_1);\n    if (uVar6 == 0) {\n      local_64 = 0;\n      if (0 < (int)puVar36) {\n        pcVar7 = (code *)(PTR_LAB_00075920 + 0x5610);\n        pcVar8 = (code *)(PTR_LAB_00075920 + 0x33f8);\n        pcVar9 = (code *)(PTR_LAB_00075920 + 0x5230);\n        do {\n          unaff_s7 = (uint *)((int)puVar36 * 4);\n          if (*(int *)(*param_2 + (int)unaff_s7) == 0) {\n            local_64 = local_64 + 1;\n            if ((int)param_1[0x1e] < local_64) goto LAB_0004d6a0;\n          }\n          else {\n            local_64 = 0;\n            if ((int)param_1[0x1e] < 0) {\nLAB_0004d6a0:\n              puVar23 = (uint *)0x0;\n              param_3 = unaff_s7;\n              (*(code *)PTR_memset_00075ad4)();\n              (*(code *)PTR_free_00075bfc)(local_30);\n              uVar6 = 0;\n              goto LAB_0004d644;\n            }\n          }\n          local_34 = 0;\n          unaff_s6 = *(int *)((int)unaff_s7 + (param_1[0x19] - 4));\n          puVar36 = (uint *)((int)puVar36 + -1);\n          if ((unaff_s6 != 0) && (unaff_s4 = (int *)param_1[0x15], 0 < *(int *)(unaff_s6 + 0x14))) {\n            unaff_s5 = 0;\n            do {\n              puVar39 = *(uint **)(*(int *)(unaff_s6 + 0x18) + unaff_s5 * 4);\n              unaff_s8 = (int)puVar39 * 8;\n              iVar29 = *unaff_s4 + unaff_s8;\n              if ((*(uint *)(iVar29 + 4) & 0x800) == 0) {\nLAB_0004d464:\n                iVar29 = FUN_00047bf8(param_1,iVar29,puVar36);\n                if (iVar29 != 0) {\n                  iVar29 = *(int *)(*param_2 + (int)unaff_s7);\n                  if (iVar29 != 0) {\n                    param_3 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc);\n                    iVar29 = 1;\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                }\n              }\n              else {\n                puVar35 = (undefined4 *)param_1[0x15];\n                uVar6 = param_2[3];\n                param_3 = puVar39;\n                param_4 = param_1;\n                local_80 = puVar36;\n                iVar29 = FUN_0004b150(*puVar35,puVar35 + 0x20);\n                if (iVar29 < 1) {\n                  if (iVar29 == 0) {\n                    iVar29 = *unaff_s4;\n                    goto LAB_0004d460;\n                  }\n                }\n                else if ((int)puVar36 + iVar29 <= (int)uVar6) {\n                  iVar30 = *(int *)(*param_2 + ((int)puVar36 + iVar29) * 4);\n                  if (iVar30 != 0) {\n                    param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                  iVar29 = *unaff_s4;\nLAB_0004d460:\n                  iVar29 = iVar29 + unaff_s8;\n                  goto LAB_0004d464;\n                }\nLAB_0004d4b4:\n                if (param_2[5] != 0) {\n                  local_80 = (uint *)((int)puVar36 + iVar29);\n                  param_3 = param_2 + 6;\n                  param_4 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                  local_7c = puVar39;\n                  local_78 = puVar36;\n                  iVar29 = (*pcVar7)(param_1,param_2 + 5);\n                  if (iVar29 != 0) goto LAB_0004d510;\n                }\n                puVar23 = puVar39;\n                iVar29 = (*pcVar8)(&local_38);\n                if (iVar29 == 0) {\n                  uVar6 = 0xc;\n                  goto LAB_0004d62c;\n                }\n              }\nLAB_0004d510:\n              unaff_s5 = unaff_s5 + 1;\n              param_4 = &local_38;\n            } while (unaff_s5 < *(int *)(unaff_s6 + 0x14));\n          }\n          puVar23 = param_2;\n          param_3 = puVar36;\n          param_4 = &local_38;\n          uVar6 = (*pcVar45)(param_1);\n          if (uVar6 != 0) goto LAB_0004d62c;\n        } while (puVar36 != (uint *)0x0);\n      }\n      uVar6 = 0;\n    }\nLAB_0004d62c:\n    (*(code *)PTR_free_00075bfc)(local_30);\n  }\nLAB_0004d644:\n  if (local_2c == *(uint ***)puVar46) {\n    return uVar6;\n  }\n  pcVar45 = FUN_0004d6dc;\n  ppuVar24 = local_2c;\n  puVar46 = PTR___stack_chk_fail_00075ba8;\n  (*(code *)PTR___stack_chk_fail_00075ba8)();\n  puVar32 = local_7c;\n  puVar38 = local_80;\n  piVar10 = *(int **)(puVar46 + 0x2850c);\n  iStack_bc = *piVar10;\n  puVar43 = *ppuVar24;\n  puStack_b8 = puVar36;\n  puStack_b4 = param_2;\n  puStack_b0 = param_1;\n  puStack_ac = puVar39;\n  piStack_a8 = unaff_s4;\n  iStack_a4 = unaff_s5;\n  iStack_a0 = unaff_s6;\n  puStack_9c = unaff_s7;\n  iStack_98 = unaff_s8;\n  pcStack_94 = pcVar45;\n  puStack_88 = param_3;\n  (**(code **)(puVar46 + 0x283f8))(&puStack_144,0,0x88);\n  puStack_1e0 = ppuVar24[4];\n  if (puStack_1e0 != (uint *)0x0) {\n    if (((*(byte *)(ppuVar24 + 7) & 0x10) == 0) || (param_4 == puVar38)) {\n      puStack_1e0 = (uint *)0x0;\n    }\n    else if ((char)*(byte *)(ppuVar24 + 7) < '\0') {\n      puStack_1e0 = (uint *)0x0;\n    }\n  }\n  puVar36 = ppuVar24[6];\n  if (puVar36 < local_78) {\n    iStack_180 = ((int)local_78 + -1) - (int)puVar36;\n    local_78 = (uint *)((int)local_78 + ((int)puVar36 - ((int)local_78 + -1)));\n    puVar36 = ppuVar24[2];\n  }\n  else {\n    puVar36 = ppuVar24[2];\n    iStack_180 = 0;\n  }\n  puStack_f0 = puVar43;\n  if ((((puVar36 == (uint *)0x0) || (puVar43[9] == 0)) || (puVar43[10] == 0)) ||\n     ((puVar43[0xb] == 0 || (puVar43[0xc] == 0)))) {\nLAB_0004db54:\n    uStack_1e4 = 1;\n    goto LAB_0004db58;\n  }\n  if (((*(int *)(puVar43[9] + 8) == 0) && (*(int *)(puVar43[10] + 8) == 0)) &&\n     ((*(int *)(puVar43[0xb] + 8) == 0 || (((uint)ppuVar24[7] & 0x1000000) == 0)))) {\n    if (param_4 == (uint *)0x0) {\n      puVar38 = (uint *)0x0;\n    }\n    else {\n      if (puVar38 != (uint *)0x0) goto LAB_0004db54;\n      param_4 = (uint *)0x0;\n    }\n  }\n  if (local_78 == (uint *)0x0) {\n    bVar22 = puVar43[0x13] != 0;\n  }\n  else {\n    bVar22 = true;\n  }\n  uStack_f4 = puVar43[0x17];\n  puVar36 = ppuVar24[5];\n  uVar6 = puVar43[2] + 1;\n  if ((int)(puVar43[2] + 1) < (int)uStack_f4) {\n    uVar6 = uStack_f4;\n  }\n  bStack_fc = (byte)((uint)((int)ppuVar24[3] << 9) >> 0x18);\n  bStack_f9 = 1;\n  if (puVar36 == (uint *)0x0) {\n    bStack_f9 = bStack_fc >> 7;\n  }\n  uVar34 = (int)puStack_88 + 1U;\n  if ((int)uVar6 <= (int)((int)puStack_88 + 1U)) {\n    uVar34 = uVar6;\n  }\n  bStack_fc = bStack_fc >> 7;\n  bStack_fb = (byte)((puVar43[0x16] << 2) >> 0x1f);\n  bStack_fa = (byte)((puVar43[0x16] << 3) >> 0x1f);\n  puStack_114 = puStack_88;\n  puStack_118 = puStack_88;\n  puStack_10c = puStack_88;\n  puStack_110 = puStack_88;\n  puStack_144 = puVar23;\n  puStack_104 = puVar36;\n  uStack_1e4 = FUN_00043278(&puStack_144,uVar34);\n  piVar17 = piStack_e0;\n  if (uStack_1e4 != 0) {\nLAB_0004dbbc:\n    while( true ) {\n      pcVar45 = *(code **)(puVar46 + 0x28520);\nLAB_0004dbc0:\n      (*pcVar45)(piVar17);\n      if (puVar43[0x13] != 0) {\nLAB_0004dc14:\n        FUN_00044db0(&puStack_144);\n        (**(code **)(puVar46 + 0x28520))(iStack_c0);\n        (**(code **)(puVar46 + 0x28520))(iStack_d0);\n      }\nLAB_0004dbd4:\n      FUN_00044d40(&puStack_144);\nLAB_0004db58:\n      if (iStack_bc == *piVar10) break;\n      uStack_1e4 = (**(code **)(puVar46 + 0x284cc))();\n      piVar17 = piStack_e0;\n    }\n    return uStack_1e4;\n  }\n  puStack_100 = puVar43 + 0x18;\n  bStack_f6 = (byte)((puVar43[0x16] << 4) >> 0x1f);\n  if ((bStack_f9 != 0) || (puStack_140 = puVar23, puStack_128 = puStack_88, 1 < (int)puVar43[0x17]))\n  {\n    puStack_128 = (uint *)0x0;\n  }\n  puStack_10c = puVar32;\n  puStack_110 = puVar32;\n  puStack_124 = puStack_128;\n  bStack_f7 = (byte)((uint)((int)ppuVar24[7] << 7) >> 0x1f);\n  uVar6 = puVar43[0x13];\n  iVar29 = uVar6 * 2;\n  puStack_ec = &_gp_1;\n  uStack_e8 = 0xffffffff;\n  if (0 < iVar29) {\n    if (0xccccccc < iVar29) goto LAB_0004dbf8;\n    iVar30 = (**(code **)(puVar46 + 0x28450))(uVar6 * 0x28);\n    iStack_d0 = iVar30;\n    iStack_c0 = (**(code **)(puVar46 + 0x28450))(uVar6 * 8);\n    if ((iVar30 == 0) || (iStack_c0 == 0)) goto LAB_0004dbf8;\n  }\n  iStack_d4 = iVar29;\n  iStack_c4 = iVar29;\n  bVar1 = (uint *)0x1 < local_78;\n  iStack_cc = 1;\n  if ((bVar1) || ((puVar43[0x16] & 0x40000000) != 0)) {\n    if (0x3ffffffe < uStack_120) {\nLAB_0004dbf8:\n      uStack_1e4 = 0xc;\n      (**(code **)(puVar46 + 0x28520))(piStack_e0);\n      if (puVar43[0x13] == 0) goto LAB_0004dbd4;\n      goto LAB_0004dc14;\n    }\n    piStack_e0 = (int *)(**(code **)(puVar46 + 0x28450))((uStack_120 + 1) * 4);\n    piVar17 = piStack_e0;\n    if (piStack_e0 == (int *)0x0) {\nLAB_0004dbb4:\n      uStack_1e4 = 0xc;\n      goto LAB_0004dbbc;\n    }\n  }\n  else {\n    piStack_e0 = (int *)0x0;\n  }\n  uVar34 = puVar43[0x17];\n  iVar29 = -1;\n  puStack_16c = param_4;\n  uStack_108 = 6;\n  uVar6 = (uint)((int)puVar38 < (int)param_4);\n  puVar23 = puVar38;\n  if (uVar6 == 0) {\n    iVar29 = 1;\n    puVar23 = param_4;\n  }\n  if ((int)puVar38 <= (int)param_4) {\n    puVar38 = param_4;\n  }\n  if (puStack_1e0 == (uint *)0x0) goto LAB_0004eabc;\n  uVar11 = 4;\n  if (((uVar34 != 1) && (uVar11 = 0, -1 < (int)ppuVar24[3] << 9)) &&\n     (uVar11 = 4, puVar36 != (uint *)0x0)) {\n    uVar11 = 0;\n  }\n  uVar31 = 2;\n  if (uVar6 != 0) {\n    uVar31 = 0;\n  }\n  uVar31 = puVar36 != (uint *)0x0 | uVar11 | uVar31;\nLAB_0004dab0:\n  if (((int)puVar23 <= (int)param_4) && ((int)param_4 <= (int)puVar38)) {\n    ppuVar12 = &puStack_16c;\n    if (uVar6 != 0) {\n      ppuVar12 = (uint **)0x0;\n    }\n    iVar25 = *(int *)(puVar46 + 0x28244);\n    iVar13 = *(int *)(puVar46 + 0x27edc);\n    iVar26 = *(int *)(puVar46 + 0x2829c);\n    iVar30 = iStack_12c;\n    puVar36 = puStack_88;\n    do {\n      puStack_88 = puVar36;\n      if (uVar31 - 4 < 5) {\n                    /* WARNING: Could not recover jumptable at 0x0004db3c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar6 = (*(code *)(puVar46 + *(int *)(iVar13 + 0x2be4 + (uVar31 - 4) * 4) + 0x2fea4))();\n        return uVar6;\n      }\n      iStack_12c = iVar30;\n      while( true ) {\n        puVar39 = (uint *)((int)param_4 - iVar30);\n        if (puStack_124 <= puVar39) {\n          uStack_1e4 = (*(code *)(iVar25 + 0x7eac))(&puStack_144,param_4,&_gp_1);\n          piVar17 = piStack_e0;\n          if (uStack_1e4 != 0) goto LAB_0004dbbc;\n          puVar39 = (uint *)((int)param_4 - iStack_12c);\n          iVar30 = iStack_12c;\n        }\n        if ((int)param_4 < (int)puVar36) {\n          cVar21 = *(char *)((int)puStack_1e0 + (uint)*(byte *)((int)puStack_140 + (int)puVar39));\n        }\n        else {\n          cVar21 = *(char *)puStack_1e0;\n        }\n        if (cVar21 != '\0') break;\n        param_4 = (uint *)((int)param_4 + iVar29);\n        puStack_16c = param_4;\n        if (((int)param_4 < (int)puVar23) || ((int)puVar38 < (int)param_4)) goto LAB_0004df68;\n      }\n      uVar11 = FUN_00047eac(&puStack_144,param_4,&_gp_1);\n      puVar36 = puStack_f0;\n      uVar6 = uStack_11c;\n      piVar17 = piStack_e0;\n      uStack_1e4 = uVar11;\n      if (uVar11 != 0) goto LAB_0004dbbc;\n      if (((uVar34 == 1) || (puStack_128 == (uint *)0x0)) || (*piStack_13c != -1)) {\n        iStack_cc = 0;\n        uStack_d8 = 0;\n        uVar41 = puStack_f0[9];\n        uStack_1d0 = uStack_11c;\n        iStack_dc = 0;\n        uStack_168 = 0;\n        if ((*(byte *)(uVar41 + 0x34) & 1) != 0) {\n          uVar14 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n          if ((uVar14 & 1) == 0) {\n            if (uVar14 == 0) goto LAB_0004dd24;\n            if ((uVar14 & 6) == 6) {\n              uVar41 = puVar36[0xc];\n            }\n            else if ((uVar14 & 2) == 0) {\n              if ((uVar14 & 4) == 0) goto LAB_0004dd24;\n              uVar41 = FUN_00046cac(&uStack_168,puVar36,*(undefined4 *)(uVar41 + 0x28),uVar14);\n            }\n            else {\n              uVar41 = puVar36[0xb];\n            }\n          }\n          else {\n            uVar41 = puVar36[10];\n          }\n          if (uVar41 == 0) goto code_r0x0004ea7c;\n        }\nLAB_0004dd24:\n        bVar4 = ppuVar12 != (uint **)0x0;\n        if ((piStack_e0 == (int *)0x0) ||\n           (uVar14 = puVar36[0x13], piStack_e0[uVar6] = uVar41, uVar14 == 0)) {\nLAB_0004dd48:\n          if (*(int *)(uVar41 + 0x34) << 4 < 0) {\n            if (((*(byte *)(uVar41 + 0x34) & 1) == 0) ||\n               (iVar30 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar41 + 8),uVar41 + 0xc,uVar6),\n               iVar30 != 0)) {\n              uVar14 = uVar6;\n              bVar5 = bVar22;\n              if (!bVar22) goto LAB_0004e0e4;\n            }\n            else {\n              uVar6 = 0xffffffff;\n              bVar5 = false;\n            }\n          }\n          else {\n            uVar6 = 0xffffffff;\n            bVar5 = false;\n          }\n          iVar30 = *(int *)(puVar46 + 0x28244);\n          iVar15 = *(int *)(puVar46 + 0x2829c);\n          uVar14 = uStack_11c;\n          ppuStack_1dc = ppuVar12;\n          while ((int)uVar14 < (int)puStack_10c) {\n            uVar40 = uVar14 + 1;\n            if ((((int)uVar40 < (int)uStack_120) || ((int)puStack_114 <= (int)uStack_120)) &&\n               (((int)uVar40 < (int)puStack_128 || ((int)puStack_114 <= (int)puStack_128)))) {\n              iVar16 = *(int *)(uVar41 + 0x34);\n              puVar36 = puStack_f0;\n            }\n            else {\n              uStack_168 = (*(code *)(iVar30 + 0x41e4))(&puStack_144,uVar14 + 2);\n              if (uStack_168 != 0) {\n                if (uStack_168 == 0xc) goto LAB_0004dbf8;\n                uVar20 = 0x46c;\n                goto LAB_0004ea9c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x34);\n              uVar14 = uStack_11c;\n              puVar36 = puStack_f0;\n            }\n            puStack_f0 = puVar36;\n            if (iVar16 << 5 < 0) {\n              iVar16 = *(int *)(uVar41 + 8);\n              if (0 < iVar16) {\n                param_4 = (uint *)0x0;\n                iVar18 = *(int *)(puVar46 + 0x28244);\n                pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7ab0);\n                do {\n                  uVar42 = *puVar36;\n                  iVar44 = *(int *)(*(int *)(uVar41 + 0xc) + (int)param_4 * 4);\n                  uVar37 = *(uint *)(uVar42 + iVar44 * 8 + 4);\n                  if ((uVar37 & 0x800) != 0) {\n                    if ((uVar37 & 0xffc000) != 0) {\n                      uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec);\n                      uVar37 = (uVar37 << 8) >> 0x16;\n                      if ((uVar37 & 4) == 0) {\n                        uVar27 = uVar19 & 1;\n                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    iVar16 = (*(code *)(iVar15 + -0x4eb0))\n                                       (uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14);\n                    if (iVar16 != 0) {\n                      if (iStack_cc < iVar16) {\n                        iStack_cc = iVar16;\n                      }\n                      iVar16 = iVar16 + uStack_11c;\n                      uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16);\n                      uVar14 = uStack_164;\n                      if (uStack_164 != 0) goto joined_r0x0004e770;\n                      piVar33 = piStack_e0 + iVar16;\n                      iVar28 = *piVar33;\n                      piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc);\n                      if (iVar28 == 0) {\n                        piStack_160 = (int *)*piVar17;\n                        piStack_15c = (int *)piVar17[1];\n                        iStack_158 = piVar17[2];\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        *piVar33 = iVar44;\n                      }\n                      else {\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }\n                      if ((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar16 = *(int *)(uVar41 + 8);\n                    uVar14 = uStack_11c;\n                  }\nLAB_0004e670:\n                  param_4 = (uint *)((int)param_4 + 1);\n                } while ((int)param_4 < iVar16);\n              }\n              uStack_168 = 0;\n            }\n            uStack_11c = uVar14 + 1;\n            uVar14 = (uint)*(byte *)((int)puStack_140 + uVar14);\n            do {\n              if (*(int *)(uVar41 + 0x2c) != 0) {\n                uVar37 = *(uint *)(*(int *)(uVar41 + 0x2c) + uVar14 * 4);\nLAB_0004ddf0:\n                if (piStack_e0 != (int *)0x0) goto LAB_0004ddfc;\n                goto LAB_0004de1c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x30);\n              if (iVar16 != 0) {\n                uVar37 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n                if ((uVar37 & 1) == 0) {\n                  uVar37 = *(uint *)(iVar16 + uVar14 * 4);\n                }\n                else {\n                  uVar37 = *(uint *)(iVar16 + (uVar14 + 0x100) * 4);\n                }\n                goto LAB_0004ddf0;\n              }\n              iVar16 = (*(code *)(iVar26 + -0x7510))(puStack_f0,uVar41);\n            } while (iVar16 != 0);\n            uStack_168 = 0xc;\n            uVar14 = uStack_168;\njoined_r0x0004e770:\n            uStack_168 = uVar14;\n            if (piStack_e0 == (int *)0x0) {\n              piVar17 = (int *)0x0;\n              goto LAB_0004dbb4;\n            }\n            uVar37 = 0;\nLAB_0004ddfc:\n            uVar37 = FUN_0004d0a8(&uStack_168,&puStack_144,uVar37);\nLAB_0004de1c:\n            uVar14 = uStack_11c;\n            if (uVar37 == 0) {\n              piVar17 = piStack_e0;\n              if (uStack_168 != 0) goto LAB_0004dbb4;\n              if ((piStack_e0 == (int *)0x0) || ((bVar5 && (!bVar22)))) break;\n              param_4 = &uStack_168;\n              do {\n                bVar2 = false;\n                piVar17 = piStack_e0 + uStack_11c;\n                uVar14 = uStack_11c;\n                do {\n                  uVar37 = uVar14 + 1;\n                  piVar17 = piVar17 + 1;\n                  if (iStack_dc < (int)uVar37) {\n                    if (bVar2) {\n                      uStack_11c = uVar14;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar2 = true;\n                  uVar14 = uVar37;\n                } while (*piVar17 == 0);\n                uStack_11c = uVar37;\n                uVar37 = FUN_0004d0a8(param_4,&puStack_144,0);\n                uVar14 = uStack_11c;\n                if (uStack_168 != 0) {\n                  if (uVar37 == 0) goto LAB_0004e0cc;\n                  break;\n                }\n              } while (uVar37 == 0);\n            }\n            uVar42 = uStack_1d0;\n            if ((bVar4) && (uVar42 = uVar40, uVar41 != uVar37)) {\n              bVar4 = false;\n              uVar42 = uStack_1d0;\n            }\n            uStack_1d0 = uVar42;\n            uVar41 = uVar37;\n            uStack_11c = uVar14;\n            if (((*(byte *)(uVar37 + 0x34) & 8) != 0) &&\n               (((*(byte *)(uVar37 + 0x34) & 1) == 0 ||\n                (iVar16 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar37 + 8),uVar37 + 0xc,uVar14)\n                , iVar16 != 0)))) {\n              if (!bVar22) goto LAB_0004e0e4;\n              ppuStack_1dc = (uint **)0x0;\n              uVar6 = uVar14;\n              bVar5 = bVar22;\n            }\n          }\nLAB_0004e0cc:\n          uVar14 = uVar6;\n          if (ppuStack_1dc != (uint **)0x0) {\n            *ppuStack_1dc = (uint *)((int)*ppuStack_1dc + uStack_1d0);\n          }\n        }\n        else {\n          uVar14 = FUN_00047924(&puStack_144,uVar41 + 8,uVar41 + 0xc,0);\n          uStack_168 = uVar14;\n          if (uVar14 == 0) {\n            if ((*(byte *)(uVar41 + 0x34) & 2) == 0) {\n              bVar4 = false;\n            }\n            else {\n              uVar14 = FUN_0004c6a8(&puStack_144,uVar41 + 8,uVar41 + 0xc);\n              uStack_168 = uVar14;\n              if (uVar14 != 0) goto LAB_0004e0e4;\n              bVar4 = false;\n            }\n            goto LAB_0004dd48;\n          }\n        }\nLAB_0004e0e4:\n        piVar17 = piStack_e0;\n        if (uVar14 != 0xffffffff) {\n          if (uVar14 == 0xfffffffe) goto LAB_0004dbf8;\n          uStack_e8 = uVar14;\n          if (((uint)ppuVar24[7] & 0x8000000) == 0) {\n            if (!bVar1) {\n              uVar6 = puVar43[0x13];\n              goto joined_r0x0004e94c;\n            }\n            pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n            iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                     piStack_e0[uVar14] + 0xc,uVar14);\n            if ((*(char *)(puVar43 + 0x16) < '\0') || (puVar43[0x13] != 0)) goto LAB_0004e170;\n          }\n          else {\n            uVar6 = puVar43[0x13];\njoined_r0x0004e94c:\n            if (uVar6 != 0) {\n              pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n              iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                       piStack_e0[uVar14] + 0xc,uVar14);\nLAB_0004e170:\n              iVar30 = iStack_e4;\n              puVar36 = puStack_f0;\n              if (uVar14 < 0x3fffffff) {\n                uStack_1f0 = uVar14 + 1;\n                piVar17 = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                if (piVar17 == (int *)0x0) goto LAB_0004dbf8;\n                if (puVar36[0x13] == 0) {\n                  piStack_15c = (int *)0x0;\n                  uStack_150 = 0;\n                  uStack_14c = 0;\n                  uStack_148 = 0;\n                  piStack_160 = piVar17;\n                  iStack_158 = iVar30;\n                  uStack_154 = uVar14;\n                  uStack_1e4 = FUN_0004d30c(&puStack_144,&piStack_160);\n                  (**(code **)(puVar46 + 0x28520))(uStack_148);\n                  if (uStack_1e4 == 0) {\n                    if (*piVar17 == 0) {\n                      (**(code **)(puVar46 + 0x28520))(piVar17);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar46 + 0x28520))(piStack_e0);\n                    uStack_e8 = uVar14;\n                    iStack_e4 = iVar30;\n                    piStack_e0 = piVar17;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  piStack_1ec = (int *)0x0;\n                }\n                else {\n                  piStack_1ec = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                  if (piStack_1ec == (int *)0x0) {\n                    (**(code **)(puVar46 + 0x28520))(piVar17);\n                    uStack_1e4 = 0xc;\n                    piVar17 = piStack_e0;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar15 = *(int *)(puVar46 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);\n                    uStack_150 = 0;\n                    uStack_14c = 0;\n                    uStack_148 = 0;\n                    piStack_160 = piVar17;\n                    piStack_15c = piStack_1ec;\n                    iStack_158 = iVar30;\n                    uStack_154 = uVar14;\n                    uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);\n                    (**(code **)(puVar46 + 0x28520))(uStack_148);\n                    if (uStack_1e4 != 0) break;\n                    if ((*piVar17 != 0) || (*piStack_1ec != 0)) {\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    piVar33 = piStack_e0 + (uStack_1f0 - 1);\n                    uStack_1f0 = uVar14;\n                    while( true ) {\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }\n                    iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       );\n                  }\n                }\n                (**(code **)(puVar46 + 0x28520))(piVar17);\n                (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                piVar17 = piStack_e0;\n                if (uStack_1e4 == 1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }\n              uStack_1e4 = 0xc;\n              goto LAB_0004dbbc;\n            }\n          }\nLAB_0004e7e0:\n          piVar17 = piStack_e0;\n          uStack_1e4 = uVar11;\n          if (local_78 == (uint *)0x0) goto LAB_0004dbbc;\n          puVar23 = ppuVar24[7];\n          if (bVar1) {\n            piVar17 = piStack_74 + 2;\n            do {\n              piVar17[1] = -1;\n              piVar33 = piVar17 + 2;\n              *piVar17 = -1;\n              piVar17 = piVar33;\n            } while (piStack_74 + (int)local_78 * 2 != piVar33);\n            *piStack_74 = 0;\n            piStack_74[1] = uStack_e8;\n            if (((uint)puVar23 & 0x8000000) == 0) {\n              if (*(char *)(puVar43 + 0x16) < '\0') {\n                bVar22 = 0 < (int)puVar43[0x13];\n              }\n              else {\n                bVar22 = false;\n              }\n              uStack_1e4 = FUN_0004bc00(ppuVar24,&puStack_144,local_78,piStack_74,bVar22);\n              piVar17 = piStack_e0;\n              if (uStack_1e4 != 0) goto LAB_0004dbbc;\n              puVar23 = (uint *)*piStack_74;\n            }\n            else {\nLAB_0004e838:\n              puVar23 = (uint *)0x0;\n            }\n            puVar36 = (uint *)0x0;\n            piVar17 = piStack_74;\n            while( true ) {\n              if (puVar23 != (uint *)0xffffffff) {\n                puVar32 = (uint *)piVar17[1];\n                puVar39 = puVar23;\n                puVar38 = puVar32;\n                if (cStack_f8 != '\0') {\n                  puVar39 = puStack_124;\n                  if (puStack_128 != puVar23) {\n                    puVar39 = *(uint **)(iStack_138 + (int)puVar23 * 4);\n                  }\n                  *piVar17 = (int)puVar39;\n                  puVar38 = puStack_124;\n                  if (puStack_128 != puVar32) {\n                    puVar38 = *(uint **)(iStack_138 + (int)puVar32 * 4);\n                  }\n                }\n                *piVar17 = (int)puStack_16c + (int)puVar39;\n                piVar17[1] = (int)puStack_16c + (int)puVar38;\n              }\n              puVar36 = (uint *)((int)puVar36 + 1);\n              piVar17 = piVar17 + 2;\n              if (puVar36 == local_78) break;\n              puVar23 = (uint *)*piVar17;\n            }\n            if (0 < iStack_180) {\n              piVar17 = piStack_74 + (int)local_78 * 2;\n              do {\n                *piVar17 = -1;\n                piVar33 = piVar17 + 2;\n                piVar17[1] = -1;\n                piVar17 = piVar33;\n              } while (piStack_74 + (iStack_180 + (int)local_78) * 2 != piVar33);\n            }\n            piVar33 = (int *)puVar43[0x21];\n            piVar17 = piStack_e0;\n            uStack_1e4 = uVar11;\n            if (piVar33 != (int *)0x0) {\n              iVar29 = 0;\n              piVar3 = piStack_74;\n              do {\n                pcVar45 = *(code **)(puVar46 + 0x28520);\n                if (iVar29 == (int)local_78 + -1) goto LAB_0004dbc0;\n                if (*piVar33 != iVar29) {\n                  piVar3[2] = piStack_74[(*piVar33 + 1) * 2];\n                  piVar3[3] = piStack_74[(*piVar33 + 1) * 2 + 1];\n                }\n                iVar29 = iVar29 + 1;\n                piVar33 = piVar33 + 1;\n                piVar3 = piVar3 + 2;\n              } while( true );\n            }\n            goto LAB_0004dbbc;\n          }\n          *piStack_74 = 0;\n          piStack_74[1] = uStack_e8;\n          goto LAB_0004e838;\n        }\nLAB_0004e2d4:\n        FUN_00044db0(&puStack_144);\n        param_4 = puStack_16c;\n      }\n      param_4 = (uint *)((int)param_4 + iVar29);\n      puStack_16c = param_4;\n      if (((int)param_4 < (int)puVar23) ||\n         (iVar30 = iStack_12c, puVar36 = puStack_88, (int)puVar38 < (int)param_4)) break;\n    } while( true );\n  }\nLAB_0004df68:\n  uStack_1e4 = 1;\n  piVar17 = piStack_e0;\n  goto LAB_0004dbbc;\ncode_r0x0004ea7c:\n  uStack_1e4 = uStack_168;\n  piVar17 = piStack_e0;\n  if (uStack_168 == 0xc) goto LAB_0004dbbc;\n  uVar20 = 0x435;\nLAB_0004ea9c:\n  (**(code **)(puVar46 + 0x282f4))\n            (*(int *)(puVar46 + 0x27edc) + 0x2b30,*(int *)(puVar46 + 0x27edc) + 0x2ac0,uVar20,\n             *(int *)(puVar46 + 0x27edc) + 0x3030);\n  uVar6 = extraout_v1;\n  ppuVar24 = &puStack_144;\nLAB_0004eabc:\n  uVar31 = 8;\n  goto LAB_0004dab0;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "bool bVar4;" primitive_type identifier ;) (declaration "bool bVar5;" primitive_type identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "code *pcVar7;" type_identifier (pointer_declarator "*pcVar7" * identifier) ;) (declaration "code *pcVar8;" type_identifier (pointer_declarator "*pcVar8" * identifier) ;) (declaration "code *pcVar9;" type_identifier (pointer_declarator "*pcVar9" * identifier) ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "uint **ppuVar12;" type_identifier (pointer_declarator "**ppuVar12" * (pointer_declarator "*ppuVar12" * identifier)) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "int *piVar17;" primitive_type (pointer_declarator "*piVar17" * identifier) ;) (declaration "char cVar21;" primitive_type identifier ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "undefined4 uVar20;" type_identifier identifier ;) (declaration "bool bVar22;" primitive_type identifier ;) (declaration "uint *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "uint extraout_v1;" type_identifier identifier ;) (declaration "uint **ppuVar24;" type_identifier (pointer_declarator "**ppuVar24" * (pointer_declarator "*ppuVar24" * identifier)) ;) (declaration "int iVar25;" primitive_type identifier ;) (declaration "int iVar26;" primitive_type identifier ;) (declaration "uint uVar27;" type_identifier identifier ;) (declaration "int iVar28;" primitive_type identifier ;) (declaration "int iVar29;" primitive_type identifier ;) (declaration "int iVar30;" primitive_type identifier ;) (declaration "uint uVar31;" type_identifier identifier ;) (declaration "uint *puVar32;" type_identifier (pointer_declarator "*puVar32" * identifier) ;) (declaration "int *piVar33;" primitive_type (pointer_declarator "*piVar33" * identifier) ;) (declaration "uint uVar34;" type_identifier identifier ;) (declaration "undefined4 *puVar35;" type_identifier (pointer_declarator "*puVar35" * identifier) ;) (declaration "uint *puVar36;" type_identifier (pointer_declarator "*puVar36" * identifier) ;) (declaration "uint uVar37;" type_identifier identifier ;) (declaration "uint *puVar38;" type_identifier (pointer_declarator "*puVar38" * identifier) ;) (declaration "uint *puVar39;" type_identifier (pointer_declarator "*puVar39" * identifier) ;) (declaration "uint uVar40;" type_identifier identifier ;) (declaration "int *unaff_s4;" primitive_type (pointer_declarator "*unaff_s4" * identifier) ;) (declaration "uint uVar41;" type_identifier identifier ;) (declaration "int unaff_s5;" primitive_type identifier ;) (declaration "uint uVar42;" type_identifier identifier ;) (declaration "int unaff_s6;" primitive_type identifier ;) (declaration "uint *puVar43;" type_identifier (pointer_declarator "*puVar43" * identifier) ;) (declaration "int iVar44;" primitive_type identifier ;) (declaration "uint *unaff_s7;" type_identifier (pointer_declarator "*unaff_s7" * identifier) ;) (declaration "code *pcVar45;" type_identifier (pointer_declarator "*pcVar45" * identifier) ;) (declaration "undefined *puVar46;" type_identifier (pointer_declarator "*puVar46" * identifier) ;) (declaration "int unaff_s8;" primitive_type identifier ;) (declaration "uint uStack_1f0;" type_identifier identifier ;) (declaration "int *piStack_1ec;" primitive_type (pointer_declarator "*piStack_1ec" * identifier) ;) (declaration "uint uStack_1e4;" type_identifier identifier ;) (declaration "uint *puStack_1e0;" type_identifier (pointer_declarator "*puStack_1e0" * identifier) ;) (declaration "uint **ppuStack_1dc;" type_identifier (pointer_declarator "**ppuStack_1dc" * (pointer_declarator "*ppuStack_1dc" * identifier)) ;) (declaration "uint uStack_1d0;" type_identifier identifier ;) (declaration "int iStack_180;" primitive_type identifier ;) (declaration "uint *puStack_16c;" type_identifier (pointer_declarator "*puStack_16c" * identifier) ;) (declaration "uint uStack_168;" type_identifier identifier ;) (declaration "uint uStack_164;" type_identifier identifier ;) (declaration "int *piStack_160;" primitive_type (pointer_declarator "*piStack_160" * identifier) ;) (declaration "int *piStack_15c;" primitive_type (pointer_declarator "*piStack_15c" * identifier) ;) (declaration "int iStack_158;" primitive_type identifier ;) (declaration "uint uStack_154;" type_identifier identifier ;) (declaration "undefined4 uStack_150;" type_identifier identifier ;) (declaration "undefined4 uStack_14c;" type_identifier identifier ;) (declaration "undefined4 uStack_148;" type_identifier identifier ;) (declaration "uint *puStack_144;" type_identifier (pointer_declarator "*puStack_144" * identifier) ;) (declaration "uint *puStack_140;" type_identifier (pointer_declarator "*puStack_140" * identifier) ;) (declaration "int *piStack_13c;" primitive_type (pointer_declarator "*piStack_13c" * identifier) ;) (declaration "int iStack_138;" primitive_type identifier ;) (declaration "int iStack_12c;" primitive_type identifier ;) (declaration "uint *puStack_128;" type_identifier (pointer_declarator "*puStack_128" * identifier) ;) (declaration "uint *puStack_124;" type_identifier (pointer_declarator "*puStack_124" * identifier) ;) (declaration "uint uStack_120;" type_identifier identifier ;) (declaration "uint uStack_11c;" type_identifier identifier ;) (declaration "uint *puStack_118;" type_identifier (pointer_declarator "*puStack_118" * identifier) ;) (declaration "uint *puStack_114;" type_identifier (pointer_declarator "*puStack_114" * identifier) ;) (declaration "uint *puStack_110;" type_identifier (pointer_declarator "*puStack_110" * identifier) ;) (declaration "uint *puStack_10c;" type_identifier (pointer_declarator "*puStack_10c" * identifier) ;) (declaration "undefined4 uStack_108;" type_identifier identifier ;) (declaration "uint *puStack_104;" type_identifier (pointer_declarator "*puStack_104" * identifier) ;) (declaration "uint *puStack_100;" type_identifier (pointer_declarator "*puStack_100" * identifier) ;) (declaration "byte bStack_fc;" type_identifier identifier ;) (declaration "byte bStack_fb;" type_identifier identifier ;) (declaration "byte bStack_fa;" type_identifier identifier ;) (declaration "byte bStack_f9;" type_identifier identifier ;) (declaration "char cStack_f8;" primitive_type identifier ;) (declaration "byte bStack_f7;" type_identifier identifier ;) (declaration "byte bStack_f6;" type_identifier identifier ;) (declaration "uint uStack_f4;" type_identifier identifier ;) (declaration "uint *puStack_f0;" type_identifier (pointer_declarator "*puStack_f0" * identifier) ;) (declaration "undefined1 *puStack_ec;" type_identifier (pointer_declarator "*puStack_ec" * identifier) ;) (declaration "uint uStack_e8;" type_identifier identifier ;) (declaration "int iStack_e4;" primitive_type identifier ;) (declaration "int *piStack_e0;" primitive_type (pointer_declarator "*piStack_e0" * identifier) ;) (declaration "int iStack_dc;" primitive_type identifier ;) (declaration "undefined4 uStack_d8;" type_identifier identifier ;) (declaration "int iStack_d4;" primitive_type identifier ;) (declaration "int iStack_d0;" primitive_type identifier ;) (declaration "int iStack_cc;" primitive_type identifier ;) (declaration "int iStack_c4;" primitive_type identifier ;) (declaration "int iStack_c0;" primitive_type identifier ;) (declaration "int iStack_bc;" primitive_type identifier ;) (declaration "uint *puStack_b8;" type_identifier (pointer_declarator "*puStack_b8" * identifier) ;) (declaration "uint *puStack_b4;" type_identifier (pointer_declarator "*puStack_b4" * identifier) ;) (declaration "uint *puStack_b0;" type_identifier (pointer_declarator "*puStack_b0" * identifier) ;) (declaration "uint *puStack_ac;" type_identifier (pointer_declarator "*puStack_ac" * identifier) ;) (declaration "int *piStack_a8;" primitive_type (pointer_declarator "*piStack_a8" * identifier) ;) (declaration "int iStack_a4;" primitive_type identifier ;) (declaration "int iStack_a0;" primitive_type identifier ;) (declaration "uint *puStack_9c;" type_identifier (pointer_declarator "*puStack_9c" * identifier) ;) (declaration "int iStack_98;" primitive_type identifier ;) (declaration "code *pcStack_94;" type_identifier (pointer_declarator "*pcStack_94" * identifier) ;) (declaration "uint *puStack_88;" type_identifier (pointer_declarator "*puStack_88" * identifier) ;) (declaration "uint *local_80;" type_identifier (pointer_declarator "*local_80" * identifier) ;) (declaration "uint *local_7c;" type_identifier (pointer_declarator "*local_7c" * identifier) ;) (declaration "uint *local_78;" type_identifier (pointer_declarator "*local_78" * identifier) ;) (declaration "int *piStack_74;" primitive_type (pointer_declarator "*piStack_74" * identifier) ;) (declaration "int local_64;" primitive_type identifier ;) (declaration "uint local_38;" type_identifier identifier ;) (declaration "undefined4 local_34;" type_identifier identifier ;) (declaration "undefined4 *local_30;" type_identifier (pointer_declarator "*local_30" * identifier) ;) (declaration "uint **local_2c;" type_identifier (pointer_declarator "**local_2c" * (pointer_declarator "*local_2c" * identifier)) ;) (expression_statement "puVar46 = PTR___stack_chk_guard_00075be8;" (assignment_expression "puVar46 = PTR___stack_chk_guard_00075be8" identifier = identifier) ;) (expression_statement "local_38 = 1;" (assignment_expression "local_38 = 1" identifier = number_literal) ;) (expression_statement "local_34 = 1;" (assignment_expression "local_34 = 1" identifier = number_literal) ;) (expression_statement "local_2c = *(uint ***)PTR___stack_chk_guard_00075be8;" (assignment_expression "local_2c = *(uint ***)PTR___stack_chk_guard_00075be8" identifier = (pointer_expression "*(uint ***)PTR___stack_chk_guard_00075be8" * (cast_expression "(uint ***)PTR___stack_chk_guard_00075be8" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier))) ;) (expression_statement "puVar36 = (uint *)param_2[3];" (assignment_expression "puVar36 = (uint *)param_2[3]" identifier = (cast_expression "(uint *)param_2[3]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[3]" identifier [ number_literal ]))) ;) (expression_statement "puVar39 = (uint *)param_2[2];" (assignment_expression "puVar39 = (uint *)param_2[2]" identifier = (cast_expression "(uint *)param_2[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[2]" identifier [ number_literal ]))) ;) (expression_statement "puVar23 = param_2;" (assignment_expression "puVar23 = param_2" identifier = identifier) ;) (expression_statement "local_30 = (undefined4 *)(*(code *)PTR_malloc_00075b2c)(4);" (assignment_expression "local_30 = (undefined4 *)(*(code *)PTR_malloc_00075b2c)(4)" identifier = (cast_expression "(undefined4 *)(*(code *)PTR_malloc_00075b2c)(4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_malloc_00075b2c)(4)" (parenthesized_expression "(*(code *)PTR_malloc_00075b2c)" ( (pointer_expression "*(code *)PTR_malloc_00075b2c" * (cast_expression "(code *)PTR_malloc_00075b2c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(4)" ( number_literal ))))) ;) (if_statement "if (local_30 == (undefined4 *)0x0) {\n    uVar6 = 0xc;\n  }\n  else {\n    *local_30 = puVar39;\n    pcVar45 = (code *)(PTR_DAT_00075978 + -0x1248);\n    puVar23 = param_2;\n    param_3 = puVar36;\n    param_4 = &local_38;\n    uVar6 = FUN_0004edb8(param_1);\n    if (uVar6 == 0) {\n      local_64 = 0;\n      if (0 < (int)puVar36) {\n        pcVar7 = (code *)(PTR_LAB_00075920 + 0x5610);\n        pcVar8 = (code *)(PTR_LAB_00075920 + 0x33f8);\n        pcVar9 = (code *)(PTR_LAB_00075920 + 0x5230);\n        do {\n          unaff_s7 = (uint *)((int)puVar36 * 4);\n          if (*(int *)(*param_2 + (int)unaff_s7) == 0) {\n            local_64 = local_64 + 1;\n            if ((int)param_1[0x1e] < local_64) goto LAB_0004d6a0;\n          }\n          else {\n            local_64 = 0;\n            if ((int)param_1[0x1e] < 0) {\nLAB_0004d6a0:\n              puVar23 = (uint *)0x0;\n              param_3 = unaff_s7;\n              (*(code *)PTR_memset_00075ad4)();\n              (*(code *)PTR_free_00075bfc)(local_30);\n              uVar6 = 0;\n              goto LAB_0004d644;\n            }\n          }\n          local_34 = 0;\n          unaff_s6 = *(int *)((int)unaff_s7 + (param_1[0x19] - 4));\n          puVar36 = (uint *)((int)puVar36 + -1);\n          if ((unaff_s6 != 0) && (unaff_s4 = (int *)param_1[0x15], 0 < *(int *)(unaff_s6 + 0x14))) {\n            unaff_s5 = 0;\n            do {\n              puVar39 = *(uint **)(*(int *)(unaff_s6 + 0x18) + unaff_s5 * 4);\n              unaff_s8 = (int)puVar39 * 8;\n              iVar29 = *unaff_s4 + unaff_s8;\n              if ((*(uint *)(iVar29 + 4) & 0x800) == 0) {\nLAB_0004d464:\n                iVar29 = FUN_00047bf8(param_1,iVar29,puVar36);\n                if (iVar29 != 0) {\n                  iVar29 = *(int *)(*param_2 + (int)unaff_s7);\n                  if (iVar29 != 0) {\n                    param_3 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc);\n                    iVar29 = 1;\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                }\n              }\n              else {\n                puVar35 = (undefined4 *)param_1[0x15];\n                uVar6 = param_2[3];\n                param_3 = puVar39;\n                param_4 = param_1;\n                local_80 = puVar36;\n                iVar29 = FUN_0004b150(*puVar35,puVar35 + 0x20);\n                if (iVar29 < 1) {\n                  if (iVar29 == 0) {\n                    iVar29 = *unaff_s4;\n                    goto LAB_0004d460;\n                  }\n                }\n                else if ((int)puVar36 + iVar29 <= (int)uVar6) {\n                  iVar30 = *(int *)(*param_2 + ((int)puVar36 + iVar29) * 4);\n                  if (iVar30 != 0) {\n                    param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                  iVar29 = *unaff_s4;\nLAB_0004d460:\n                  iVar29 = iVar29 + unaff_s8;\n                  goto LAB_0004d464;\n                }\nLAB_0004d4b4:\n                if (param_2[5] != 0) {\n                  local_80 = (uint *)((int)puVar36 + iVar29);\n                  param_3 = param_2 + 6;\n                  param_4 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                  local_7c = puVar39;\n                  local_78 = puVar36;\n                  iVar29 = (*pcVar7)(param_1,param_2 + 5);\n                  if (iVar29 != 0) goto LAB_0004d510;\n                }\n                puVar23 = puVar39;\n                iVar29 = (*pcVar8)(&local_38);\n                if (iVar29 == 0) {\n                  uVar6 = 0xc;\n                  goto LAB_0004d62c;\n                }\n              }\nLAB_0004d510:\n              unaff_s5 = unaff_s5 + 1;\n              param_4 = &local_38;\n            } while (unaff_s5 < *(int *)(unaff_s6 + 0x14));\n          }\n          puVar23 = param_2;\n          param_3 = puVar36;\n          param_4 = &local_38;\n          uVar6 = (*pcVar45)(param_1);\n          if (uVar6 != 0) goto LAB_0004d62c;\n        } while (puVar36 != (uint *)0x0);\n      }\n      uVar6 = 0;\n    }\nLAB_0004d62c:\n    (*(code *)PTR_free_00075bfc)(local_30);\n  }" if (parenthesized_expression "(local_30 == (undefined4 *)0x0)" ( (binary_expression "local_30 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar6 = 0xc;\n  }" { (expression_statement "uVar6 = 0xc;" (assignment_expression "uVar6 = 0xc" identifier = number_literal) ;) }) (else_clause "else {\n    *local_30 = puVar39;\n    pcVar45 = (code *)(PTR_DAT_00075978 + -0x1248);\n    puVar23 = param_2;\n    param_3 = puVar36;\n    param_4 = &local_38;\n    uVar6 = FUN_0004edb8(param_1);\n    if (uVar6 == 0) {\n      local_64 = 0;\n      if (0 < (int)puVar36) {\n        pcVar7 = (code *)(PTR_LAB_00075920 + 0x5610);\n        pcVar8 = (code *)(PTR_LAB_00075920 + 0x33f8);\n        pcVar9 = (code *)(PTR_LAB_00075920 + 0x5230);\n        do {\n          unaff_s7 = (uint *)((int)puVar36 * 4);\n          if (*(int *)(*param_2 + (int)unaff_s7) == 0) {\n            local_64 = local_64 + 1;\n            if ((int)param_1[0x1e] < local_64) goto LAB_0004d6a0;\n          }\n          else {\n            local_64 = 0;\n            if ((int)param_1[0x1e] < 0) {\nLAB_0004d6a0:\n              puVar23 = (uint *)0x0;\n              param_3 = unaff_s7;\n              (*(code *)PTR_memset_00075ad4)();\n              (*(code *)PTR_free_00075bfc)(local_30);\n              uVar6 = 0;\n              goto LAB_0004d644;\n            }\n          }\n          local_34 = 0;\n          unaff_s6 = *(int *)((int)unaff_s7 + (param_1[0x19] - 4));\n          puVar36 = (uint *)((int)puVar36 + -1);\n          if ((unaff_s6 != 0) && (unaff_s4 = (int *)param_1[0x15], 0 < *(int *)(unaff_s6 + 0x14))) {\n            unaff_s5 = 0;\n            do {\n              puVar39 = *(uint **)(*(int *)(unaff_s6 + 0x18) + unaff_s5 * 4);\n              unaff_s8 = (int)puVar39 * 8;\n              iVar29 = *unaff_s4 + unaff_s8;\n              if ((*(uint *)(iVar29 + 4) & 0x800) == 0) {\nLAB_0004d464:\n                iVar29 = FUN_00047bf8(param_1,iVar29,puVar36);\n                if (iVar29 != 0) {\n                  iVar29 = *(int *)(*param_2 + (int)unaff_s7);\n                  if (iVar29 != 0) {\n                    param_3 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc);\n                    iVar29 = 1;\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                }\n              }\n              else {\n                puVar35 = (undefined4 *)param_1[0x15];\n                uVar6 = param_2[3];\n                param_3 = puVar39;\n                param_4 = param_1;\n                local_80 = puVar36;\n                iVar29 = FUN_0004b150(*puVar35,puVar35 + 0x20);\n                if (iVar29 < 1) {\n                  if (iVar29 == 0) {\n                    iVar29 = *unaff_s4;\n                    goto LAB_0004d460;\n                  }\n                }\n                else if ((int)puVar36 + iVar29 <= (int)uVar6) {\n                  iVar30 = *(int *)(*param_2 + ((int)puVar36 + iVar29) * 4);\n                  if (iVar30 != 0) {\n                    param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                  iVar29 = *unaff_s4;\nLAB_0004d460:\n                  iVar29 = iVar29 + unaff_s8;\n                  goto LAB_0004d464;\n                }\nLAB_0004d4b4:\n                if (param_2[5] != 0) {\n                  local_80 = (uint *)((int)puVar36 + iVar29);\n                  param_3 = param_2 + 6;\n                  param_4 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                  local_7c = puVar39;\n                  local_78 = puVar36;\n                  iVar29 = (*pcVar7)(param_1,param_2 + 5);\n                  if (iVar29 != 0) goto LAB_0004d510;\n                }\n                puVar23 = puVar39;\n                iVar29 = (*pcVar8)(&local_38);\n                if (iVar29 == 0) {\n                  uVar6 = 0xc;\n                  goto LAB_0004d62c;\n                }\n              }\nLAB_0004d510:\n              unaff_s5 = unaff_s5 + 1;\n              param_4 = &local_38;\n            } while (unaff_s5 < *(int *)(unaff_s6 + 0x14));\n          }\n          puVar23 = param_2;\n          param_3 = puVar36;\n          param_4 = &local_38;\n          uVar6 = (*pcVar45)(param_1);\n          if (uVar6 != 0) goto LAB_0004d62c;\n        } while (puVar36 != (uint *)0x0);\n      }\n      uVar6 = 0;\n    }\nLAB_0004d62c:\n    (*(code *)PTR_free_00075bfc)(local_30);\n  }" else (compound_statement "{\n    *local_30 = puVar39;\n    pcVar45 = (code *)(PTR_DAT_00075978 + -0x1248);\n    puVar23 = param_2;\n    param_3 = puVar36;\n    param_4 = &local_38;\n    uVar6 = FUN_0004edb8(param_1);\n    if (uVar6 == 0) {\n      local_64 = 0;\n      if (0 < (int)puVar36) {\n        pcVar7 = (code *)(PTR_LAB_00075920 + 0x5610);\n        pcVar8 = (code *)(PTR_LAB_00075920 + 0x33f8);\n        pcVar9 = (code *)(PTR_LAB_00075920 + 0x5230);\n        do {\n          unaff_s7 = (uint *)((int)puVar36 * 4);\n          if (*(int *)(*param_2 + (int)unaff_s7) == 0) {\n            local_64 = local_64 + 1;\n            if ((int)param_1[0x1e] < local_64) goto LAB_0004d6a0;\n          }\n          else {\n            local_64 = 0;\n            if ((int)param_1[0x1e] < 0) {\nLAB_0004d6a0:\n              puVar23 = (uint *)0x0;\n              param_3 = unaff_s7;\n              (*(code *)PTR_memset_00075ad4)();\n              (*(code *)PTR_free_00075bfc)(local_30);\n              uVar6 = 0;\n              goto LAB_0004d644;\n            }\n          }\n          local_34 = 0;\n          unaff_s6 = *(int *)((int)unaff_s7 + (param_1[0x19] - 4));\n          puVar36 = (uint *)((int)puVar36 + -1);\n          if ((unaff_s6 != 0) && (unaff_s4 = (int *)param_1[0x15], 0 < *(int *)(unaff_s6 + 0x14))) {\n            unaff_s5 = 0;\n            do {\n              puVar39 = *(uint **)(*(int *)(unaff_s6 + 0x18) + unaff_s5 * 4);\n              unaff_s8 = (int)puVar39 * 8;\n              iVar29 = *unaff_s4 + unaff_s8;\n              if ((*(uint *)(iVar29 + 4) & 0x800) == 0) {\nLAB_0004d464:\n                iVar29 = FUN_00047bf8(param_1,iVar29,puVar36);\n                if (iVar29 != 0) {\n                  iVar29 = *(int *)(*param_2 + (int)unaff_s7);\n                  if (iVar29 != 0) {\n                    param_3 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc);\n                    iVar29 = 1;\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                }\n              }\n              else {\n                puVar35 = (undefined4 *)param_1[0x15];\n                uVar6 = param_2[3];\n                param_3 = puVar39;\n                param_4 = param_1;\n                local_80 = puVar36;\n                iVar29 = FUN_0004b150(*puVar35,puVar35 + 0x20);\n                if (iVar29 < 1) {\n                  if (iVar29 == 0) {\n                    iVar29 = *unaff_s4;\n                    goto LAB_0004d460;\n                  }\n                }\n                else if ((int)puVar36 + iVar29 <= (int)uVar6) {\n                  iVar30 = *(int *)(*param_2 + ((int)puVar36 + iVar29) * 4);\n                  if (iVar30 != 0) {\n                    param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                  iVar29 = *unaff_s4;\nLAB_0004d460:\n                  iVar29 = iVar29 + unaff_s8;\n                  goto LAB_0004d464;\n                }\nLAB_0004d4b4:\n                if (param_2[5] != 0) {\n                  local_80 = (uint *)((int)puVar36 + iVar29);\n                  param_3 = param_2 + 6;\n                  param_4 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                  local_7c = puVar39;\n                  local_78 = puVar36;\n                  iVar29 = (*pcVar7)(param_1,param_2 + 5);\n                  if (iVar29 != 0) goto LAB_0004d510;\n                }\n                puVar23 = puVar39;\n                iVar29 = (*pcVar8)(&local_38);\n                if (iVar29 == 0) {\n                  uVar6 = 0xc;\n                  goto LAB_0004d62c;\n                }\n              }\nLAB_0004d510:\n              unaff_s5 = unaff_s5 + 1;\n              param_4 = &local_38;\n            } while (unaff_s5 < *(int *)(unaff_s6 + 0x14));\n          }\n          puVar23 = param_2;\n          param_3 = puVar36;\n          param_4 = &local_38;\n          uVar6 = (*pcVar45)(param_1);\n          if (uVar6 != 0) goto LAB_0004d62c;\n        } while (puVar36 != (uint *)0x0);\n      }\n      uVar6 = 0;\n    }\nLAB_0004d62c:\n    (*(code *)PTR_free_00075bfc)(local_30);\n  }" { (expression_statement "*local_30 = puVar39;" (assignment_expression "*local_30 = puVar39" (pointer_expression "*local_30" * identifier) = identifier) ;) (expression_statement "pcVar45 = (code *)(PTR_DAT_00075978 + -0x1248);" (assignment_expression "pcVar45 = (code *)(PTR_DAT_00075978 + -0x1248)" identifier = (cast_expression "(code *)(PTR_DAT_00075978 + -0x1248)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_00075978 + -0x1248)" ( (binary_expression "PTR_DAT_00075978 + -0x1248" identifier + number_literal) )))) ;) (expression_statement "puVar23 = param_2;" (assignment_expression "puVar23 = param_2" identifier = identifier) ;) (expression_statement "param_3 = puVar36;" (assignment_expression "param_3 = puVar36" identifier = identifier) ;) (expression_statement "param_4 = &local_38;" (assignment_expression "param_4 = &local_38" identifier = (pointer_expression "&local_38" & identifier)) ;) (expression_statement "uVar6 = FUN_0004edb8(param_1);" (assignment_expression "uVar6 = FUN_0004edb8(param_1)" identifier = (call_expression "FUN_0004edb8(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (uVar6 == 0) {\n      local_64 = 0;\n      if (0 < (int)puVar36) {\n        pcVar7 = (code *)(PTR_LAB_00075920 + 0x5610);\n        pcVar8 = (code *)(PTR_LAB_00075920 + 0x33f8);\n        pcVar9 = (code *)(PTR_LAB_00075920 + 0x5230);\n        do {\n          unaff_s7 = (uint *)((int)puVar36 * 4);\n          if (*(int *)(*param_2 + (int)unaff_s7) == 0) {\n            local_64 = local_64 + 1;\n            if ((int)param_1[0x1e] < local_64) goto LAB_0004d6a0;\n          }\n          else {\n            local_64 = 0;\n            if ((int)param_1[0x1e] < 0) {\nLAB_0004d6a0:\n              puVar23 = (uint *)0x0;\n              param_3 = unaff_s7;\n              (*(code *)PTR_memset_00075ad4)();\n              (*(code *)PTR_free_00075bfc)(local_30);\n              uVar6 = 0;\n              goto LAB_0004d644;\n            }\n          }\n          local_34 = 0;\n          unaff_s6 = *(int *)((int)unaff_s7 + (param_1[0x19] - 4));\n          puVar36 = (uint *)((int)puVar36 + -1);\n          if ((unaff_s6 != 0) && (unaff_s4 = (int *)param_1[0x15], 0 < *(int *)(unaff_s6 + 0x14))) {\n            unaff_s5 = 0;\n            do {\n              puVar39 = *(uint **)(*(int *)(unaff_s6 + 0x18) + unaff_s5 * 4);\n              unaff_s8 = (int)puVar39 * 8;\n              iVar29 = *unaff_s4 + unaff_s8;\n              if ((*(uint *)(iVar29 + 4) & 0x800) == 0) {\nLAB_0004d464:\n                iVar29 = FUN_00047bf8(param_1,iVar29,puVar36);\n                if (iVar29 != 0) {\n                  iVar29 = *(int *)(*param_2 + (int)unaff_s7);\n                  if (iVar29 != 0) {\n                    param_3 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc);\n                    iVar29 = 1;\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                }\n              }\n              else {\n                puVar35 = (undefined4 *)param_1[0x15];\n                uVar6 = param_2[3];\n                param_3 = puVar39;\n                param_4 = param_1;\n                local_80 = puVar36;\n                iVar29 = FUN_0004b150(*puVar35,puVar35 + 0x20);\n                if (iVar29 < 1) {\n                  if (iVar29 == 0) {\n                    iVar29 = *unaff_s4;\n                    goto LAB_0004d460;\n                  }\n                }\n                else if ((int)puVar36 + iVar29 <= (int)uVar6) {\n                  iVar30 = *(int *)(*param_2 + ((int)puVar36 + iVar29) * 4);\n                  if (iVar30 != 0) {\n                    param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                  iVar29 = *unaff_s4;\nLAB_0004d460:\n                  iVar29 = iVar29 + unaff_s8;\n                  goto LAB_0004d464;\n                }\nLAB_0004d4b4:\n                if (param_2[5] != 0) {\n                  local_80 = (uint *)((int)puVar36 + iVar29);\n                  param_3 = param_2 + 6;\n                  param_4 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                  local_7c = puVar39;\n                  local_78 = puVar36;\n                  iVar29 = (*pcVar7)(param_1,param_2 + 5);\n                  if (iVar29 != 0) goto LAB_0004d510;\n                }\n                puVar23 = puVar39;\n                iVar29 = (*pcVar8)(&local_38);\n                if (iVar29 == 0) {\n                  uVar6 = 0xc;\n                  goto LAB_0004d62c;\n                }\n              }\nLAB_0004d510:\n              unaff_s5 = unaff_s5 + 1;\n              param_4 = &local_38;\n            } while (unaff_s5 < *(int *)(unaff_s6 + 0x14));\n          }\n          puVar23 = param_2;\n          param_3 = puVar36;\n          param_4 = &local_38;\n          uVar6 = (*pcVar45)(param_1);\n          if (uVar6 != 0) goto LAB_0004d62c;\n        } while (puVar36 != (uint *)0x0);\n      }\n      uVar6 = 0;\n    }" if (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) (compound_statement "{\n      local_64 = 0;\n      if (0 < (int)puVar36) {\n        pcVar7 = (code *)(PTR_LAB_00075920 + 0x5610);\n        pcVar8 = (code *)(PTR_LAB_00075920 + 0x33f8);\n        pcVar9 = (code *)(PTR_LAB_00075920 + 0x5230);\n        do {\n          unaff_s7 = (uint *)((int)puVar36 * 4);\n          if (*(int *)(*param_2 + (int)unaff_s7) == 0) {\n            local_64 = local_64 + 1;\n            if ((int)param_1[0x1e] < local_64) goto LAB_0004d6a0;\n          }\n          else {\n            local_64 = 0;\n            if ((int)param_1[0x1e] < 0) {\nLAB_0004d6a0:\n              puVar23 = (uint *)0x0;\n              param_3 = unaff_s7;\n              (*(code *)PTR_memset_00075ad4)();\n              (*(code *)PTR_free_00075bfc)(local_30);\n              uVar6 = 0;\n              goto LAB_0004d644;\n            }\n          }\n          local_34 = 0;\n          unaff_s6 = *(int *)((int)unaff_s7 + (param_1[0x19] - 4));\n          puVar36 = (uint *)((int)puVar36 + -1);\n          if ((unaff_s6 != 0) && (unaff_s4 = (int *)param_1[0x15], 0 < *(int *)(unaff_s6 + 0x14))) {\n            unaff_s5 = 0;\n            do {\n              puVar39 = *(uint **)(*(int *)(unaff_s6 + 0x18) + unaff_s5 * 4);\n              unaff_s8 = (int)puVar39 * 8;\n              iVar29 = *unaff_s4 + unaff_s8;\n              if ((*(uint *)(iVar29 + 4) & 0x800) == 0) {\nLAB_0004d464:\n                iVar29 = FUN_00047bf8(param_1,iVar29,puVar36);\n                if (iVar29 != 0) {\n                  iVar29 = *(int *)(*param_2 + (int)unaff_s7);\n                  if (iVar29 != 0) {\n                    param_3 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc);\n                    iVar29 = 1;\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                }\n              }\n              else {\n                puVar35 = (undefined4 *)param_1[0x15];\n                uVar6 = param_2[3];\n                param_3 = puVar39;\n                param_4 = param_1;\n                local_80 = puVar36;\n                iVar29 = FUN_0004b150(*puVar35,puVar35 + 0x20);\n                if (iVar29 < 1) {\n                  if (iVar29 == 0) {\n                    iVar29 = *unaff_s4;\n                    goto LAB_0004d460;\n                  }\n                }\n                else if ((int)puVar36 + iVar29 <= (int)uVar6) {\n                  iVar30 = *(int *)(*param_2 + ((int)puVar36 + iVar29) * 4);\n                  if (iVar30 != 0) {\n                    param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                  iVar29 = *unaff_s4;\nLAB_0004d460:\n                  iVar29 = iVar29 + unaff_s8;\n                  goto LAB_0004d464;\n                }\nLAB_0004d4b4:\n                if (param_2[5] != 0) {\n                  local_80 = (uint *)((int)puVar36 + iVar29);\n                  param_3 = param_2 + 6;\n                  param_4 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                  local_7c = puVar39;\n                  local_78 = puVar36;\n                  iVar29 = (*pcVar7)(param_1,param_2 + 5);\n                  if (iVar29 != 0) goto LAB_0004d510;\n                }\n                puVar23 = puVar39;\n                iVar29 = (*pcVar8)(&local_38);\n                if (iVar29 == 0) {\n                  uVar6 = 0xc;\n                  goto LAB_0004d62c;\n                }\n              }\nLAB_0004d510:\n              unaff_s5 = unaff_s5 + 1;\n              param_4 = &local_38;\n            } while (unaff_s5 < *(int *)(unaff_s6 + 0x14));\n          }\n          puVar23 = param_2;\n          param_3 = puVar36;\n          param_4 = &local_38;\n          uVar6 = (*pcVar45)(param_1);\n          if (uVar6 != 0) goto LAB_0004d62c;\n        } while (puVar36 != (uint *)0x0);\n      }\n      uVar6 = 0;\n    }" { (expression_statement "local_64 = 0;" (assignment_expression "local_64 = 0" identifier = number_literal) ;) (if_statement "if (0 < (int)puVar36) {\n        pcVar7 = (code *)(PTR_LAB_00075920 + 0x5610);\n        pcVar8 = (code *)(PTR_LAB_00075920 + 0x33f8);\n        pcVar9 = (code *)(PTR_LAB_00075920 + 0x5230);\n        do {\n          unaff_s7 = (uint *)((int)puVar36 * 4);\n          if (*(int *)(*param_2 + (int)unaff_s7) == 0) {\n            local_64 = local_64 + 1;\n            if ((int)param_1[0x1e] < local_64) goto LAB_0004d6a0;\n          }\n          else {\n            local_64 = 0;\n            if ((int)param_1[0x1e] < 0) {\nLAB_0004d6a0:\n              puVar23 = (uint *)0x0;\n              param_3 = unaff_s7;\n              (*(code *)PTR_memset_00075ad4)();\n              (*(code *)PTR_free_00075bfc)(local_30);\n              uVar6 = 0;\n              goto LAB_0004d644;\n            }\n          }\n          local_34 = 0;\n          unaff_s6 = *(int *)((int)unaff_s7 + (param_1[0x19] - 4));\n          puVar36 = (uint *)((int)puVar36 + -1);\n          if ((unaff_s6 != 0) && (unaff_s4 = (int *)param_1[0x15], 0 < *(int *)(unaff_s6 + 0x14))) {\n            unaff_s5 = 0;\n            do {\n              puVar39 = *(uint **)(*(int *)(unaff_s6 + 0x18) + unaff_s5 * 4);\n              unaff_s8 = (int)puVar39 * 8;\n              iVar29 = *unaff_s4 + unaff_s8;\n              if ((*(uint *)(iVar29 + 4) & 0x800) == 0) {\nLAB_0004d464:\n                iVar29 = FUN_00047bf8(param_1,iVar29,puVar36);\n                if (iVar29 != 0) {\n                  iVar29 = *(int *)(*param_2 + (int)unaff_s7);\n                  if (iVar29 != 0) {\n                    param_3 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc);\n                    iVar29 = 1;\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                }\n              }\n              else {\n                puVar35 = (undefined4 *)param_1[0x15];\n                uVar6 = param_2[3];\n                param_3 = puVar39;\n                param_4 = param_1;\n                local_80 = puVar36;\n                iVar29 = FUN_0004b150(*puVar35,puVar35 + 0x20);\n                if (iVar29 < 1) {\n                  if (iVar29 == 0) {\n                    iVar29 = *unaff_s4;\n                    goto LAB_0004d460;\n                  }\n                }\n                else if ((int)puVar36 + iVar29 <= (int)uVar6) {\n                  iVar30 = *(int *)(*param_2 + ((int)puVar36 + iVar29) * 4);\n                  if (iVar30 != 0) {\n                    param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                  iVar29 = *unaff_s4;\nLAB_0004d460:\n                  iVar29 = iVar29 + unaff_s8;\n                  goto LAB_0004d464;\n                }\nLAB_0004d4b4:\n                if (param_2[5] != 0) {\n                  local_80 = (uint *)((int)puVar36 + iVar29);\n                  param_3 = param_2 + 6;\n                  param_4 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                  local_7c = puVar39;\n                  local_78 = puVar36;\n                  iVar29 = (*pcVar7)(param_1,param_2 + 5);\n                  if (iVar29 != 0) goto LAB_0004d510;\n                }\n                puVar23 = puVar39;\n                iVar29 = (*pcVar8)(&local_38);\n                if (iVar29 == 0) {\n                  uVar6 = 0xc;\n                  goto LAB_0004d62c;\n                }\n              }\nLAB_0004d510:\n              unaff_s5 = unaff_s5 + 1;\n              param_4 = &local_38;\n            } while (unaff_s5 < *(int *)(unaff_s6 + 0x14));\n          }\n          puVar23 = param_2;\n          param_3 = puVar36;\n          param_4 = &local_38;\n          uVar6 = (*pcVar45)(param_1);\n          if (uVar6 != 0) goto LAB_0004d62c;\n        } while (puVar36 != (uint *)0x0);\n      }" if (parenthesized_expression "(0 < (int)puVar36)" ( (binary_expression "0 < (int)puVar36" number_literal < (cast_expression "(int)puVar36" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        pcVar7 = (code *)(PTR_LAB_00075920 + 0x5610);\n        pcVar8 = (code *)(PTR_LAB_00075920 + 0x33f8);\n        pcVar9 = (code *)(PTR_LAB_00075920 + 0x5230);\n        do {\n          unaff_s7 = (uint *)((int)puVar36 * 4);\n          if (*(int *)(*param_2 + (int)unaff_s7) == 0) {\n            local_64 = local_64 + 1;\n            if ((int)param_1[0x1e] < local_64) goto LAB_0004d6a0;\n          }\n          else {\n            local_64 = 0;\n            if ((int)param_1[0x1e] < 0) {\nLAB_0004d6a0:\n              puVar23 = (uint *)0x0;\n              param_3 = unaff_s7;\n              (*(code *)PTR_memset_00075ad4)();\n              (*(code *)PTR_free_00075bfc)(local_30);\n              uVar6 = 0;\n              goto LAB_0004d644;\n            }\n          }\n          local_34 = 0;\n          unaff_s6 = *(int *)((int)unaff_s7 + (param_1[0x19] - 4));\n          puVar36 = (uint *)((int)puVar36 + -1);\n          if ((unaff_s6 != 0) && (unaff_s4 = (int *)param_1[0x15], 0 < *(int *)(unaff_s6 + 0x14))) {\n            unaff_s5 = 0;\n            do {\n              puVar39 = *(uint **)(*(int *)(unaff_s6 + 0x18) + unaff_s5 * 4);\n              unaff_s8 = (int)puVar39 * 8;\n              iVar29 = *unaff_s4 + unaff_s8;\n              if ((*(uint *)(iVar29 + 4) & 0x800) == 0) {\nLAB_0004d464:\n                iVar29 = FUN_00047bf8(param_1,iVar29,puVar36);\n                if (iVar29 != 0) {\n                  iVar29 = *(int *)(*param_2 + (int)unaff_s7);\n                  if (iVar29 != 0) {\n                    param_3 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc);\n                    iVar29 = 1;\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                }\n              }\n              else {\n                puVar35 = (undefined4 *)param_1[0x15];\n                uVar6 = param_2[3];\n                param_3 = puVar39;\n                param_4 = param_1;\n                local_80 = puVar36;\n                iVar29 = FUN_0004b150(*puVar35,puVar35 + 0x20);\n                if (iVar29 < 1) {\n                  if (iVar29 == 0) {\n                    iVar29 = *unaff_s4;\n                    goto LAB_0004d460;\n                  }\n                }\n                else if ((int)puVar36 + iVar29 <= (int)uVar6) {\n                  iVar30 = *(int *)(*param_2 + ((int)puVar36 + iVar29) * 4);\n                  if (iVar30 != 0) {\n                    param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                  iVar29 = *unaff_s4;\nLAB_0004d460:\n                  iVar29 = iVar29 + unaff_s8;\n                  goto LAB_0004d464;\n                }\nLAB_0004d4b4:\n                if (param_2[5] != 0) {\n                  local_80 = (uint *)((int)puVar36 + iVar29);\n                  param_3 = param_2 + 6;\n                  param_4 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                  local_7c = puVar39;\n                  local_78 = puVar36;\n                  iVar29 = (*pcVar7)(param_1,param_2 + 5);\n                  if (iVar29 != 0) goto LAB_0004d510;\n                }\n                puVar23 = puVar39;\n                iVar29 = (*pcVar8)(&local_38);\n                if (iVar29 == 0) {\n                  uVar6 = 0xc;\n                  goto LAB_0004d62c;\n                }\n              }\nLAB_0004d510:\n              unaff_s5 = unaff_s5 + 1;\n              param_4 = &local_38;\n            } while (unaff_s5 < *(int *)(unaff_s6 + 0x14));\n          }\n          puVar23 = param_2;\n          param_3 = puVar36;\n          param_4 = &local_38;\n          uVar6 = (*pcVar45)(param_1);\n          if (uVar6 != 0) goto LAB_0004d62c;\n        } while (puVar36 != (uint *)0x0);\n      }" { (expression_statement "pcVar7 = (code *)(PTR_LAB_00075920 + 0x5610);" (assignment_expression "pcVar7 = (code *)(PTR_LAB_00075920 + 0x5610)" identifier = (cast_expression "(code *)(PTR_LAB_00075920 + 0x5610)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00075920 + 0x5610)" ( (binary_expression "PTR_LAB_00075920 + 0x5610" identifier + number_literal) )))) ;) (expression_statement "pcVar8 = (code *)(PTR_LAB_00075920 + 0x33f8);" (assignment_expression "pcVar8 = (code *)(PTR_LAB_00075920 + 0x33f8)" identifier = (cast_expression "(code *)(PTR_LAB_00075920 + 0x33f8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00075920 + 0x33f8)" ( (binary_expression "PTR_LAB_00075920 + 0x33f8" identifier + number_literal) )))) ;) (expression_statement "pcVar9 = (code *)(PTR_LAB_00075920 + 0x5230);" (assignment_expression "pcVar9 = (code *)(PTR_LAB_00075920 + 0x5230)" identifier = (cast_expression "(code *)(PTR_LAB_00075920 + 0x5230)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00075920 + 0x5230)" ( (binary_expression "PTR_LAB_00075920 + 0x5230" identifier + number_literal) )))) ;) (do_statement "do {\n          unaff_s7 = (uint *)((int)puVar36 * 4);\n          if (*(int *)(*param_2 + (int)unaff_s7) == 0) {\n            local_64 = local_64 + 1;\n            if ((int)param_1[0x1e] < local_64) goto LAB_0004d6a0;\n          }\n          else {\n            local_64 = 0;\n            if ((int)param_1[0x1e] < 0) {\nLAB_0004d6a0:\n              puVar23 = (uint *)0x0;\n              param_3 = unaff_s7;\n              (*(code *)PTR_memset_00075ad4)();\n              (*(code *)PTR_free_00075bfc)(local_30);\n              uVar6 = 0;\n              goto LAB_0004d644;\n            }\n          }\n          local_34 = 0;\n          unaff_s6 = *(int *)((int)unaff_s7 + (param_1[0x19] - 4));\n          puVar36 = (uint *)((int)puVar36 + -1);\n          if ((unaff_s6 != 0) && (unaff_s4 = (int *)param_1[0x15], 0 < *(int *)(unaff_s6 + 0x14))) {\n            unaff_s5 = 0;\n            do {\n              puVar39 = *(uint **)(*(int *)(unaff_s6 + 0x18) + unaff_s5 * 4);\n              unaff_s8 = (int)puVar39 * 8;\n              iVar29 = *unaff_s4 + unaff_s8;\n              if ((*(uint *)(iVar29 + 4) & 0x800) == 0) {\nLAB_0004d464:\n                iVar29 = FUN_00047bf8(param_1,iVar29,puVar36);\n                if (iVar29 != 0) {\n                  iVar29 = *(int *)(*param_2 + (int)unaff_s7);\n                  if (iVar29 != 0) {\n                    param_3 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc);\n                    iVar29 = 1;\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                }\n              }\n              else {\n                puVar35 = (undefined4 *)param_1[0x15];\n                uVar6 = param_2[3];\n                param_3 = puVar39;\n                param_4 = param_1;\n                local_80 = puVar36;\n                iVar29 = FUN_0004b150(*puVar35,puVar35 + 0x20);\n                if (iVar29 < 1) {\n                  if (iVar29 == 0) {\n                    iVar29 = *unaff_s4;\n                    goto LAB_0004d460;\n                  }\n                }\n                else if ((int)puVar36 + iVar29 <= (int)uVar6) {\n                  iVar30 = *(int *)(*param_2 + ((int)puVar36 + iVar29) * 4);\n                  if (iVar30 != 0) {\n                    param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                  iVar29 = *unaff_s4;\nLAB_0004d460:\n                  iVar29 = iVar29 + unaff_s8;\n                  goto LAB_0004d464;\n                }\nLAB_0004d4b4:\n                if (param_2[5] != 0) {\n                  local_80 = (uint *)((int)puVar36 + iVar29);\n                  param_3 = param_2 + 6;\n                  param_4 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                  local_7c = puVar39;\n                  local_78 = puVar36;\n                  iVar29 = (*pcVar7)(param_1,param_2 + 5);\n                  if (iVar29 != 0) goto LAB_0004d510;\n                }\n                puVar23 = puVar39;\n                iVar29 = (*pcVar8)(&local_38);\n                if (iVar29 == 0) {\n                  uVar6 = 0xc;\n                  goto LAB_0004d62c;\n                }\n              }\nLAB_0004d510:\n              unaff_s5 = unaff_s5 + 1;\n              param_4 = &local_38;\n            } while (unaff_s5 < *(int *)(unaff_s6 + 0x14));\n          }\n          puVar23 = param_2;\n          param_3 = puVar36;\n          param_4 = &local_38;\n          uVar6 = (*pcVar45)(param_1);\n          if (uVar6 != 0) goto LAB_0004d62c;\n        } while (puVar36 != (uint *)0x0);" do (compound_statement "{\n          unaff_s7 = (uint *)((int)puVar36 * 4);\n          if (*(int *)(*param_2 + (int)unaff_s7) == 0) {\n            local_64 = local_64 + 1;\n            if ((int)param_1[0x1e] < local_64) goto LAB_0004d6a0;\n          }\n          else {\n            local_64 = 0;\n            if ((int)param_1[0x1e] < 0) {\nLAB_0004d6a0:\n              puVar23 = (uint *)0x0;\n              param_3 = unaff_s7;\n              (*(code *)PTR_memset_00075ad4)();\n              (*(code *)PTR_free_00075bfc)(local_30);\n              uVar6 = 0;\n              goto LAB_0004d644;\n            }\n          }\n          local_34 = 0;\n          unaff_s6 = *(int *)((int)unaff_s7 + (param_1[0x19] - 4));\n          puVar36 = (uint *)((int)puVar36 + -1);\n          if ((unaff_s6 != 0) && (unaff_s4 = (int *)param_1[0x15], 0 < *(int *)(unaff_s6 + 0x14))) {\n            unaff_s5 = 0;\n            do {\n              puVar39 = *(uint **)(*(int *)(unaff_s6 + 0x18) + unaff_s5 * 4);\n              unaff_s8 = (int)puVar39 * 8;\n              iVar29 = *unaff_s4 + unaff_s8;\n              if ((*(uint *)(iVar29 + 4) & 0x800) == 0) {\nLAB_0004d464:\n                iVar29 = FUN_00047bf8(param_1,iVar29,puVar36);\n                if (iVar29 != 0) {\n                  iVar29 = *(int *)(*param_2 + (int)unaff_s7);\n                  if (iVar29 != 0) {\n                    param_3 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc);\n                    iVar29 = 1;\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                }\n              }\n              else {\n                puVar35 = (undefined4 *)param_1[0x15];\n                uVar6 = param_2[3];\n                param_3 = puVar39;\n                param_4 = param_1;\n                local_80 = puVar36;\n                iVar29 = FUN_0004b150(*puVar35,puVar35 + 0x20);\n                if (iVar29 < 1) {\n                  if (iVar29 == 0) {\n                    iVar29 = *unaff_s4;\n                    goto LAB_0004d460;\n                  }\n                }\n                else if ((int)puVar36 + iVar29 <= (int)uVar6) {\n                  iVar30 = *(int *)(*param_2 + ((int)puVar36 + iVar29) * 4);\n                  if (iVar30 != 0) {\n                    param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                  iVar29 = *unaff_s4;\nLAB_0004d460:\n                  iVar29 = iVar29 + unaff_s8;\n                  goto LAB_0004d464;\n                }\nLAB_0004d4b4:\n                if (param_2[5] != 0) {\n                  local_80 = (uint *)((int)puVar36 + iVar29);\n                  param_3 = param_2 + 6;\n                  param_4 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                  local_7c = puVar39;\n                  local_78 = puVar36;\n                  iVar29 = (*pcVar7)(param_1,param_2 + 5);\n                  if (iVar29 != 0) goto LAB_0004d510;\n                }\n                puVar23 = puVar39;\n                iVar29 = (*pcVar8)(&local_38);\n                if (iVar29 == 0) {\n                  uVar6 = 0xc;\n                  goto LAB_0004d62c;\n                }\n              }\nLAB_0004d510:\n              unaff_s5 = unaff_s5 + 1;\n              param_4 = &local_38;\n            } while (unaff_s5 < *(int *)(unaff_s6 + 0x14));\n          }\n          puVar23 = param_2;\n          param_3 = puVar36;\n          param_4 = &local_38;\n          uVar6 = (*pcVar45)(param_1);\n          if (uVar6 != 0) goto LAB_0004d62c;\n        }" { (expression_statement "unaff_s7 = (uint *)((int)puVar36 * 4);" (assignment_expression "unaff_s7 = (uint *)((int)puVar36 * 4)" identifier = (cast_expression "(uint *)((int)puVar36 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar36 * 4)" ( (binary_expression "(int)puVar36 * 4" (cast_expression "(int)puVar36" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (if_statement "if (*(int *)(*param_2 + (int)unaff_s7) == 0) {\n            local_64 = local_64 + 1;\n            if ((int)param_1[0x1e] < local_64) goto LAB_0004d6a0;\n          }\n          else {\n            local_64 = 0;\n            if ((int)param_1[0x1e] < 0) {\nLAB_0004d6a0:\n              puVar23 = (uint *)0x0;\n              param_3 = unaff_s7;\n              (*(code *)PTR_memset_00075ad4)();\n              (*(code *)PTR_free_00075bfc)(local_30);\n              uVar6 = 0;\n              goto LAB_0004d644;\n            }\n          }" if (parenthesized_expression "(*(int *)(*param_2 + (int)unaff_s7) == 0)" ( (binary_expression "*(int *)(*param_2 + (int)unaff_s7) == 0" (pointer_expression "*(int *)(*param_2 + (int)unaff_s7)" * (cast_expression "(int *)(*param_2 + (int)unaff_s7)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_2 + (int)unaff_s7)" ( (binary_expression "*param_2 + (int)unaff_s7" (pointer_expression "*param_2" * identifier) + (cast_expression "(int)unaff_s7" ( (type_descriptor "int" primitive_type) ) identifier)) )))) == number_literal) )) (compound_statement "{\n            local_64 = local_64 + 1;\n            if ((int)param_1[0x1e] < local_64) goto LAB_0004d6a0;\n          }" { (expression_statement "local_64 = local_64 + 1;" (assignment_expression "local_64 = local_64 + 1" identifier = (binary_expression "local_64 + 1" identifier + number_literal)) ;) (if_statement "if ((int)param_1[0x1e] < local_64) goto LAB_0004d6a0;" if (parenthesized_expression "((int)param_1[0x1e] < local_64)" ( (binary_expression "(int)param_1[0x1e] < local_64" (cast_expression "(int)param_1[0x1e]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[0x1e]" identifier [ number_literal ])) < identifier) )) (goto_statement "goto LAB_0004d6a0;" goto statement_identifier ;)) }) (else_clause "else {\n            local_64 = 0;\n            if ((int)param_1[0x1e] < 0) {\nLAB_0004d6a0:\n              puVar23 = (uint *)0x0;\n              param_3 = unaff_s7;\n              (*(code *)PTR_memset_00075ad4)();\n              (*(code *)PTR_free_00075bfc)(local_30);\n              uVar6 = 0;\n              goto LAB_0004d644;\n            }\n          }" else (compound_statement "{\n            local_64 = 0;\n            if ((int)param_1[0x1e] < 0) {\nLAB_0004d6a0:\n              puVar23 = (uint *)0x0;\n              param_3 = unaff_s7;\n              (*(code *)PTR_memset_00075ad4)();\n              (*(code *)PTR_free_00075bfc)(local_30);\n              uVar6 = 0;\n              goto LAB_0004d644;\n            }\n          }" { (expression_statement "local_64 = 0;" (assignment_expression "local_64 = 0" identifier = number_literal) ;) (if_statement "if ((int)param_1[0x1e] < 0) {\nLAB_0004d6a0:\n              puVar23 = (uint *)0x0;\n              param_3 = unaff_s7;\n              (*(code *)PTR_memset_00075ad4)();\n              (*(code *)PTR_free_00075bfc)(local_30);\n              uVar6 = 0;\n              goto LAB_0004d644;\n            }" if (parenthesized_expression "((int)param_1[0x1e] < 0)" ( (binary_expression "(int)param_1[0x1e] < 0" (cast_expression "(int)param_1[0x1e]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[0x1e]" identifier [ number_literal ])) < number_literal) )) (compound_statement "{\nLAB_0004d6a0:\n              puVar23 = (uint *)0x0;\n              param_3 = unaff_s7;\n              (*(code *)PTR_memset_00075ad4)();\n              (*(code *)PTR_free_00075bfc)(local_30);\n              uVar6 = 0;\n              goto LAB_0004d644;\n            }" { (labeled_statement "LAB_0004d6a0:\n              puVar23 = (uint *)0x0;" statement_identifier : (expression_statement "puVar23 = (uint *)0x0;" (assignment_expression "puVar23 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "param_3 = unaff_s7;" (assignment_expression "param_3 = unaff_s7" identifier = identifier) ;) (expression_statement "(*(code *)PTR_memset_00075ad4)();" (call_expression "(*(code *)PTR_memset_00075ad4)()" (parenthesized_expression "(*(code *)PTR_memset_00075ad4)" ( (pointer_expression "*(code *)PTR_memset_00075ad4" * (cast_expression "(code *)PTR_memset_00075ad4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "(*(code *)PTR_free_00075bfc)(local_30);" (call_expression "(*(code *)PTR_free_00075bfc)(local_30)" (parenthesized_expression "(*(code *)PTR_free_00075bfc)" ( (pointer_expression "*(code *)PTR_free_00075bfc" * (cast_expression "(code *)PTR_free_00075bfc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_30)" ( identifier ))) ;) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0004d644;" goto statement_identifier ;) })) }))) (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" identifier = number_literal) ;) (expression_statement "unaff_s6 = *(int *)((int)unaff_s7 + (param_1[0x19] - 4));" (assignment_expression "unaff_s6 = *(int *)((int)unaff_s7 + (param_1[0x19] - 4))" identifier = (pointer_expression "*(int *)((int)unaff_s7 + (param_1[0x19] - 4))" * (cast_expression "(int *)((int)unaff_s7 + (param_1[0x19] - 4))" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s7 + (param_1[0x19] - 4))" ( (binary_expression "(int)unaff_s7 + (param_1[0x19] - 4)" (cast_expression "(int)unaff_s7" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(param_1[0x19] - 4)" ( (binary_expression "param_1[0x19] - 4" (subscript_expression "param_1[0x19]" identifier [ number_literal ]) - number_literal) ))) ))))) ;) (expression_statement "puVar36 = (uint *)((int)puVar36 + -1);" (assignment_expression "puVar36 = (uint *)((int)puVar36 + -1)" identifier = (cast_expression "(uint *)((int)puVar36 + -1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar36 + -1)" ( (binary_expression "(int)puVar36 + -1" (cast_expression "(int)puVar36" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if ((unaff_s6 != 0) && (unaff_s4 = (int *)param_1[0x15], 0 < *(int *)(unaff_s6 + 0x14))) {\n            unaff_s5 = 0;\n            do {\n              puVar39 = *(uint **)(*(int *)(unaff_s6 + 0x18) + unaff_s5 * 4);\n              unaff_s8 = (int)puVar39 * 8;\n              iVar29 = *unaff_s4 + unaff_s8;\n              if ((*(uint *)(iVar29 + 4) & 0x800) == 0) {\nLAB_0004d464:\n                iVar29 = FUN_00047bf8(param_1,iVar29,puVar36);\n                if (iVar29 != 0) {\n                  iVar29 = *(int *)(*param_2 + (int)unaff_s7);\n                  if (iVar29 != 0) {\n                    param_3 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc);\n                    iVar29 = 1;\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                }\n              }\n              else {\n                puVar35 = (undefined4 *)param_1[0x15];\n                uVar6 = param_2[3];\n                param_3 = puVar39;\n                param_4 = param_1;\n                local_80 = puVar36;\n                iVar29 = FUN_0004b150(*puVar35,puVar35 + 0x20);\n                if (iVar29 < 1) {\n                  if (iVar29 == 0) {\n                    iVar29 = *unaff_s4;\n                    goto LAB_0004d460;\n                  }\n                }\n                else if ((int)puVar36 + iVar29 <= (int)uVar6) {\n                  iVar30 = *(int *)(*param_2 + ((int)puVar36 + iVar29) * 4);\n                  if (iVar30 != 0) {\n                    param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                  iVar29 = *unaff_s4;\nLAB_0004d460:\n                  iVar29 = iVar29 + unaff_s8;\n                  goto LAB_0004d464;\n                }\nLAB_0004d4b4:\n                if (param_2[5] != 0) {\n                  local_80 = (uint *)((int)puVar36 + iVar29);\n                  param_3 = param_2 + 6;\n                  param_4 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                  local_7c = puVar39;\n                  local_78 = puVar36;\n                  iVar29 = (*pcVar7)(param_1,param_2 + 5);\n                  if (iVar29 != 0) goto LAB_0004d510;\n                }\n                puVar23 = puVar39;\n                iVar29 = (*pcVar8)(&local_38);\n                if (iVar29 == 0) {\n                  uVar6 = 0xc;\n                  goto LAB_0004d62c;\n                }\n              }\nLAB_0004d510:\n              unaff_s5 = unaff_s5 + 1;\n              param_4 = &local_38;\n            } while (unaff_s5 < *(int *)(unaff_s6 + 0x14));\n          }" if (parenthesized_expression "((unaff_s6 != 0) && (unaff_s4 = (int *)param_1[0x15], 0 < *(int *)(unaff_s6 + 0x14)))" ( (binary_expression "(unaff_s6 != 0) && (unaff_s4 = (int *)param_1[0x15], 0 < *(int *)(unaff_s6 + 0x14))" (parenthesized_expression "(unaff_s6 != 0)" ( (binary_expression "unaff_s6 != 0" identifier != number_literal) )) && (parenthesized_expression "(unaff_s4 = (int *)param_1[0x15], 0 < *(int *)(unaff_s6 + 0x14))" ( (comma_expression "unaff_s4 = (int *)param_1[0x15], 0 < *(int *)(unaff_s6 + 0x14)" (assignment_expression "unaff_s4 = (int *)param_1[0x15]" identifier = (cast_expression "(int *)param_1[0x15]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x15]" identifier [ number_literal ]))) , (binary_expression "0 < *(int *)(unaff_s6 + 0x14)" number_literal < (pointer_expression "*(int *)(unaff_s6 + 0x14)" * (cast_expression "(int *)(unaff_s6 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s6 + 0x14)" ( (binary_expression "unaff_s6 + 0x14" identifier + number_literal) )))))) ))) )) (compound_statement "{\n            unaff_s5 = 0;\n            do {\n              puVar39 = *(uint **)(*(int *)(unaff_s6 + 0x18) + unaff_s5 * 4);\n              unaff_s8 = (int)puVar39 * 8;\n              iVar29 = *unaff_s4 + unaff_s8;\n              if ((*(uint *)(iVar29 + 4) & 0x800) == 0) {\nLAB_0004d464:\n                iVar29 = FUN_00047bf8(param_1,iVar29,puVar36);\n                if (iVar29 != 0) {\n                  iVar29 = *(int *)(*param_2 + (int)unaff_s7);\n                  if (iVar29 != 0) {\n                    param_3 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc);\n                    iVar29 = 1;\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                }\n              }\n              else {\n                puVar35 = (undefined4 *)param_1[0x15];\n                uVar6 = param_2[3];\n                param_3 = puVar39;\n                param_4 = param_1;\n                local_80 = puVar36;\n                iVar29 = FUN_0004b150(*puVar35,puVar35 + 0x20);\n                if (iVar29 < 1) {\n                  if (iVar29 == 0) {\n                    iVar29 = *unaff_s4;\n                    goto LAB_0004d460;\n                  }\n                }\n                else if ((int)puVar36 + iVar29 <= (int)uVar6) {\n                  iVar30 = *(int *)(*param_2 + ((int)puVar36 + iVar29) * 4);\n                  if (iVar30 != 0) {\n                    param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                  iVar29 = *unaff_s4;\nLAB_0004d460:\n                  iVar29 = iVar29 + unaff_s8;\n                  goto LAB_0004d464;\n                }\nLAB_0004d4b4:\n                if (param_2[5] != 0) {\n                  local_80 = (uint *)((int)puVar36 + iVar29);\n                  param_3 = param_2 + 6;\n                  param_4 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                  local_7c = puVar39;\n                  local_78 = puVar36;\n                  iVar29 = (*pcVar7)(param_1,param_2 + 5);\n                  if (iVar29 != 0) goto LAB_0004d510;\n                }\n                puVar23 = puVar39;\n                iVar29 = (*pcVar8)(&local_38);\n                if (iVar29 == 0) {\n                  uVar6 = 0xc;\n                  goto LAB_0004d62c;\n                }\n              }\nLAB_0004d510:\n              unaff_s5 = unaff_s5 + 1;\n              param_4 = &local_38;\n            } while (unaff_s5 < *(int *)(unaff_s6 + 0x14));\n          }" { (expression_statement "unaff_s5 = 0;" (assignment_expression "unaff_s5 = 0" identifier = number_literal) ;) (do_statement "do {\n              puVar39 = *(uint **)(*(int *)(unaff_s6 + 0x18) + unaff_s5 * 4);\n              unaff_s8 = (int)puVar39 * 8;\n              iVar29 = *unaff_s4 + unaff_s8;\n              if ((*(uint *)(iVar29 + 4) & 0x800) == 0) {\nLAB_0004d464:\n                iVar29 = FUN_00047bf8(param_1,iVar29,puVar36);\n                if (iVar29 != 0) {\n                  iVar29 = *(int *)(*param_2 + (int)unaff_s7);\n                  if (iVar29 != 0) {\n                    param_3 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc);\n                    iVar29 = 1;\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                }\n              }\n              else {\n                puVar35 = (undefined4 *)param_1[0x15];\n                uVar6 = param_2[3];\n                param_3 = puVar39;\n                param_4 = param_1;\n                local_80 = puVar36;\n                iVar29 = FUN_0004b150(*puVar35,puVar35 + 0x20);\n                if (iVar29 < 1) {\n                  if (iVar29 == 0) {\n                    iVar29 = *unaff_s4;\n                    goto LAB_0004d460;\n                  }\n                }\n                else if ((int)puVar36 + iVar29 <= (int)uVar6) {\n                  iVar30 = *(int *)(*param_2 + ((int)puVar36 + iVar29) * 4);\n                  if (iVar30 != 0) {\n                    param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                  iVar29 = *unaff_s4;\nLAB_0004d460:\n                  iVar29 = iVar29 + unaff_s8;\n                  goto LAB_0004d464;\n                }\nLAB_0004d4b4:\n                if (param_2[5] != 0) {\n                  local_80 = (uint *)((int)puVar36 + iVar29);\n                  param_3 = param_2 + 6;\n                  param_4 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                  local_7c = puVar39;\n                  local_78 = puVar36;\n                  iVar29 = (*pcVar7)(param_1,param_2 + 5);\n                  if (iVar29 != 0) goto LAB_0004d510;\n                }\n                puVar23 = puVar39;\n                iVar29 = (*pcVar8)(&local_38);\n                if (iVar29 == 0) {\n                  uVar6 = 0xc;\n                  goto LAB_0004d62c;\n                }\n              }\nLAB_0004d510:\n              unaff_s5 = unaff_s5 + 1;\n              param_4 = &local_38;\n            } while (unaff_s5 < *(int *)(unaff_s6 + 0x14));" do (compound_statement "{\n              puVar39 = *(uint **)(*(int *)(unaff_s6 + 0x18) + unaff_s5 * 4);\n              unaff_s8 = (int)puVar39 * 8;\n              iVar29 = *unaff_s4 + unaff_s8;\n              if ((*(uint *)(iVar29 + 4) & 0x800) == 0) {\nLAB_0004d464:\n                iVar29 = FUN_00047bf8(param_1,iVar29,puVar36);\n                if (iVar29 != 0) {\n                  iVar29 = *(int *)(*param_2 + (int)unaff_s7);\n                  if (iVar29 != 0) {\n                    param_3 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc);\n                    iVar29 = 1;\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                }\n              }\n              else {\n                puVar35 = (undefined4 *)param_1[0x15];\n                uVar6 = param_2[3];\n                param_3 = puVar39;\n                param_4 = param_1;\n                local_80 = puVar36;\n                iVar29 = FUN_0004b150(*puVar35,puVar35 + 0x20);\n                if (iVar29 < 1) {\n                  if (iVar29 == 0) {\n                    iVar29 = *unaff_s4;\n                    goto LAB_0004d460;\n                  }\n                }\n                else if ((int)puVar36 + iVar29 <= (int)uVar6) {\n                  iVar30 = *(int *)(*param_2 + ((int)puVar36 + iVar29) * 4);\n                  if (iVar30 != 0) {\n                    param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                  iVar29 = *unaff_s4;\nLAB_0004d460:\n                  iVar29 = iVar29 + unaff_s8;\n                  goto LAB_0004d464;\n                }\nLAB_0004d4b4:\n                if (param_2[5] != 0) {\n                  local_80 = (uint *)((int)puVar36 + iVar29);\n                  param_3 = param_2 + 6;\n                  param_4 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                  local_7c = puVar39;\n                  local_78 = puVar36;\n                  iVar29 = (*pcVar7)(param_1,param_2 + 5);\n                  if (iVar29 != 0) goto LAB_0004d510;\n                }\n                puVar23 = puVar39;\n                iVar29 = (*pcVar8)(&local_38);\n                if (iVar29 == 0) {\n                  uVar6 = 0xc;\n                  goto LAB_0004d62c;\n                }\n              }\nLAB_0004d510:\n              unaff_s5 = unaff_s5 + 1;\n              param_4 = &local_38;\n            }" { (expression_statement "puVar39 = *(uint **)(*(int *)(unaff_s6 + 0x18) + unaff_s5 * 4);" (assignment_expression "puVar39 = *(uint **)(*(int *)(unaff_s6 + 0x18) + unaff_s5 * 4)" identifier = (pointer_expression "*(uint **)(*(int *)(unaff_s6 + 0x18) + unaff_s5 * 4)" * (cast_expression "(uint **)(*(int *)(unaff_s6 + 0x18) + unaff_s5 * 4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(unaff_s6 + 0x18) + unaff_s5 * 4)" ( (binary_expression "*(int *)(unaff_s6 + 0x18) + unaff_s5 * 4" (pointer_expression "*(int *)(unaff_s6 + 0x18)" * (cast_expression "(int *)(unaff_s6 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s6 + 0x18)" ( (binary_expression "unaff_s6 + 0x18" identifier + number_literal) )))) + (binary_expression "unaff_s5 * 4" identifier * number_literal)) ))))) ;) (expression_statement "unaff_s8 = (int)puVar39 * 8;" (assignment_expression "unaff_s8 = (int)puVar39 * 8" identifier = (binary_expression "(int)puVar39 * 8" (cast_expression "(int)puVar39" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (expression_statement "iVar29 = *unaff_s4 + unaff_s8;" (assignment_expression "iVar29 = *unaff_s4 + unaff_s8" identifier = (binary_expression "*unaff_s4 + unaff_s8" (pointer_expression "*unaff_s4" * identifier) + identifier)) ;) (if_statement "if ((*(uint *)(iVar29 + 4) & 0x800) == 0) {\nLAB_0004d464:\n                iVar29 = FUN_00047bf8(param_1,iVar29,puVar36);\n                if (iVar29 != 0) {\n                  iVar29 = *(int *)(*param_2 + (int)unaff_s7);\n                  if (iVar29 != 0) {\n                    param_3 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc);\n                    iVar29 = 1;\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                }\n              }\n              else {\n                puVar35 = (undefined4 *)param_1[0x15];\n                uVar6 = param_2[3];\n                param_3 = puVar39;\n                param_4 = param_1;\n                local_80 = puVar36;\n                iVar29 = FUN_0004b150(*puVar35,puVar35 + 0x20);\n                if (iVar29 < 1) {\n                  if (iVar29 == 0) {\n                    iVar29 = *unaff_s4;\n                    goto LAB_0004d460;\n                  }\n                }\n                else if ((int)puVar36 + iVar29 <= (int)uVar6) {\n                  iVar30 = *(int *)(*param_2 + ((int)puVar36 + iVar29) * 4);\n                  if (iVar30 != 0) {\n                    param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                  iVar29 = *unaff_s4;\nLAB_0004d460:\n                  iVar29 = iVar29 + unaff_s8;\n                  goto LAB_0004d464;\n                }\nLAB_0004d4b4:\n                if (param_2[5] != 0) {\n                  local_80 = (uint *)((int)puVar36 + iVar29);\n                  param_3 = param_2 + 6;\n                  param_4 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                  local_7c = puVar39;\n                  local_78 = puVar36;\n                  iVar29 = (*pcVar7)(param_1,param_2 + 5);\n                  if (iVar29 != 0) goto LAB_0004d510;\n                }\n                puVar23 = puVar39;\n                iVar29 = (*pcVar8)(&local_38);\n                if (iVar29 == 0) {\n                  uVar6 = 0xc;\n                  goto LAB_0004d62c;\n                }\n              }" if (parenthesized_expression "((*(uint *)(iVar29 + 4) & 0x800) == 0)" ( (binary_expression "(*(uint *)(iVar29 + 4) & 0x800) == 0" (parenthesized_expression "(*(uint *)(iVar29 + 4) & 0x800)" ( (binary_expression "*(uint *)(iVar29 + 4) & 0x800" (pointer_expression "*(uint *)(iVar29 + 4)" * (cast_expression "(uint *)(iVar29 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar29 + 4)" ( (binary_expression "iVar29 + 4" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_0004d464:\n                iVar29 = FUN_00047bf8(param_1,iVar29,puVar36);\n                if (iVar29 != 0) {\n                  iVar29 = *(int *)(*param_2 + (int)unaff_s7);\n                  if (iVar29 != 0) {\n                    param_3 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc);\n                    iVar29 = 1;\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                }\n              }" { (labeled_statement "LAB_0004d464:\n                iVar29 = FUN_00047bf8(param_1,iVar29,puVar36);" statement_identifier : (expression_statement "iVar29 = FUN_00047bf8(param_1,iVar29,puVar36);" (assignment_expression "iVar29 = FUN_00047bf8(param_1,iVar29,puVar36)" identifier = (call_expression "FUN_00047bf8(param_1,iVar29,puVar36)" identifier (argument_list "(param_1,iVar29,puVar36)" ( identifier , identifier , identifier )))) ;)) (if_statement "if (iVar29 != 0) {\n                  iVar29 = *(int *)(*param_2 + (int)unaff_s7);\n                  if (iVar29 != 0) {\n                    param_3 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc);\n                    iVar29 = 1;\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                }" if (parenthesized_expression "(iVar29 != 0)" ( (binary_expression "iVar29 != 0" identifier != number_literal) )) (compound_statement "{\n                  iVar29 = *(int *)(*param_2 + (int)unaff_s7);\n                  if (iVar29 != 0) {\n                    param_3 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc);\n                    iVar29 = 1;\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                }" { (expression_statement "iVar29 = *(int *)(*param_2 + (int)unaff_s7);" (assignment_expression "iVar29 = *(int *)(*param_2 + (int)unaff_s7)" identifier = (pointer_expression "*(int *)(*param_2 + (int)unaff_s7)" * (cast_expression "(int *)(*param_2 + (int)unaff_s7)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_2 + (int)unaff_s7)" ( (binary_expression "*param_2 + (int)unaff_s7" (pointer_expression "*param_2" * identifier) + (cast_expression "(int)unaff_s7" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (if_statement "if (iVar29 != 0) {\n                    param_3 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc);\n                    iVar29 = 1;\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }" if (parenthesized_expression "(iVar29 != 0)" ( (binary_expression "iVar29 != 0" identifier != number_literal) )) (compound_statement "{\n                    param_3 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc);\n                    iVar29 = 1;\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }" { (expression_statement "param_3 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);" (assignment_expression "param_3 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4)" identifier = (pointer_expression "*(uint **)(unaff_s4[3] + (int)puVar39 * 4)" * (cast_expression "(uint **)(unaff_s4[3] + (int)puVar39 * 4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_s4[3] + (int)puVar39 * 4)" ( (binary_expression "unaff_s4[3] + (int)puVar39 * 4" (subscript_expression "unaff_s4[3]" identifier [ number_literal ]) + (binary_expression "(int)puVar39 * 4" (cast_expression "(int)puVar39" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))))) ;) (expression_statement "iVar30 = (*pcVar9)(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc);" (assignment_expression "iVar30 = (*pcVar9)(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc)" identifier = (call_expression "(*pcVar9)(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc)" (parenthesized_expression "(*pcVar9)" ( (pointer_expression "*pcVar9" * identifier) )) (argument_list "(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc)" ( (pointer_expression "*(undefined4 *)(iVar29 + 8)" * (cast_expression "(undefined4 *)(iVar29 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar29 + 8)" ( (binary_expression "iVar29 + 8" identifier + number_literal) )))) , (binary_expression "iVar29 + 0xc" identifier + number_literal) )))) ;) (expression_statement "iVar29 = 1;" (assignment_expression "iVar29 = 1" identifier = number_literal) ;) (if_statement "if (iVar30 != 0) goto LAB_0004d4b4;" if (parenthesized_expression "(iVar30 != 0)" ( (binary_expression "iVar30 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0004d4b4;" goto statement_identifier ;)) })) })) }) (else_clause "else {\n                puVar35 = (undefined4 *)param_1[0x15];\n                uVar6 = param_2[3];\n                param_3 = puVar39;\n                param_4 = param_1;\n                local_80 = puVar36;\n                iVar29 = FUN_0004b150(*puVar35,puVar35 + 0x20);\n                if (iVar29 < 1) {\n                  if (iVar29 == 0) {\n                    iVar29 = *unaff_s4;\n                    goto LAB_0004d460;\n                  }\n                }\n                else if ((int)puVar36 + iVar29 <= (int)uVar6) {\n                  iVar30 = *(int *)(*param_2 + ((int)puVar36 + iVar29) * 4);\n                  if (iVar30 != 0) {\n                    param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                  iVar29 = *unaff_s4;\nLAB_0004d460:\n                  iVar29 = iVar29 + unaff_s8;\n                  goto LAB_0004d464;\n                }\nLAB_0004d4b4:\n                if (param_2[5] != 0) {\n                  local_80 = (uint *)((int)puVar36 + iVar29);\n                  param_3 = param_2 + 6;\n                  param_4 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                  local_7c = puVar39;\n                  local_78 = puVar36;\n                  iVar29 = (*pcVar7)(param_1,param_2 + 5);\n                  if (iVar29 != 0) goto LAB_0004d510;\n                }\n                puVar23 = puVar39;\n                iVar29 = (*pcVar8)(&local_38);\n                if (iVar29 == 0) {\n                  uVar6 = 0xc;\n                  goto LAB_0004d62c;\n                }\n              }" else (compound_statement "{\n                puVar35 = (undefined4 *)param_1[0x15];\n                uVar6 = param_2[3];\n                param_3 = puVar39;\n                param_4 = param_1;\n                local_80 = puVar36;\n                iVar29 = FUN_0004b150(*puVar35,puVar35 + 0x20);\n                if (iVar29 < 1) {\n                  if (iVar29 == 0) {\n                    iVar29 = *unaff_s4;\n                    goto LAB_0004d460;\n                  }\n                }\n                else if ((int)puVar36 + iVar29 <= (int)uVar6) {\n                  iVar30 = *(int *)(*param_2 + ((int)puVar36 + iVar29) * 4);\n                  if (iVar30 != 0) {\n                    param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                  iVar29 = *unaff_s4;\nLAB_0004d460:\n                  iVar29 = iVar29 + unaff_s8;\n                  goto LAB_0004d464;\n                }\nLAB_0004d4b4:\n                if (param_2[5] != 0) {\n                  local_80 = (uint *)((int)puVar36 + iVar29);\n                  param_3 = param_2 + 6;\n                  param_4 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                  local_7c = puVar39;\n                  local_78 = puVar36;\n                  iVar29 = (*pcVar7)(param_1,param_2 + 5);\n                  if (iVar29 != 0) goto LAB_0004d510;\n                }\n                puVar23 = puVar39;\n                iVar29 = (*pcVar8)(&local_38);\n                if (iVar29 == 0) {\n                  uVar6 = 0xc;\n                  goto LAB_0004d62c;\n                }\n              }" { (expression_statement "puVar35 = (undefined4 *)param_1[0x15];" (assignment_expression "puVar35 = (undefined4 *)param_1[0x15]" identifier = (cast_expression "(undefined4 *)param_1[0x15]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x15]" identifier [ number_literal ]))) ;) (expression_statement "uVar6 = param_2[3];" (assignment_expression "uVar6 = param_2[3]" identifier = (subscript_expression "param_2[3]" identifier [ number_literal ])) ;) (expression_statement "param_3 = puVar39;" (assignment_expression "param_3 = puVar39" identifier = identifier) ;) (expression_statement "param_4 = param_1;" (assignment_expression "param_4 = param_1" identifier = identifier) ;) (expression_statement "local_80 = puVar36;" (assignment_expression "local_80 = puVar36" identifier = identifier) ;) (expression_statement "iVar29 = FUN_0004b150(*puVar35,puVar35 + 0x20);" (assignment_expression "iVar29 = FUN_0004b150(*puVar35,puVar35 + 0x20)" identifier = (call_expression "FUN_0004b150(*puVar35,puVar35 + 0x20)" identifier (argument_list "(*puVar35,puVar35 + 0x20)" ( (pointer_expression "*puVar35" * identifier) , (binary_expression "puVar35 + 0x20" identifier + number_literal) )))) ;) (if_statement "if (iVar29 < 1) {\n                  if (iVar29 == 0) {\n                    iVar29 = *unaff_s4;\n                    goto LAB_0004d460;\n                  }\n                }\n                else if ((int)puVar36 + iVar29 <= (int)uVar6) {\n                  iVar30 = *(int *)(*param_2 + ((int)puVar36 + iVar29) * 4);\n                  if (iVar30 != 0) {\n                    param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                  iVar29 = *unaff_s4;\nLAB_0004d460:\n                  iVar29 = iVar29 + unaff_s8;\n                  goto LAB_0004d464;\n                }" if (parenthesized_expression "(iVar29 < 1)" ( (binary_expression "iVar29 < 1" identifier < number_literal) )) (compound_statement "{\n                  if (iVar29 == 0) {\n                    iVar29 = *unaff_s4;\n                    goto LAB_0004d460;\n                  }\n                }" { (if_statement "if (iVar29 == 0) {\n                    iVar29 = *unaff_s4;\n                    goto LAB_0004d460;\n                  }" if (parenthesized_expression "(iVar29 == 0)" ( (binary_expression "iVar29 == 0" identifier == number_literal) )) (compound_statement "{\n                    iVar29 = *unaff_s4;\n                    goto LAB_0004d460;\n                  }" { (expression_statement "iVar29 = *unaff_s4;" (assignment_expression "iVar29 = *unaff_s4" identifier = (pointer_expression "*unaff_s4" * identifier)) ;) (goto_statement "goto LAB_0004d460;" goto statement_identifier ;) })) }) (else_clause "else if ((int)puVar36 + iVar29 <= (int)uVar6) {\n                  iVar30 = *(int *)(*param_2 + ((int)puVar36 + iVar29) * 4);\n                  if (iVar30 != 0) {\n                    param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                  iVar29 = *unaff_s4;\nLAB_0004d460:\n                  iVar29 = iVar29 + unaff_s8;\n                  goto LAB_0004d464;\n                }" else (if_statement "if ((int)puVar36 + iVar29 <= (int)uVar6) {\n                  iVar30 = *(int *)(*param_2 + ((int)puVar36 + iVar29) * 4);\n                  if (iVar30 != 0) {\n                    param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                  iVar29 = *unaff_s4;\nLAB_0004d460:\n                  iVar29 = iVar29 + unaff_s8;\n                  goto LAB_0004d464;\n                }" if (parenthesized_expression "((int)puVar36 + iVar29 <= (int)uVar6)" ( (binary_expression "(int)puVar36 + iVar29 <= (int)uVar6" (binary_expression "(int)puVar36 + iVar29" (cast_expression "(int)puVar36" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) <= (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  iVar30 = *(int *)(*param_2 + ((int)puVar36 + iVar29) * 4);\n                  if (iVar30 != 0) {\n                    param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                  iVar29 = *unaff_s4;\nLAB_0004d460:\n                  iVar29 = iVar29 + unaff_s8;\n                  goto LAB_0004d464;\n                }" { (expression_statement "iVar30 = *(int *)(*param_2 + ((int)puVar36 + iVar29) * 4);" (assignment_expression "iVar30 = *(int *)(*param_2 + ((int)puVar36 + iVar29) * 4)" identifier = (pointer_expression "*(int *)(*param_2 + ((int)puVar36 + iVar29) * 4)" * (cast_expression "(int *)(*param_2 + ((int)puVar36 + iVar29) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_2 + ((int)puVar36 + iVar29) * 4)" ( (binary_expression "*param_2 + ((int)puVar36 + iVar29) * 4" (pointer_expression "*param_2" * identifier) + (binary_expression "((int)puVar36 + iVar29) * 4" (parenthesized_expression "((int)puVar36 + iVar29)" ( (binary_expression "(int)puVar36 + iVar29" (cast_expression "(int)puVar36" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )) * number_literal)) ))))) ;) (if_statement "if (iVar30 != 0) {\n                    param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }" if (parenthesized_expression "(iVar30 != 0)" ( (binary_expression "iVar30 != 0" identifier != number_literal) )) (compound_statement "{\n                    param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }" { (expression_statement "param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);" (assignment_expression "param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4)" identifier = (pointer_expression "*(uint **)(puVar35[3] + (int)puVar39 * 4)" * (cast_expression "(uint **)(puVar35[3] + (int)puVar39 * 4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35[3] + (int)puVar39 * 4)" ( (binary_expression "puVar35[3] + (int)puVar39 * 4" (subscript_expression "puVar35[3]" identifier [ number_literal ]) + (binary_expression "(int)puVar39 * 4" (cast_expression "(int)puVar39" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))))) ;) (expression_statement "iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);" (assignment_expression "iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc)" identifier = (call_expression "(*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc)" (parenthesized_expression "(*pcVar9)" ( (pointer_expression "*pcVar9" * identifier) )) (argument_list "(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc)" ( (pointer_expression "*(undefined4 *)(iVar30 + 8)" * (cast_expression "(undefined4 *)(iVar30 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar30 + 8)" ( (binary_expression "iVar30 + 8" identifier + number_literal) )))) , (binary_expression "iVar30 + 0xc" identifier + number_literal) )))) ;) (if_statement "if (iVar30 != 0) goto LAB_0004d4b4;" if (parenthesized_expression "(iVar30 != 0)" ( (binary_expression "iVar30 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0004d4b4;" goto statement_identifier ;)) })) (expression_statement "iVar29 = *unaff_s4;" (assignment_expression "iVar29 = *unaff_s4" identifier = (pointer_expression "*unaff_s4" * identifier)) ;) (labeled_statement "LAB_0004d460:\n                  iVar29 = iVar29 + unaff_s8;" statement_identifier : (expression_statement "iVar29 = iVar29 + unaff_s8;" (assignment_expression "iVar29 = iVar29 + unaff_s8" identifier = (binary_expression "iVar29 + unaff_s8" identifier + identifier)) ;)) (goto_statement "goto LAB_0004d464;" goto statement_identifier ;) })))) (labeled_statement "LAB_0004d4b4:\n                if (param_2[5] != 0) {\n                  local_80 = (uint *)((int)puVar36 + iVar29);\n                  param_3 = param_2 + 6;\n                  param_4 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                  local_7c = puVar39;\n                  local_78 = puVar36;\n                  iVar29 = (*pcVar7)(param_1,param_2 + 5);\n                  if (iVar29 != 0) goto LAB_0004d510;\n                }" statement_identifier : (if_statement "if (param_2[5] != 0) {\n                  local_80 = (uint *)((int)puVar36 + iVar29);\n                  param_3 = param_2 + 6;\n                  param_4 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                  local_7c = puVar39;\n                  local_78 = puVar36;\n                  iVar29 = (*pcVar7)(param_1,param_2 + 5);\n                  if (iVar29 != 0) goto LAB_0004d510;\n                }" if (parenthesized_expression "(param_2[5] != 0)" ( (binary_expression "param_2[5] != 0" (subscript_expression "param_2[5]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n                  local_80 = (uint *)((int)puVar36 + iVar29);\n                  param_3 = param_2 + 6;\n                  param_4 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                  local_7c = puVar39;\n                  local_78 = puVar36;\n                  iVar29 = (*pcVar7)(param_1,param_2 + 5);\n                  if (iVar29 != 0) goto LAB_0004d510;\n                }" { (expression_statement "local_80 = (uint *)((int)puVar36 + iVar29);" (assignment_expression "local_80 = (uint *)((int)puVar36 + iVar29)" identifier = (cast_expression "(uint *)((int)puVar36 + iVar29)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar36 + iVar29)" ( (binary_expression "(int)puVar36 + iVar29" (cast_expression "(int)puVar36" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "param_3 = param_2 + 6;" (assignment_expression "param_3 = param_2 + 6" identifier = (binary_expression "param_2 + 6" identifier + number_literal)) ;) (expression_statement "param_4 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);" (assignment_expression "param_4 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4)" identifier = (pointer_expression "*(uint **)(unaff_s4[3] + (int)puVar39 * 4)" * (cast_expression "(uint **)(unaff_s4[3] + (int)puVar39 * 4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_s4[3] + (int)puVar39 * 4)" ( (binary_expression "unaff_s4[3] + (int)puVar39 * 4" (subscript_expression "unaff_s4[3]" identifier [ number_literal ]) + (binary_expression "(int)puVar39 * 4" (cast_expression "(int)puVar39" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))))) ;) (expression_statement "local_7c = puVar39;" (assignment_expression "local_7c = puVar39" identifier = identifier) ;) (expression_statement "local_78 = puVar36;" (assignment_expression "local_78 = puVar36" identifier = identifier) ;) (expression_statement "iVar29 = (*pcVar7)(param_1,param_2 + 5);" (assignment_expression "iVar29 = (*pcVar7)(param_1,param_2 + 5)" identifier = (call_expression "(*pcVar7)(param_1,param_2 + 5)" (parenthesized_expression "(*pcVar7)" ( (pointer_expression "*pcVar7" * identifier) )) (argument_list "(param_1,param_2 + 5)" ( identifier , (binary_expression "param_2 + 5" identifier + number_literal) )))) ;) (if_statement "if (iVar29 != 0) goto LAB_0004d510;" if (parenthesized_expression "(iVar29 != 0)" ( (binary_expression "iVar29 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0004d510;" goto statement_identifier ;)) }))) (expression_statement "puVar23 = puVar39;" (assignment_expression "puVar23 = puVar39" identifier = identifier) ;) (expression_statement "iVar29 = (*pcVar8)(&local_38);" (assignment_expression "iVar29 = (*pcVar8)(&local_38)" identifier = (call_expression "(*pcVar8)(&local_38)" (parenthesized_expression "(*pcVar8)" ( (pointer_expression "*pcVar8" * identifier) )) (argument_list "(&local_38)" ( (pointer_expression "&local_38" & identifier) )))) ;) (if_statement "if (iVar29 == 0) {\n                  uVar6 = 0xc;\n                  goto LAB_0004d62c;\n                }" if (parenthesized_expression "(iVar29 == 0)" ( (binary_expression "iVar29 == 0" identifier == number_literal) )) (compound_statement "{\n                  uVar6 = 0xc;\n                  goto LAB_0004d62c;\n                }" { (expression_statement "uVar6 = 0xc;" (assignment_expression "uVar6 = 0xc" identifier = number_literal) ;) (goto_statement "goto LAB_0004d62c;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_0004d510:\n              unaff_s5 = unaff_s5 + 1;" statement_identifier : (expression_statement "unaff_s5 = unaff_s5 + 1;" (assignment_expression "unaff_s5 = unaff_s5 + 1" identifier = (binary_expression "unaff_s5 + 1" identifier + number_literal)) ;)) (expression_statement "param_4 = &local_38;" (assignment_expression "param_4 = &local_38" identifier = (pointer_expression "&local_38" & identifier)) ;) }) while (parenthesized_expression "(unaff_s5 < *(int *)(unaff_s6 + 0x14))" ( (binary_expression "unaff_s5 < *(int *)(unaff_s6 + 0x14)" identifier < (pointer_expression "*(int *)(unaff_s6 + 0x14)" * (cast_expression "(int *)(unaff_s6 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s6 + 0x14)" ( (binary_expression "unaff_s6 + 0x14" identifier + number_literal) ))))) )) ;) })) (expression_statement "puVar23 = param_2;" (assignment_expression "puVar23 = param_2" identifier = identifier) ;) (expression_statement "param_3 = puVar36;" (assignment_expression "param_3 = puVar36" identifier = identifier) ;) (expression_statement "param_4 = &local_38;" (assignment_expression "param_4 = &local_38" identifier = (pointer_expression "&local_38" & identifier)) ;) (expression_statement "uVar6 = (*pcVar45)(param_1);" (assignment_expression "uVar6 = (*pcVar45)(param_1)" identifier = (call_expression "(*pcVar45)(param_1)" (parenthesized_expression "(*pcVar45)" ( (pointer_expression "*pcVar45" * identifier) )) (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (uVar6 != 0) goto LAB_0004d62c;" if (parenthesized_expression "(uVar6 != 0)" ( (binary_expression "uVar6 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0004d62c;" goto statement_identifier ;)) }) while (parenthesized_expression "(puVar36 != (uint *)0x0)" ( (binary_expression "puVar36 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) })) (labeled_statement "LAB_0004d62c:\n    (*(code *)PTR_free_00075bfc)(local_30);" statement_identifier : (expression_statement "(*(code *)PTR_free_00075bfc)(local_30);" (call_expression "(*(code *)PTR_free_00075bfc)(local_30)" (parenthesized_expression "(*(code *)PTR_free_00075bfc)" ( (pointer_expression "*(code *)PTR_free_00075bfc" * (cast_expression "(code *)PTR_free_00075bfc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_30)" ( identifier ))) ;)) }))) (labeled_statement "LAB_0004d644:\n  if (local_2c == *(uint ***)puVar46) {\n    return uVar6;\n  }" statement_identifier : (if_statement "if (local_2c == *(uint ***)puVar46) {\n    return uVar6;\n  }" if (parenthesized_expression "(local_2c == *(uint ***)puVar46)" ( (binary_expression "local_2c == *(uint ***)puVar46" identifier == (pointer_expression "*(uint ***)puVar46" * (cast_expression "(uint ***)puVar46" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier))) )) (compound_statement "{\n    return uVar6;\n  }" { (return_statement "return uVar6;" return identifier ;) }))) (expression_statement "pcVar45 = FUN_0004d6dc;" (assignment_expression "pcVar45 = FUN_0004d6dc" identifier = identifier) ;) (expression_statement "ppuVar24 = local_2c;" (assignment_expression "ppuVar24 = local_2c" identifier = identifier) ;) (expression_statement "puVar46 = PTR___stack_chk_fail_00075ba8;" (assignment_expression "puVar46 = PTR___stack_chk_fail_00075ba8" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_00075ba8)();" (call_expression "(*(code *)PTR___stack_chk_fail_00075ba8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00075ba8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00075ba8" * (cast_expression "(code *)PTR___stack_chk_fail_00075ba8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puVar32 = local_7c;" (assignment_expression "puVar32 = local_7c" identifier = identifier) ;) (expression_statement "puVar38 = local_80;" (assignment_expression "puVar38 = local_80" identifier = identifier) ;) (expression_statement "piVar10 = *(int **)(puVar46 + 0x2850c);" (assignment_expression "piVar10 = *(int **)(puVar46 + 0x2850c)" identifier = (pointer_expression "*(int **)(puVar46 + 0x2850c)" * (cast_expression "(int **)(puVar46 + 0x2850c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar46 + 0x2850c)" ( (binary_expression "puVar46 + 0x2850c" identifier + number_literal) ))))) ;) (expression_statement "iStack_bc = *piVar10;" (assignment_expression "iStack_bc = *piVar10" identifier = (pointer_expression "*piVar10" * identifier)) ;) (expression_statement "puVar43 = *ppuVar24;" (assignment_expression "puVar43 = *ppuVar24" identifier = (pointer_expression "*ppuVar24" * identifier)) ;) (expression_statement "puStack_b8 = puVar36;" (assignment_expression "puStack_b8 = puVar36" identifier = identifier) ;) (expression_statement "puStack_b4 = param_2;" (assignment_expression "puStack_b4 = param_2" identifier = identifier) ;) (expression_statement "puStack_b0 = param_1;" (assignment_expression "puStack_b0 = param_1" identifier = identifier) ;) (expression_statement "puStack_ac = puVar39;" (assignment_expression "puStack_ac = puVar39" identifier = identifier) ;) (expression_statement "piStack_a8 = unaff_s4;" (assignment_expression "piStack_a8 = unaff_s4" identifier = identifier) ;) (expression_statement "iStack_a4 = unaff_s5;" (assignment_expression "iStack_a4 = unaff_s5" identifier = identifier) ;) (expression_statement "iStack_a0 = unaff_s6;" (assignment_expression "iStack_a0 = unaff_s6" identifier = identifier) ;) (expression_statement "puStack_9c = unaff_s7;" (assignment_expression "puStack_9c = unaff_s7" identifier = identifier) ;) (expression_statement "iStack_98 = unaff_s8;" (assignment_expression "iStack_98 = unaff_s8" identifier = identifier) ;) (expression_statement "pcStack_94 = pcVar45;" (assignment_expression "pcStack_94 = pcVar45" identifier = identifier) ;) (expression_statement "puStack_88 = param_3;" (assignment_expression "puStack_88 = param_3" identifier = identifier) ;) (expression_statement "(**(code **)(puVar46 + 0x283f8))(&puStack_144,0,0x88);" (call_expression "(**(code **)(puVar46 + 0x283f8))(&puStack_144,0,0x88)" (parenthesized_expression "(**(code **)(puVar46 + 0x283f8))" ( (pointer_expression "**(code **)(puVar46 + 0x283f8)" * (pointer_expression "*(code **)(puVar46 + 0x283f8)" * (cast_expression "(code **)(puVar46 + 0x283f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar46 + 0x283f8)" ( (binary_expression "puVar46 + 0x283f8" identifier + number_literal) ))))) )) (argument_list "(&puStack_144,0,0x88)" ( (pointer_expression "&puStack_144" & identifier) , number_literal , number_literal ))) ;) (expression_statement "puStack_1e0 = ppuVar24[4];" (assignment_expression "puStack_1e0 = ppuVar24[4]" identifier = (subscript_expression "ppuVar24[4]" identifier [ number_literal ])) ;) (if_statement "if (puStack_1e0 != (uint *)0x0) {\n    if (((*(byte *)(ppuVar24 + 7) & 0x10) == 0) || (param_4 == puVar38)) {\n      puStack_1e0 = (uint *)0x0;\n    }\n    else if ((char)*(byte *)(ppuVar24 + 7) < '\0') {\n      puStack_1e0 = (uint *)0x0;\n    }\n  }" if (parenthesized_expression "(puStack_1e0 != (uint *)0x0)" ( (binary_expression "puStack_1e0 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (((*(byte *)(ppuVar24 + 7) & 0x10) == 0) || (param_4 == puVar38)) {\n      puStack_1e0 = (uint *)0x0;\n    }\n    else if ((char)*(byte *)(ppuVar24 + 7) < '\0') {\n      puStack_1e0 = (uint *)0x0;\n    }\n  }" { (if_statement "if (((*(byte *)(ppuVar24 + 7) & 0x10) == 0) || (param_4 == puVar38)) {\n      puStack_1e0 = (uint *)0x0;\n    }\n    else if ((char)*(byte *)(ppuVar24 + 7) < '\0') {\n      puStack_1e0 = (uint *)0x0;\n    }" if (parenthesized_expression "(((*(byte *)(ppuVar24 + 7) & 0x10) == 0) || (param_4 == puVar38))" ( (binary_expression "((*(byte *)(ppuVar24 + 7) & 0x10) == 0) || (param_4 == puVar38)" (parenthesized_expression "((*(byte *)(ppuVar24 + 7) & 0x10) == 0)" ( (binary_expression "(*(byte *)(ppuVar24 + 7) & 0x10) == 0" (parenthesized_expression "(*(byte *)(ppuVar24 + 7) & 0x10)" ( (binary_expression "*(byte *)(ppuVar24 + 7) & 0x10" (pointer_expression "*(byte *)(ppuVar24 + 7)" * (cast_expression "(byte *)(ppuVar24 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppuVar24 + 7)" ( (binary_expression "ppuVar24 + 7" identifier + number_literal) )))) & number_literal) )) == number_literal) )) || (parenthesized_expression "(param_4 == puVar38)" ( (binary_expression "param_4 == puVar38" identifier == identifier) ))) )) (compound_statement "{\n      puStack_1e0 = (uint *)0x0;\n    }" { (expression_statement "puStack_1e0 = (uint *)0x0;" (assignment_expression "puStack_1e0 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else if ((char)*(byte *)(ppuVar24 + 7) < '\0') {\n      puStack_1e0 = (uint *)0x0;\n    }" else (if_statement "if ((char)*(byte *)(ppuVar24 + 7) < '\0') {\n      puStack_1e0 = (uint *)0x0;\n    }" if (parenthesized_expression "((char)*(byte *)(ppuVar24 + 7) < '\0')" ( (binary_expression "(char)*(byte *)(ppuVar24 + 7) < '\0'" (cast_expression "(char)*(byte *)(ppuVar24 + 7)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)(ppuVar24 + 7)" * (cast_expression "(byte *)(ppuVar24 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppuVar24 + 7)" ( (binary_expression "ppuVar24 + 7" identifier + number_literal) ))))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      puStack_1e0 = (uint *)0x0;\n    }" { (expression_statement "puStack_1e0 = (uint *)0x0;" (assignment_expression "puStack_1e0 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })))) })) (expression_statement "puVar36 = ppuVar24[6];" (assignment_expression "puVar36 = ppuVar24[6]" identifier = (subscript_expression "ppuVar24[6]" identifier [ number_literal ])) ;) (if_statement "if (puVar36 < local_78) {\n    iStack_180 = ((int)local_78 + -1) - (int)puVar36;\n    local_78 = (uint *)((int)local_78 + ((int)puVar36 - ((int)local_78 + -1)));\n    puVar36 = ppuVar24[2];\n  }\n  else {\n    puVar36 = ppuVar24[2];\n    iStack_180 = 0;\n  }" if (parenthesized_expression "(puVar36 < local_78)" ( (binary_expression "puVar36 < local_78" identifier < identifier) )) (compound_statement "{\n    iStack_180 = ((int)local_78 + -1) - (int)puVar36;\n    local_78 = (uint *)((int)local_78 + ((int)puVar36 - ((int)local_78 + -1)));\n    puVar36 = ppuVar24[2];\n  }" { (expression_statement "iStack_180 = ((int)local_78 + -1) - (int)puVar36;" (assignment_expression "iStack_180 = ((int)local_78 + -1) - (int)puVar36" identifier = (binary_expression "((int)local_78 + -1) - (int)puVar36" (parenthesized_expression "((int)local_78 + -1)" ( (binary_expression "(int)local_78 + -1" (cast_expression "(int)local_78" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) - (cast_expression "(int)puVar36" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "local_78 = (uint *)((int)local_78 + ((int)puVar36 - ((int)local_78 + -1)));" (assignment_expression "local_78 = (uint *)((int)local_78 + ((int)puVar36 - ((int)local_78 + -1)))" identifier = (cast_expression "(uint *)((int)local_78 + ((int)puVar36 - ((int)local_78 + -1)))" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_78 + ((int)puVar36 - ((int)local_78 + -1)))" ( (binary_expression "(int)local_78 + ((int)puVar36 - ((int)local_78 + -1))" (cast_expression "(int)local_78" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "((int)puVar36 - ((int)local_78 + -1))" ( (binary_expression "(int)puVar36 - ((int)local_78 + -1)" (cast_expression "(int)puVar36" ( (type_descriptor "int" primitive_type) ) identifier) - (parenthesized_expression "((int)local_78 + -1)" ( (binary_expression "(int)local_78 + -1" (cast_expression "(int)local_78" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) ))) )))) ;) (expression_statement "puVar36 = ppuVar24[2];" (assignment_expression "puVar36 = ppuVar24[2]" identifier = (subscript_expression "ppuVar24[2]" identifier [ number_literal ])) ;) }) (else_clause "else {\n    puVar36 = ppuVar24[2];\n    iStack_180 = 0;\n  }" else (compound_statement "{\n    puVar36 = ppuVar24[2];\n    iStack_180 = 0;\n  }" { (expression_statement "puVar36 = ppuVar24[2];" (assignment_expression "puVar36 = ppuVar24[2]" identifier = (subscript_expression "ppuVar24[2]" identifier [ number_literal ])) ;) (expression_statement "iStack_180 = 0;" (assignment_expression "iStack_180 = 0" identifier = number_literal) ;) }))) (expression_statement "puStack_f0 = puVar43;" (assignment_expression "puStack_f0 = puVar43" identifier = identifier) ;) (if_statement "if ((((puVar36 == (uint *)0x0) || (puVar43[9] == 0)) || (puVar43[10] == 0)) ||\n     ((puVar43[0xb] == 0 || (puVar43[0xc] == 0)))) {\nLAB_0004db54:\n    uStack_1e4 = 1;\n    goto LAB_0004db58;\n  }" if (parenthesized_expression "((((puVar36 == (uint *)0x0) || (puVar43[9] == 0)) || (puVar43[10] == 0)) ||\n     ((puVar43[0xb] == 0 || (puVar43[0xc] == 0))))" ( (binary_expression "(((puVar36 == (uint *)0x0) || (puVar43[9] == 0)) || (puVar43[10] == 0)) ||\n     ((puVar43[0xb] == 0 || (puVar43[0xc] == 0)))" (parenthesized_expression "(((puVar36 == (uint *)0x0) || (puVar43[9] == 0)) || (puVar43[10] == 0))" ( (binary_expression "((puVar36 == (uint *)0x0) || (puVar43[9] == 0)) || (puVar43[10] == 0)" (parenthesized_expression "((puVar36 == (uint *)0x0) || (puVar43[9] == 0))" ( (binary_expression "(puVar36 == (uint *)0x0) || (puVar43[9] == 0)" (parenthesized_expression "(puVar36 == (uint *)0x0)" ( (binary_expression "puVar36 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(puVar43[9] == 0)" ( (binary_expression "puVar43[9] == 0" (subscript_expression "puVar43[9]" identifier [ number_literal ]) == number_literal) ))) )) || (parenthesized_expression "(puVar43[10] == 0)" ( (binary_expression "puVar43[10] == 0" (subscript_expression "puVar43[10]" identifier [ number_literal ]) == number_literal) ))) )) || (parenthesized_expression "((puVar43[0xb] == 0 || (puVar43[0xc] == 0)))" ( (parenthesized_expression "(puVar43[0xb] == 0 || (puVar43[0xc] == 0))" ( (binary_expression "puVar43[0xb] == 0 || (puVar43[0xc] == 0)" (binary_expression "puVar43[0xb] == 0" (subscript_expression "puVar43[0xb]" identifier [ number_literal ]) == number_literal) || (parenthesized_expression "(puVar43[0xc] == 0)" ( (binary_expression "puVar43[0xc] == 0" (subscript_expression "puVar43[0xc]" identifier [ number_literal ]) == number_literal) ))) )) ))) )) (compound_statement "{\nLAB_0004db54:\n    uStack_1e4 = 1;\n    goto LAB_0004db58;\n  }" { (labeled_statement "LAB_0004db54:\n    uStack_1e4 = 1;" statement_identifier : (expression_statement "uStack_1e4 = 1;" (assignment_expression "uStack_1e4 = 1" identifier = number_literal) ;)) (goto_statement "goto LAB_0004db58;" goto statement_identifier ;) })) (if_statement "if (((*(int *)(puVar43[9] + 8) == 0) && (*(int *)(puVar43[10] + 8) == 0)) &&\n     ((*(int *)(puVar43[0xb] + 8) == 0 || (((uint)ppuVar24[7] & 0x1000000) == 0)))) {\n    if (param_4 == (uint *)0x0) {\n      puVar38 = (uint *)0x0;\n    }\n    else {\n      if (puVar38 != (uint *)0x0) goto LAB_0004db54;\n      param_4 = (uint *)0x0;\n    }\n  }" if (parenthesized_expression "(((*(int *)(puVar43[9] + 8) == 0) && (*(int *)(puVar43[10] + 8) == 0)) &&\n     ((*(int *)(puVar43[0xb] + 8) == 0 || (((uint)ppuVar24[7] & 0x1000000) == 0))))" ( (binary_expression "((*(int *)(puVar43[9] + 8) == 0) && (*(int *)(puVar43[10] + 8) == 0)) &&\n     ((*(int *)(puVar43[0xb] + 8) == 0 || (((uint)ppuVar24[7] & 0x1000000) == 0)))" (parenthesized_expression "((*(int *)(puVar43[9] + 8) == 0) && (*(int *)(puVar43[10] + 8) == 0))" ( (binary_expression "(*(int *)(puVar43[9] + 8) == 0) && (*(int *)(puVar43[10] + 8) == 0)" (parenthesized_expression "(*(int *)(puVar43[9] + 8) == 0)" ( (binary_expression "*(int *)(puVar43[9] + 8) == 0" (pointer_expression "*(int *)(puVar43[9] + 8)" * (cast_expression "(int *)(puVar43[9] + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar43[9] + 8)" ( (binary_expression "puVar43[9] + 8" (subscript_expression "puVar43[9]" identifier [ number_literal ]) + number_literal) )))) == number_literal) )) && (parenthesized_expression "(*(int *)(puVar43[10] + 8) == 0)" ( (binary_expression "*(int *)(puVar43[10] + 8) == 0" (pointer_expression "*(int *)(puVar43[10] + 8)" * (cast_expression "(int *)(puVar43[10] + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar43[10] + 8)" ( (binary_expression "puVar43[10] + 8" (subscript_expression "puVar43[10]" identifier [ number_literal ]) + number_literal) )))) == number_literal) ))) )) && (parenthesized_expression "((*(int *)(puVar43[0xb] + 8) == 0 || (((uint)ppuVar24[7] & 0x1000000) == 0)))" ( (parenthesized_expression "(*(int *)(puVar43[0xb] + 8) == 0 || (((uint)ppuVar24[7] & 0x1000000) == 0))" ( (binary_expression "*(int *)(puVar43[0xb] + 8) == 0 || (((uint)ppuVar24[7] & 0x1000000) == 0)" (binary_expression "*(int *)(puVar43[0xb] + 8) == 0" (pointer_expression "*(int *)(puVar43[0xb] + 8)" * (cast_expression "(int *)(puVar43[0xb] + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar43[0xb] + 8)" ( (binary_expression "puVar43[0xb] + 8" (subscript_expression "puVar43[0xb]" identifier [ number_literal ]) + number_literal) )))) == number_literal) || (parenthesized_expression "(((uint)ppuVar24[7] & 0x1000000) == 0)" ( (binary_expression "((uint)ppuVar24[7] & 0x1000000) == 0" (parenthesized_expression "((uint)ppuVar24[7] & 0x1000000)" ( (binary_expression "(uint)ppuVar24[7] & 0x1000000" (cast_expression "(uint)ppuVar24[7]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppuVar24[7]" identifier [ number_literal ])) & number_literal) )) == number_literal) ))) )) ))) )) (compound_statement "{\n    if (param_4 == (uint *)0x0) {\n      puVar38 = (uint *)0x0;\n    }\n    else {\n      if (puVar38 != (uint *)0x0) goto LAB_0004db54;\n      param_4 = (uint *)0x0;\n    }\n  }" { (if_statement "if (param_4 == (uint *)0x0) {\n      puVar38 = (uint *)0x0;\n    }\n    else {\n      if (puVar38 != (uint *)0x0) goto LAB_0004db54;\n      param_4 = (uint *)0x0;\n    }" if (parenthesized_expression "(param_4 == (uint *)0x0)" ( (binary_expression "param_4 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      puVar38 = (uint *)0x0;\n    }" { (expression_statement "puVar38 = (uint *)0x0;" (assignment_expression "puVar38 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n      if (puVar38 != (uint *)0x0) goto LAB_0004db54;\n      param_4 = (uint *)0x0;\n    }" else (compound_statement "{\n      if (puVar38 != (uint *)0x0) goto LAB_0004db54;\n      param_4 = (uint *)0x0;\n    }" { (if_statement "if (puVar38 != (uint *)0x0) goto LAB_0004db54;" if (parenthesized_expression "(puVar38 != (uint *)0x0)" ( (binary_expression "puVar38 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004db54;" goto statement_identifier ;)) (expression_statement "param_4 = (uint *)0x0;" (assignment_expression "param_4 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) })) (if_statement "if (local_78 == (uint *)0x0) {\n    bVar22 = puVar43[0x13] != 0;\n  }\n  else {\n    bVar22 = true;\n  }" if (parenthesized_expression "(local_78 == (uint *)0x0)" ( (binary_expression "local_78 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    bVar22 = puVar43[0x13] != 0;\n  }" { (expression_statement "bVar22 = puVar43[0x13] != 0;" (assignment_expression "bVar22 = puVar43[0x13] != 0" identifier = (binary_expression "puVar43[0x13] != 0" (subscript_expression "puVar43[0x13]" identifier [ number_literal ]) != number_literal)) ;) }) (else_clause "else {\n    bVar22 = true;\n  }" else (compound_statement "{\n    bVar22 = true;\n  }" { (expression_statement "bVar22 = true;" (assignment_expression "bVar22 = true" identifier = true) ;) }))) (expression_statement "uStack_f4 = puVar43[0x17];" (assignment_expression "uStack_f4 = puVar43[0x17]" identifier = (subscript_expression "puVar43[0x17]" identifier [ number_literal ])) ;) (expression_statement "puVar36 = ppuVar24[5];" (assignment_expression "puVar36 = ppuVar24[5]" identifier = (subscript_expression "ppuVar24[5]" identifier [ number_literal ])) ;) (expression_statement "uVar6 = puVar43[2] + 1;" (assignment_expression "uVar6 = puVar43[2] + 1" identifier = (binary_expression "puVar43[2] + 1" (subscript_expression "puVar43[2]" identifier [ number_literal ]) + number_literal)) ;) (if_statement "if ((int)(puVar43[2] + 1) < (int)uStack_f4) {\n    uVar6 = uStack_f4;\n  }" if (parenthesized_expression "((int)(puVar43[2] + 1) < (int)uStack_f4)" ( (binary_expression "(int)(puVar43[2] + 1) < (int)uStack_f4" (cast_expression "(int)(puVar43[2] + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar43[2] + 1)" ( (binary_expression "puVar43[2] + 1" (subscript_expression "puVar43[2]" identifier [ number_literal ]) + number_literal) ))) < (cast_expression "(int)uStack_f4" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    uVar6 = uStack_f4;\n  }" { (expression_statement "uVar6 = uStack_f4;" (assignment_expression "uVar6 = uStack_f4" identifier = identifier) ;) })) (expression_statement "bStack_fc = (byte)((uint)((int)ppuVar24[3] << 9) >> 0x18);" (assignment_expression "bStack_fc = (byte)((uint)((int)ppuVar24[3] << 9) >> 0x18)" identifier = (call_expression "(byte)((uint)((int)ppuVar24[3] << 9) >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)((int)ppuVar24[3] << 9) >> 0x18)" ( (binary_expression "(uint)((int)ppuVar24[3] << 9) >> 0x18" (call_expression "(uint)((int)ppuVar24[3] << 9)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)ppuVar24[3] << 9)" ( (binary_expression "(int)ppuVar24[3] << 9" (cast_expression "(int)ppuVar24[3]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppuVar24[3]" identifier [ number_literal ])) << number_literal) ))) >> number_literal) )))) ;) (expression_statement "bStack_f9 = 1;" (assignment_expression "bStack_f9 = 1" identifier = number_literal) ;) (if_statement "if (puVar36 == (uint *)0x0) {\n    bStack_f9 = bStack_fc >> 7;\n  }" if (parenthesized_expression "(puVar36 == (uint *)0x0)" ( (binary_expression "puVar36 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    bStack_f9 = bStack_fc >> 7;\n  }" { (expression_statement "bStack_f9 = bStack_fc >> 7;" (assignment_expression "bStack_f9 = bStack_fc >> 7" identifier = (binary_expression "bStack_fc >> 7" identifier >> number_literal)) ;) })) (expression_statement "uVar34 = (int)puStack_88 + 1U;" (assignment_expression "uVar34 = (int)puStack_88 + 1U" identifier = (binary_expression "(int)puStack_88 + 1U" (cast_expression "(int)puStack_88" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (if_statement "if ((int)uVar6 <= (int)((int)puStack_88 + 1U)) {\n    uVar34 = uVar6;\n  }" if (parenthesized_expression "((int)uVar6 <= (int)((int)puStack_88 + 1U))" ( (binary_expression "(int)uVar6 <= (int)((int)puStack_88 + 1U)" (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)((int)puStack_88 + 1U)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)puStack_88 + 1U)" ( (binary_expression "(int)puStack_88 + 1U" (cast_expression "(int)puStack_88" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )) (compound_statement "{\n    uVar34 = uVar6;\n  }" { (expression_statement "uVar34 = uVar6;" (assignment_expression "uVar34 = uVar6" identifier = identifier) ;) })) (expression_statement "bStack_fc = bStack_fc >> 7;" (assignment_expression "bStack_fc = bStack_fc >> 7" identifier = (binary_expression "bStack_fc >> 7" identifier >> number_literal)) ;) (expression_statement "bStack_fb = (byte)((puVar43[0x16] << 2) >> 0x1f);" (assignment_expression "bStack_fb = (byte)((puVar43[0x16] << 2) >> 0x1f)" identifier = (call_expression "(byte)((puVar43[0x16] << 2) >> 0x1f)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((puVar43[0x16] << 2) >> 0x1f)" ( (binary_expression "(puVar43[0x16] << 2) >> 0x1f" (parenthesized_expression "(puVar43[0x16] << 2)" ( (binary_expression "puVar43[0x16] << 2" (subscript_expression "puVar43[0x16]" identifier [ number_literal ]) << number_literal) )) >> number_literal) )))) ;) (expression_statement "bStack_fa = (byte)((puVar43[0x16] << 3) >> 0x1f);" (assignment_expression "bStack_fa = (byte)((puVar43[0x16] << 3) >> 0x1f)" identifier = (call_expression "(byte)((puVar43[0x16] << 3) >> 0x1f)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((puVar43[0x16] << 3) >> 0x1f)" ( (binary_expression "(puVar43[0x16] << 3) >> 0x1f" (parenthesized_expression "(puVar43[0x16] << 3)" ( (binary_expression "puVar43[0x16] << 3" (subscript_expression "puVar43[0x16]" identifier [ number_literal ]) << number_literal) )) >> number_literal) )))) ;) (expression_statement "puStack_114 = puStack_88;" (assignment_expression "puStack_114 = puStack_88" identifier = identifier) ;) (expression_statement "puStack_118 = puStack_88;" (assignment_expression "puStack_118 = puStack_88" identifier = identifier) ;) (expression_statement "puStack_10c = puStack_88;" (assignment_expression "puStack_10c = puStack_88" identifier = identifier) ;) (expression_statement "puStack_110 = puStack_88;" (assignment_expression "puStack_110 = puStack_88" identifier = identifier) ;) (expression_statement "puStack_144 = puVar23;" (assignment_expression "puStack_144 = puVar23" identifier = identifier) ;) (expression_statement "puStack_104 = puVar36;" (assignment_expression "puStack_104 = puVar36" identifier = identifier) ;) (expression_statement "uStack_1e4 = FUN_00043278(&puStack_144,uVar34);" (assignment_expression "uStack_1e4 = FUN_00043278(&puStack_144,uVar34)" identifier = (call_expression "FUN_00043278(&puStack_144,uVar34)" identifier (argument_list "(&puStack_144,uVar34)" ( (pointer_expression "&puStack_144" & identifier) , identifier )))) ;) (expression_statement "piVar17 = piStack_e0;" (assignment_expression "piVar17 = piStack_e0" identifier = identifier) ;) (if_statement "if (uStack_1e4 != 0) {\nLAB_0004dbbc:\n    while( true ) {\n      pcVar45 = *(code **)(puVar46 + 0x28520);\nLAB_0004dbc0:\n      (*pcVar45)(piVar17);\n      if (puVar43[0x13] != 0) {\nLAB_0004dc14:\n        FUN_00044db0(&puStack_144);\n        (**(code **)(puVar46 + 0x28520))(iStack_c0);\n        (**(code **)(puVar46 + 0x28520))(iStack_d0);\n      }\nLAB_0004dbd4:\n      FUN_00044d40(&puStack_144);\nLAB_0004db58:\n      if (iStack_bc == *piVar10) break;\n      uStack_1e4 = (**(code **)(puVar46 + 0x284cc))();\n      piVar17 = piStack_e0;\n    }\n    return uStack_1e4;\n  }" if (parenthesized_expression "(uStack_1e4 != 0)" ( (binary_expression "uStack_1e4 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_0004dbbc:\n    while( true ) {\n      pcVar45 = *(code **)(puVar46 + 0x28520);\nLAB_0004dbc0:\n      (*pcVar45)(piVar17);\n      if (puVar43[0x13] != 0) {\nLAB_0004dc14:\n        FUN_00044db0(&puStack_144);\n        (**(code **)(puVar46 + 0x28520))(iStack_c0);\n        (**(code **)(puVar46 + 0x28520))(iStack_d0);\n      }\nLAB_0004dbd4:\n      FUN_00044d40(&puStack_144);\nLAB_0004db58:\n      if (iStack_bc == *piVar10) break;\n      uStack_1e4 = (**(code **)(puVar46 + 0x284cc))();\n      piVar17 = piStack_e0;\n    }\n    return uStack_1e4;\n  }" { (labeled_statement "LAB_0004dbbc:\n    while( true ) {\n      pcVar45 = *(code **)(puVar46 + 0x28520);\nLAB_0004dbc0:\n      (*pcVar45)(piVar17);\n      if (puVar43[0x13] != 0) {\nLAB_0004dc14:\n        FUN_00044db0(&puStack_144);\n        (**(code **)(puVar46 + 0x28520))(iStack_c0);\n        (**(code **)(puVar46 + 0x28520))(iStack_d0);\n      }\nLAB_0004dbd4:\n      FUN_00044d40(&puStack_144);\nLAB_0004db58:\n      if (iStack_bc == *piVar10) break;\n      uStack_1e4 = (**(code **)(puVar46 + 0x284cc))();\n      piVar17 = piStack_e0;\n    }" statement_identifier : (while_statement "while( true ) {\n      pcVar45 = *(code **)(puVar46 + 0x28520);\nLAB_0004dbc0:\n      (*pcVar45)(piVar17);\n      if (puVar43[0x13] != 0) {\nLAB_0004dc14:\n        FUN_00044db0(&puStack_144);\n        (**(code **)(puVar46 + 0x28520))(iStack_c0);\n        (**(code **)(puVar46 + 0x28520))(iStack_d0);\n      }\nLAB_0004dbd4:\n      FUN_00044d40(&puStack_144);\nLAB_0004db58:\n      if (iStack_bc == *piVar10) break;\n      uStack_1e4 = (**(code **)(puVar46 + 0x284cc))();\n      piVar17 = piStack_e0;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      pcVar45 = *(code **)(puVar46 + 0x28520);\nLAB_0004dbc0:\n      (*pcVar45)(piVar17);\n      if (puVar43[0x13] != 0) {\nLAB_0004dc14:\n        FUN_00044db0(&puStack_144);\n        (**(code **)(puVar46 + 0x28520))(iStack_c0);\n        (**(code **)(puVar46 + 0x28520))(iStack_d0);\n      }\nLAB_0004dbd4:\n      FUN_00044d40(&puStack_144);\nLAB_0004db58:\n      if (iStack_bc == *piVar10) break;\n      uStack_1e4 = (**(code **)(puVar46 + 0x284cc))();\n      piVar17 = piStack_e0;\n    }" { (expression_statement "pcVar45 = *(code **)(puVar46 + 0x28520);" (assignment_expression "pcVar45 = *(code **)(puVar46 + 0x28520)" identifier = (pointer_expression "*(code **)(puVar46 + 0x28520)" * (cast_expression "(code **)(puVar46 + 0x28520)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar46 + 0x28520)" ( (binary_expression "puVar46 + 0x28520" identifier + number_literal) ))))) ;) (labeled_statement "LAB_0004dbc0:\n      (*pcVar45)(piVar17);" statement_identifier : (expression_statement "(*pcVar45)(piVar17);" (call_expression "(*pcVar45)(piVar17)" (parenthesized_expression "(*pcVar45)" ( (pointer_expression "*pcVar45" * identifier) )) (argument_list "(piVar17)" ( identifier ))) ;)) (if_statement "if (puVar43[0x13] != 0) {\nLAB_0004dc14:\n        FUN_00044db0(&puStack_144);\n        (**(code **)(puVar46 + 0x28520))(iStack_c0);\n        (**(code **)(puVar46 + 0x28520))(iStack_d0);\n      }" if (parenthesized_expression "(puVar43[0x13] != 0)" ( (binary_expression "puVar43[0x13] != 0" (subscript_expression "puVar43[0x13]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\nLAB_0004dc14:\n        FUN_00044db0(&puStack_144);\n        (**(code **)(puVar46 + 0x28520))(iStack_c0);\n        (**(code **)(puVar46 + 0x28520))(iStack_d0);\n      }" { (labeled_statement "LAB_0004dc14:\n        FUN_00044db0(&puStack_144);" statement_identifier : (expression_statement "FUN_00044db0(&puStack_144);" (call_expression "FUN_00044db0(&puStack_144)" identifier (argument_list "(&puStack_144)" ( (pointer_expression "&puStack_144" & identifier) ))) ;)) (expression_statement "(**(code **)(puVar46 + 0x28520))(iStack_c0);" (call_expression "(**(code **)(puVar46 + 0x28520))(iStack_c0)" (parenthesized_expression "(**(code **)(puVar46 + 0x28520))" ( (pointer_expression "**(code **)(puVar46 + 0x28520)" * (pointer_expression "*(code **)(puVar46 + 0x28520)" * (cast_expression "(code **)(puVar46 + 0x28520)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar46 + 0x28520)" ( (binary_expression "puVar46 + 0x28520" identifier + number_literal) ))))) )) (argument_list "(iStack_c0)" ( identifier ))) ;) (expression_statement "(**(code **)(puVar46 + 0x28520))(iStack_d0);" (call_expression "(**(code **)(puVar46 + 0x28520))(iStack_d0)" (parenthesized_expression "(**(code **)(puVar46 + 0x28520))" ( (pointer_expression "**(code **)(puVar46 + 0x28520)" * (pointer_expression "*(code **)(puVar46 + 0x28520)" * (cast_expression "(code **)(puVar46 + 0x28520)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar46 + 0x28520)" ( (binary_expression "puVar46 + 0x28520" identifier + number_literal) ))))) )) (argument_list "(iStack_d0)" ( identifier ))) ;) })) (labeled_statement "LAB_0004dbd4:\n      FUN_00044d40(&puStack_144);" statement_identifier : (expression_statement "FUN_00044d40(&puStack_144);" (call_expression "FUN_00044d40(&puStack_144)" identifier (argument_list "(&puStack_144)" ( (pointer_expression "&puStack_144" & identifier) ))) ;)) (labeled_statement "LAB_0004db58:\n      if (iStack_bc == *piVar10) break;" statement_identifier : (if_statement "if (iStack_bc == *piVar10) break;" if (parenthesized_expression "(iStack_bc == *piVar10)" ( (binary_expression "iStack_bc == *piVar10" identifier == (pointer_expression "*piVar10" * identifier)) )) (break_statement "break;" break ;))) (expression_statement "uStack_1e4 = (**(code **)(puVar46 + 0x284cc))();" (assignment_expression "uStack_1e4 = (**(code **)(puVar46 + 0x284cc))()" identifier = (call_expression "(**(code **)(puVar46 + 0x284cc))()" (parenthesized_expression "(**(code **)(puVar46 + 0x284cc))" ( (pointer_expression "**(code **)(puVar46 + 0x284cc)" * (pointer_expression "*(code **)(puVar46 + 0x284cc)" * (cast_expression "(code **)(puVar46 + 0x284cc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar46 + 0x284cc)" ( (binary_expression "puVar46 + 0x284cc" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "piVar17 = piStack_e0;" (assignment_expression "piVar17 = piStack_e0" identifier = identifier) ;) }))) (return_statement "return uStack_1e4;" return identifier ;) })) (expression_statement "puStack_100 = puVar43 + 0x18;" (assignment_expression "puStack_100 = puVar43 + 0x18" identifier = (binary_expression "puVar43 + 0x18" identifier + number_literal)) ;) (expression_statement "bStack_f6 = (byte)((puVar43[0x16] << 4) >> 0x1f);" (assignment_expression "bStack_f6 = (byte)((puVar43[0x16] << 4) >> 0x1f)" identifier = (call_expression "(byte)((puVar43[0x16] << 4) >> 0x1f)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((puVar43[0x16] << 4) >> 0x1f)" ( (binary_expression "(puVar43[0x16] << 4) >> 0x1f" (parenthesized_expression "(puVar43[0x16] << 4)" ( (binary_expression "puVar43[0x16] << 4" (subscript_expression "puVar43[0x16]" identifier [ number_literal ]) << number_literal) )) >> number_literal) )))) ;) (if_statement "if ((bStack_f9 != 0) || (puStack_140 = puVar23, puStack_128 = puStack_88, 1 < (int)puVar43[0x17]))\n  {\n    puStack_128 = (uint *)0x0;\n  }" if (parenthesized_expression "((bStack_f9 != 0) || (puStack_140 = puVar23, puStack_128 = puStack_88, 1 < (int)puVar43[0x17]))" ( (binary_expression "(bStack_f9 != 0) || (puStack_140 = puVar23, puStack_128 = puStack_88, 1 < (int)puVar43[0x17])" (parenthesized_expression "(bStack_f9 != 0)" ( (binary_expression "bStack_f9 != 0" identifier != number_literal) )) || (parenthesized_expression "(puStack_140 = puVar23, puStack_128 = puStack_88, 1 < (int)puVar43[0x17])" ( (comma_expression "puStack_140 = puVar23, puStack_128 = puStack_88, 1 < (int)puVar43[0x17]" (assignment_expression "puStack_140 = puVar23" identifier = identifier) , (comma_expression "puStack_128 = puStack_88, 1 < (int)puVar43[0x17]" (assignment_expression "puStack_128 = puStack_88" identifier = identifier) , (binary_expression "1 < (int)puVar43[0x17]" number_literal < (cast_expression "(int)puVar43[0x17]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar43[0x17]" identifier [ number_literal ]))))) ))) )) (compound_statement "{\n    puStack_128 = (uint *)0x0;\n  }" { (expression_statement "puStack_128 = (uint *)0x0;" (assignment_expression "puStack_128 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "puStack_10c = puVar32;" (assignment_expression "puStack_10c = puVar32" identifier = identifier) ;) (expression_statement "puStack_110 = puVar32;" (assignment_expression "puStack_110 = puVar32" identifier = identifier) ;) (expression_statement "puStack_124 = puStack_128;" (assignment_expression "puStack_124 = puStack_128" identifier = identifier) ;) (expression_statement "bStack_f7 = (byte)((uint)((int)ppuVar24[7] << 7) >> 0x1f);" (assignment_expression "bStack_f7 = (byte)((uint)((int)ppuVar24[7] << 7) >> 0x1f)" identifier = (call_expression "(byte)((uint)((int)ppuVar24[7] << 7) >> 0x1f)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)((int)ppuVar24[7] << 7) >> 0x1f)" ( (binary_expression "(uint)((int)ppuVar24[7] << 7) >> 0x1f" (call_expression "(uint)((int)ppuVar24[7] << 7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)ppuVar24[7] << 7)" ( (binary_expression "(int)ppuVar24[7] << 7" (cast_expression "(int)ppuVar24[7]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppuVar24[7]" identifier [ number_literal ])) << number_literal) ))) >> number_literal) )))) ;) (expression_statement "uVar6 = puVar43[0x13];" (assignment_expression "uVar6 = puVar43[0x13]" identifier = (subscript_expression "puVar43[0x13]" identifier [ number_literal ])) ;) (expression_statement "iVar29 = uVar6 * 2;" (assignment_expression "iVar29 = uVar6 * 2" identifier = (binary_expression "uVar6 * 2" identifier * number_literal)) ;) (expression_statement "puStack_ec = &_gp_1;" (assignment_expression "puStack_ec = &_gp_1" identifier = (pointer_expression "&_gp_1" & identifier)) ;) (expression_statement "uStack_e8 = 0xffffffff;" (assignment_expression "uStack_e8 = 0xffffffff" identifier = number_literal) ;) (if_statement "if (0 < iVar29) {\n    if (0xccccccc < iVar29) goto LAB_0004dbf8;\n    iVar30 = (**(code **)(puVar46 + 0x28450))(uVar6 * 0x28);\n    iStack_d0 = iVar30;\n    iStack_c0 = (**(code **)(puVar46 + 0x28450))(uVar6 * 8);\n    if ((iVar30 == 0) || (iStack_c0 == 0)) goto LAB_0004dbf8;\n  }" if (parenthesized_expression "(0 < iVar29)" ( (binary_expression "0 < iVar29" number_literal < identifier) )) (compound_statement "{\n    if (0xccccccc < iVar29) goto LAB_0004dbf8;\n    iVar30 = (**(code **)(puVar46 + 0x28450))(uVar6 * 0x28);\n    iStack_d0 = iVar30;\n    iStack_c0 = (**(code **)(puVar46 + 0x28450))(uVar6 * 8);\n    if ((iVar30 == 0) || (iStack_c0 == 0)) goto LAB_0004dbf8;\n  }" { (if_statement "if (0xccccccc < iVar29) goto LAB_0004dbf8;" if (parenthesized_expression "(0xccccccc < iVar29)" ( (binary_expression "0xccccccc < iVar29" number_literal < identifier) )) (goto_statement "goto LAB_0004dbf8;" goto statement_identifier ;)) (expression_statement "iVar30 = (**(code **)(puVar46 + 0x28450))(uVar6 * 0x28);" (assignment_expression "iVar30 = (**(code **)(puVar46 + 0x28450))(uVar6 * 0x28)" identifier = (call_expression "(**(code **)(puVar46 + 0x28450))(uVar6 * 0x28)" (parenthesized_expression "(**(code **)(puVar46 + 0x28450))" ( (pointer_expression "**(code **)(puVar46 + 0x28450)" * (pointer_expression "*(code **)(puVar46 + 0x28450)" * (cast_expression "(code **)(puVar46 + 0x28450)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar46 + 0x28450)" ( (binary_expression "puVar46 + 0x28450" identifier + number_literal) ))))) )) (argument_list "(uVar6 * 0x28)" ( (binary_expression "uVar6 * 0x28" identifier * number_literal) )))) ;) (expression_statement "iStack_d0 = iVar30;" (assignment_expression "iStack_d0 = iVar30" identifier = identifier) ;) (expression_statement "iStack_c0 = (**(code **)(puVar46 + 0x28450))(uVar6 * 8);" (assignment_expression "iStack_c0 = (**(code **)(puVar46 + 0x28450))(uVar6 * 8)" identifier = (call_expression "(**(code **)(puVar46 + 0x28450))(uVar6 * 8)" (parenthesized_expression "(**(code **)(puVar46 + 0x28450))" ( (pointer_expression "**(code **)(puVar46 + 0x28450)" * (pointer_expression "*(code **)(puVar46 + 0x28450)" * (cast_expression "(code **)(puVar46 + 0x28450)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar46 + 0x28450)" ( (binary_expression "puVar46 + 0x28450" identifier + number_literal) ))))) )) (argument_list "(uVar6 * 8)" ( (binary_expression "uVar6 * 8" identifier * number_literal) )))) ;) (if_statement "if ((iVar30 == 0) || (iStack_c0 == 0)) goto LAB_0004dbf8;" if (parenthesized_expression "((iVar30 == 0) || (iStack_c0 == 0))" ( (binary_expression "(iVar30 == 0) || (iStack_c0 == 0)" (parenthesized_expression "(iVar30 == 0)" ( (binary_expression "iVar30 == 0" identifier == number_literal) )) || (parenthesized_expression "(iStack_c0 == 0)" ( (binary_expression "iStack_c0 == 0" identifier == number_literal) ))) )) (goto_statement "goto LAB_0004dbf8;" goto statement_identifier ;)) })) (expression_statement "iStack_d4 = iVar29;" (assignment_expression "iStack_d4 = iVar29" identifier = identifier) ;) (expression_statement "iStack_c4 = iVar29;" (assignment_expression "iStack_c4 = iVar29" identifier = identifier) ;) (expression_statement "bVar1 = (uint *)0x1 < local_78;" (assignment_expression "bVar1 = (uint *)0x1 < local_78" identifier = (binary_expression "(uint *)0x1 < local_78" (cast_expression "(uint *)0x1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < identifier)) ;) (expression_statement "iStack_cc = 1;" (assignment_expression "iStack_cc = 1" identifier = number_literal) ;) (if_statement "if ((bVar1) || ((puVar43[0x16] & 0x40000000) != 0)) {\n    if (0x3ffffffe < uStack_120) {\nLAB_0004dbf8:\n      uStack_1e4 = 0xc;\n      (**(code **)(puVar46 + 0x28520))(piStack_e0);\n      if (puVar43[0x13] == 0) goto LAB_0004dbd4;\n      goto LAB_0004dc14;\n    }\n    piStack_e0 = (int *)(**(code **)(puVar46 + 0x28450))((uStack_120 + 1) * 4);\n    piVar17 = piStack_e0;\n    if (piStack_e0 == (int *)0x0) {\nLAB_0004dbb4:\n      uStack_1e4 = 0xc;\n      goto LAB_0004dbbc;\n    }\n  }\n  else {\n    piStack_e0 = (int *)0x0;\n  }" if (parenthesized_expression "((bVar1) || ((puVar43[0x16] & 0x40000000) != 0))" ( (binary_expression "(bVar1) || ((puVar43[0x16] & 0x40000000) != 0)" (parenthesized_expression "(bVar1)" ( identifier )) || (parenthesized_expression "((puVar43[0x16] & 0x40000000) != 0)" ( (binary_expression "(puVar43[0x16] & 0x40000000) != 0" (parenthesized_expression "(puVar43[0x16] & 0x40000000)" ( (binary_expression "puVar43[0x16] & 0x40000000" (subscript_expression "puVar43[0x16]" identifier [ number_literal ]) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n    if (0x3ffffffe < uStack_120) {\nLAB_0004dbf8:\n      uStack_1e4 = 0xc;\n      (**(code **)(puVar46 + 0x28520))(piStack_e0);\n      if (puVar43[0x13] == 0) goto LAB_0004dbd4;\n      goto LAB_0004dc14;\n    }\n    piStack_e0 = (int *)(**(code **)(puVar46 + 0x28450))((uStack_120 + 1) * 4);\n    piVar17 = piStack_e0;\n    if (piStack_e0 == (int *)0x0) {\nLAB_0004dbb4:\n      uStack_1e4 = 0xc;\n      goto LAB_0004dbbc;\n    }\n  }" { (if_statement "if (0x3ffffffe < uStack_120) {\nLAB_0004dbf8:\n      uStack_1e4 = 0xc;\n      (**(code **)(puVar46 + 0x28520))(piStack_e0);\n      if (puVar43[0x13] == 0) goto LAB_0004dbd4;\n      goto LAB_0004dc14;\n    }" if (parenthesized_expression "(0x3ffffffe < uStack_120)" ( (binary_expression "0x3ffffffe < uStack_120" number_literal < identifier) )) (compound_statement "{\nLAB_0004dbf8:\n      uStack_1e4 = 0xc;\n      (**(code **)(puVar46 + 0x28520))(piStack_e0);\n      if (puVar43[0x13] == 0) goto LAB_0004dbd4;\n      goto LAB_0004dc14;\n    }" { (labeled_statement "LAB_0004dbf8:\n      uStack_1e4 = 0xc;" statement_identifier : (expression_statement "uStack_1e4 = 0xc;" (assignment_expression "uStack_1e4 = 0xc" identifier = number_literal) ;)) (expression_statement "(**(code **)(puVar46 + 0x28520))(piStack_e0);" (call_expression "(**(code **)(puVar46 + 0x28520))(piStack_e0)" (parenthesized_expression "(**(code **)(puVar46 + 0x28520))" ( (pointer_expression "**(code **)(puVar46 + 0x28520)" * (pointer_expression "*(code **)(puVar46 + 0x28520)" * (cast_expression "(code **)(puVar46 + 0x28520)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar46 + 0x28520)" ( (binary_expression "puVar46 + 0x28520" identifier + number_literal) ))))) )) (argument_list "(piStack_e0)" ( identifier ))) ;) (if_statement "if (puVar43[0x13] == 0) goto LAB_0004dbd4;" if (parenthesized_expression "(puVar43[0x13] == 0)" ( (binary_expression "puVar43[0x13] == 0" (subscript_expression "puVar43[0x13]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto LAB_0004dbd4;" goto statement_identifier ;)) (goto_statement "goto LAB_0004dc14;" goto statement_identifier ;) })) (expression_statement "piStack_e0 = (int *)(**(code **)(puVar46 + 0x28450))((uStack_120 + 1) * 4);" (assignment_expression "piStack_e0 = (int *)(**(code **)(puVar46 + 0x28450))((uStack_120 + 1) * 4)" identifier = (cast_expression "(int *)(**(code **)(puVar46 + 0x28450))((uStack_120 + 1) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar46 + 0x28450))((uStack_120 + 1) * 4)" (parenthesized_expression "(**(code **)(puVar46 + 0x28450))" ( (pointer_expression "**(code **)(puVar46 + 0x28450)" * (pointer_expression "*(code **)(puVar46 + 0x28450)" * (cast_expression "(code **)(puVar46 + 0x28450)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar46 + 0x28450)" ( (binary_expression "puVar46 + 0x28450" identifier + number_literal) ))))) )) (argument_list "((uStack_120 + 1) * 4)" ( (binary_expression "(uStack_120 + 1) * 4" (parenthesized_expression "(uStack_120 + 1)" ( (binary_expression "uStack_120 + 1" identifier + number_literal) )) * number_literal) ))))) ;) (expression_statement "piVar17 = piStack_e0;" (assignment_expression "piVar17 = piStack_e0" identifier = identifier) ;) (if_statement "if (piStack_e0 == (int *)0x0) {\nLAB_0004dbb4:\n      uStack_1e4 = 0xc;\n      goto LAB_0004dbbc;\n    }" if (parenthesized_expression "(piStack_e0 == (int *)0x0)" ( (binary_expression "piStack_e0 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0004dbb4:\n      uStack_1e4 = 0xc;\n      goto LAB_0004dbbc;\n    }" { (labeled_statement "LAB_0004dbb4:\n      uStack_1e4 = 0xc;" statement_identifier : (expression_statement "uStack_1e4 = 0xc;" (assignment_expression "uStack_1e4 = 0xc" identifier = number_literal) ;)) (goto_statement "goto LAB_0004dbbc;" goto statement_identifier ;) })) }) (else_clause "else {\n    piStack_e0 = (int *)0x0;\n  }" else (compound_statement "{\n    piStack_e0 = (int *)0x0;\n  }" { (expression_statement "piStack_e0 = (int *)0x0;" (assignment_expression "piStack_e0 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (expression_statement "uVar34 = puVar43[0x17];" (assignment_expression "uVar34 = puVar43[0x17]" identifier = (subscript_expression "puVar43[0x17]" identifier [ number_literal ])) ;) (expression_statement "iVar29 = -1;" (assignment_expression "iVar29 = -1" identifier = number_literal) ;) (expression_statement "puStack_16c = param_4;" (assignment_expression "puStack_16c = param_4" identifier = identifier) ;) (expression_statement "uStack_108 = 6;" (assignment_expression "uStack_108 = 6" identifier = number_literal) ;) (expression_statement "uVar6 = (uint)((int)puVar38 < (int)param_4);" (assignment_expression "uVar6 = (uint)((int)puVar38 < (int)param_4)" identifier = (call_expression "(uint)((int)puVar38 < (int)param_4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)puVar38 < (int)param_4)" ( (binary_expression "(int)puVar38 < (int)param_4" (cast_expression "(int)puVar38" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "puVar23 = puVar38;" (assignment_expression "puVar23 = puVar38" identifier = identifier) ;) (if_statement "if (uVar6 == 0) {\n    iVar29 = 1;\n    puVar23 = param_4;\n  }" if (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar29 = 1;\n    puVar23 = param_4;\n  }" { (expression_statement "iVar29 = 1;" (assignment_expression "iVar29 = 1" identifier = number_literal) ;) (expression_statement "puVar23 = param_4;" (assignment_expression "puVar23 = param_4" identifier = identifier) ;) })) (if_statement "if ((int)puVar38 <= (int)param_4) {\n    puVar38 = param_4;\n  }" if (parenthesized_expression "((int)puVar38 <= (int)param_4)" ( (binary_expression "(int)puVar38 <= (int)param_4" (cast_expression "(int)puVar38" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    puVar38 = param_4;\n  }" { (expression_statement "puVar38 = param_4;" (assignment_expression "puVar38 = param_4" identifier = identifier) ;) })) (if_statement "if (puStack_1e0 == (uint *)0x0) goto LAB_0004eabc;" if (parenthesized_expression "(puStack_1e0 == (uint *)0x0)" ( (binary_expression "puStack_1e0 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004eabc;" goto statement_identifier ;)) (expression_statement "uVar11 = 4;" (assignment_expression "uVar11 = 4" identifier = number_literal) ;) (if_statement "if (((uVar34 != 1) && (uVar11 = 0, -1 < (int)ppuVar24[3] << 9)) &&\n     (uVar11 = 4, puVar36 != (uint *)0x0)) {\n    uVar11 = 0;\n  }" if (parenthesized_expression "(((uVar34 != 1) && (uVar11 = 0, -1 < (int)ppuVar24[3] << 9)) &&\n     (uVar11 = 4, puVar36 != (uint *)0x0))" ( (binary_expression "((uVar34 != 1) && (uVar11 = 0, -1 < (int)ppuVar24[3] << 9)) &&\n     (uVar11 = 4, puVar36 != (uint *)0x0)" (parenthesized_expression "((uVar34 != 1) && (uVar11 = 0, -1 < (int)ppuVar24[3] << 9))" ( (binary_expression "(uVar34 != 1) && (uVar11 = 0, -1 < (int)ppuVar24[3] << 9)" (parenthesized_expression "(uVar34 != 1)" ( (binary_expression "uVar34 != 1" identifier != number_literal) )) && (parenthesized_expression "(uVar11 = 0, -1 < (int)ppuVar24[3] << 9)" ( (comma_expression "uVar11 = 0, -1 < (int)ppuVar24[3] << 9" (assignment_expression "uVar11 = 0" identifier = number_literal) , (binary_expression "-1 < (int)ppuVar24[3] << 9" number_literal < (binary_expression "(int)ppuVar24[3] << 9" (cast_expression "(int)ppuVar24[3]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppuVar24[3]" identifier [ number_literal ])) << number_literal))) ))) )) && (parenthesized_expression "(uVar11 = 4, puVar36 != (uint *)0x0)" ( (comma_expression "uVar11 = 4, puVar36 != (uint *)0x0" (assignment_expression "uVar11 = 4" identifier = number_literal) , (binary_expression "puVar36 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n    uVar11 = 0;\n  }" { (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) })) (expression_statement "uVar31 = 2;" (assignment_expression "uVar31 = 2" identifier = number_literal) ;) (if_statement "if (uVar6 != 0) {\n    uVar31 = 0;\n  }" if (parenthesized_expression "(uVar6 != 0)" ( (binary_expression "uVar6 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar31 = 0;\n  }" { (expression_statement "uVar31 = 0;" (assignment_expression "uVar31 = 0" identifier = number_literal) ;) })) (expression_statement "uVar31 = puVar36 != (uint *)0x0 | uVar11 | uVar31;" (assignment_expression "uVar31 = puVar36 != (uint *)0x0 | uVar11 | uVar31" identifier = (binary_expression "puVar36 != (uint *)0x0 | uVar11 | uVar31" (binary_expression "puVar36 != (uint *)0x0 | uVar11" (binary_expression "puVar36 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) | identifier) | identifier)) ;) (labeled_statement "LAB_0004dab0:\n  if (((int)puVar23 <= (int)param_4) && ((int)param_4 <= (int)puVar38)) {\n    ppuVar12 = &puStack_16c;\n    if (uVar6 != 0) {\n      ppuVar12 = (uint **)0x0;\n    }\n    iVar25 = *(int *)(puVar46 + 0x28244);\n    iVar13 = *(int *)(puVar46 + 0x27edc);\n    iVar26 = *(int *)(puVar46 + 0x2829c);\n    iVar30 = iStack_12c;\n    puVar36 = puStack_88;\n    do {\n      puStack_88 = puVar36;\n      if (uVar31 - 4 < 5) {\n                    /* WARNING: Could not recover jumptable at 0x0004db3c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar6 = (*(code *)(puVar46 + *(int *)(iVar13 + 0x2be4 + (uVar31 - 4) * 4) + 0x2fea4))();\n        return uVar6;\n      }\n      iStack_12c = iVar30;\n      while( true ) {\n        puVar39 = (uint *)((int)param_4 - iVar30);\n        if (puStack_124 <= puVar39) {\n          uStack_1e4 = (*(code *)(iVar25 + 0x7eac))(&puStack_144,param_4,&_gp_1);\n          piVar17 = piStack_e0;\n          if (uStack_1e4 != 0) goto LAB_0004dbbc;\n          puVar39 = (uint *)((int)param_4 - iStack_12c);\n          iVar30 = iStack_12c;\n        }\n        if ((int)param_4 < (int)puVar36) {\n          cVar21 = *(char *)((int)puStack_1e0 + (uint)*(byte *)((int)puStack_140 + (int)puVar39));\n        }\n        else {\n          cVar21 = *(char *)puStack_1e0;\n        }\n        if (cVar21 != '\0') break;\n        param_4 = (uint *)((int)param_4 + iVar29);\n        puStack_16c = param_4;\n        if (((int)param_4 < (int)puVar23) || ((int)puVar38 < (int)param_4)) goto LAB_0004df68;\n      }\n      uVar11 = FUN_00047eac(&puStack_144,param_4,&_gp_1);\n      puVar36 = puStack_f0;\n      uVar6 = uStack_11c;\n      piVar17 = piStack_e0;\n      uStack_1e4 = uVar11;\n      if (uVar11 != 0) goto LAB_0004dbbc;\n      if (((uVar34 == 1) || (puStack_128 == (uint *)0x0)) || (*piStack_13c != -1)) {\n        iStack_cc = 0;\n        uStack_d8 = 0;\n        uVar41 = puStack_f0[9];\n        uStack_1d0 = uStack_11c;\n        iStack_dc = 0;\n        uStack_168 = 0;\n        if ((*(byte *)(uVar41 + 0x34) & 1) != 0) {\n          uVar14 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n          if ((uVar14 & 1) == 0) {\n            if (uVar14 == 0) goto LAB_0004dd24;\n            if ((uVar14 & 6) == 6) {\n              uVar41 = puVar36[0xc];\n            }\n            else if ((uVar14 & 2) == 0) {\n              if ((uVar14 & 4) == 0) goto LAB_0004dd24;\n              uVar41 = FUN_00046cac(&uStack_168,puVar36,*(undefined4 *)(uVar41 + 0x28),uVar14);\n            }\n            else {\n              uVar41 = puVar36[0xb];\n            }\n          }\n          else {\n            uVar41 = puVar36[10];\n          }\n          if (uVar41 == 0) goto code_r0x0004ea7c;\n        }\nLAB_0004dd24:\n        bVar4 = ppuVar12 != (uint **)0x0;\n        if ((piStack_e0 == (int *)0x0) ||\n           (uVar14 = puVar36[0x13], piStack_e0[uVar6] = uVar41, uVar14 == 0)) {\nLAB_0004dd48:\n          if (*(int *)(uVar41 + 0x34) << 4 < 0) {\n            if (((*(byte *)(uVar41 + 0x34) & 1) == 0) ||\n               (iVar30 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar41 + 8),uVar41 + 0xc,uVar6),\n               iVar30 != 0)) {\n              uVar14 = uVar6;\n              bVar5 = bVar22;\n              if (!bVar22) goto LAB_0004e0e4;\n            }\n            else {\n              uVar6 = 0xffffffff;\n              bVar5 = false;\n            }\n          }\n          else {\n            uVar6 = 0xffffffff;\n            bVar5 = false;\n          }\n          iVar30 = *(int *)(puVar46 + 0x28244);\n          iVar15 = *(int *)(puVar46 + 0x2829c);\n          uVar14 = uStack_11c;\n          ppuStack_1dc = ppuVar12;\n          while ((int)uVar14 < (int)puStack_10c) {\n            uVar40 = uVar14 + 1;\n            if ((((int)uVar40 < (int)uStack_120) || ((int)puStack_114 <= (int)uStack_120)) &&\n               (((int)uVar40 < (int)puStack_128 || ((int)puStack_114 <= (int)puStack_128)))) {\n              iVar16 = *(int *)(uVar41 + 0x34);\n              puVar36 = puStack_f0;\n            }\n            else {\n              uStack_168 = (*(code *)(iVar30 + 0x41e4))(&puStack_144,uVar14 + 2);\n              if (uStack_168 != 0) {\n                if (uStack_168 == 0xc) goto LAB_0004dbf8;\n                uVar20 = 0x46c;\n                goto LAB_0004ea9c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x34);\n              uVar14 = uStack_11c;\n              puVar36 = puStack_f0;\n            }\n            puStack_f0 = puVar36;\n            if (iVar16 << 5 < 0) {\n              iVar16 = *(int *)(uVar41 + 8);\n              if (0 < iVar16) {\n                param_4 = (uint *)0x0;\n                iVar18 = *(int *)(puVar46 + 0x28244);\n                pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7ab0);\n                do {\n                  uVar42 = *puVar36;\n                  iVar44 = *(int *)(*(int *)(uVar41 + 0xc) + (int)param_4 * 4);\n                  uVar37 = *(uint *)(uVar42 + iVar44 * 8 + 4);\n                  if ((uVar37 & 0x800) != 0) {\n                    if ((uVar37 & 0xffc000) != 0) {\n                      uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec);\n                      uVar37 = (uVar37 << 8) >> 0x16;\n                      if ((uVar37 & 4) == 0) {\n                        uVar27 = uVar19 & 1;\n                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    iVar16 = (*(code *)(iVar15 + -0x4eb0))\n                                       (uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14);\n                    if (iVar16 != 0) {\n                      if (iStack_cc < iVar16) {\n                        iStack_cc = iVar16;\n                      }\n                      iVar16 = iVar16 + uStack_11c;\n                      uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16);\n                      uVar14 = uStack_164;\n                      if (uStack_164 != 0) goto joined_r0x0004e770;\n                      piVar33 = piStack_e0 + iVar16;\n                      iVar28 = *piVar33;\n                      piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc);\n                      if (iVar28 == 0) {\n                        piStack_160 = (int *)*piVar17;\n                        piStack_15c = (int *)piVar17[1];\n                        iStack_158 = piVar17[2];\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        *piVar33 = iVar44;\n                      }\n                      else {\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }\n                      if ((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar16 = *(int *)(uVar41 + 8);\n                    uVar14 = uStack_11c;\n                  }\nLAB_0004e670:\n                  param_4 = (uint *)((int)param_4 + 1);\n                } while ((int)param_4 < iVar16);\n              }\n              uStack_168 = 0;\n            }\n            uStack_11c = uVar14 + 1;\n            uVar14 = (uint)*(byte *)((int)puStack_140 + uVar14);\n            do {\n              if (*(int *)(uVar41 + 0x2c) != 0) {\n                uVar37 = *(uint *)(*(int *)(uVar41 + 0x2c) + uVar14 * 4);\nLAB_0004ddf0:\n                if (piStack_e0 != (int *)0x0) goto LAB_0004ddfc;\n                goto LAB_0004de1c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x30);\n              if (iVar16 != 0) {\n                uVar37 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n                if ((uVar37 & 1) == 0) {\n                  uVar37 = *(uint *)(iVar16 + uVar14 * 4);\n                }\n                else {\n                  uVar37 = *(uint *)(iVar16 + (uVar14 + 0x100) * 4);\n                }\n                goto LAB_0004ddf0;\n              }\n              iVar16 = (*(code *)(iVar26 + -0x7510))(puStack_f0,uVar41);\n            } while (iVar16 != 0);\n            uStack_168 = 0xc;\n            uVar14 = uStack_168;\njoined_r0x0004e770:\n            uStack_168 = uVar14;\n            if (piStack_e0 == (int *)0x0) {\n              piVar17 = (int *)0x0;\n              goto LAB_0004dbb4;\n            }\n            uVar37 = 0;\nLAB_0004ddfc:\n            uVar37 = FUN_0004d0a8(&uStack_168,&puStack_144,uVar37);\nLAB_0004de1c:\n            uVar14 = uStack_11c;\n            if (uVar37 == 0) {\n              piVar17 = piStack_e0;\n              if (uStack_168 != 0) goto LAB_0004dbb4;\n              if ((piStack_e0 == (int *)0x0) || ((bVar5 && (!bVar22)))) break;\n              param_4 = &uStack_168;\n              do {\n                bVar2 = false;\n                piVar17 = piStack_e0 + uStack_11c;\n                uVar14 = uStack_11c;\n                do {\n                  uVar37 = uVar14 + 1;\n                  piVar17 = piVar17 + 1;\n                  if (iStack_dc < (int)uVar37) {\n                    if (bVar2) {\n                      uStack_11c = uVar14;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar2 = true;\n                  uVar14 = uVar37;\n                } while (*piVar17 == 0);\n                uStack_11c = uVar37;\n                uVar37 = FUN_0004d0a8(param_4,&puStack_144,0);\n                uVar14 = uStack_11c;\n                if (uStack_168 != 0) {\n                  if (uVar37 == 0) goto LAB_0004e0cc;\n                  break;\n                }\n              } while (uVar37 == 0);\n            }\n            uVar42 = uStack_1d0;\n            if ((bVar4) && (uVar42 = uVar40, uVar41 != uVar37)) {\n              bVar4 = false;\n              uVar42 = uStack_1d0;\n            }\n            uStack_1d0 = uVar42;\n            uVar41 = uVar37;\n            uStack_11c = uVar14;\n            if (((*(byte *)(uVar37 + 0x34) & 8) != 0) &&\n               (((*(byte *)(uVar37 + 0x34) & 1) == 0 ||\n                (iVar16 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar37 + 8),uVar37 + 0xc,uVar14)\n                , iVar16 != 0)))) {\n              if (!bVar22) goto LAB_0004e0e4;\n              ppuStack_1dc = (uint **)0x0;\n              uVar6 = uVar14;\n              bVar5 = bVar22;\n            }\n          }\nLAB_0004e0cc:\n          uVar14 = uVar6;\n          if (ppuStack_1dc != (uint **)0x0) {\n            *ppuStack_1dc = (uint *)((int)*ppuStack_1dc + uStack_1d0);\n          }\n        }\n        else {\n          uVar14 = FUN_00047924(&puStack_144,uVar41 + 8,uVar41 + 0xc,0);\n          uStack_168 = uVar14;\n          if (uVar14 == 0) {\n            if ((*(byte *)(uVar41 + 0x34) & 2) == 0) {\n              bVar4 = false;\n            }\n            else {\n              uVar14 = FUN_0004c6a8(&puStack_144,uVar41 + 8,uVar41 + 0xc);\n              uStack_168 = uVar14;\n              if (uVar14 != 0) goto LAB_0004e0e4;\n              bVar4 = false;\n            }\n            goto LAB_0004dd48;\n          }\n        }\nLAB_0004e0e4:\n        piVar17 = piStack_e0;\n        if (uVar14 != 0xffffffff) {\n          if (uVar14 == 0xfffffffe) goto LAB_0004dbf8;\n          uStack_e8 = uVar14;\n          if (((uint)ppuVar24[7] & 0x8000000) == 0) {\n            if (!bVar1) {\n              uVar6 = puVar43[0x13];\n              goto joined_r0x0004e94c;\n            }\n            pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n            iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                     piStack_e0[uVar14] + 0xc,uVar14);\n            if ((*(char *)(puVar43 + 0x16) < '\0') || (puVar43[0x13] != 0)) goto LAB_0004e170;\n          }\n          else {\n            uVar6 = puVar43[0x13];\njoined_r0x0004e94c:\n            if (uVar6 != 0) {\n              pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n              iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                       piStack_e0[uVar14] + 0xc,uVar14);\nLAB_0004e170:\n              iVar30 = iStack_e4;\n              puVar36 = puStack_f0;\n              if (uVar14 < 0x3fffffff) {\n                uStack_1f0 = uVar14 + 1;\n                piVar17 = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                if (piVar17 == (int *)0x0) goto LAB_0004dbf8;\n                if (puVar36[0x13] == 0) {\n                  piStack_15c = (int *)0x0;\n                  uStack_150 = 0;\n                  uStack_14c = 0;\n                  uStack_148 = 0;\n                  piStack_160 = piVar17;\n                  iStack_158 = iVar30;\n                  uStack_154 = uVar14;\n                  uStack_1e4 = FUN_0004d30c(&puStack_144,&piStack_160);\n                  (**(code **)(puVar46 + 0x28520))(uStack_148);\n                  if (uStack_1e4 == 0) {\n                    if (*piVar17 == 0) {\n                      (**(code **)(puVar46 + 0x28520))(piVar17);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar46 + 0x28520))(piStack_e0);\n                    uStack_e8 = uVar14;\n                    iStack_e4 = iVar30;\n                    piStack_e0 = piVar17;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  piStack_1ec = (int *)0x0;\n                }\n                else {\n                  piStack_1ec = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                  if (piStack_1ec == (int *)0x0) {\n                    (**(code **)(puVar46 + 0x28520))(piVar17);\n                    uStack_1e4 = 0xc;\n                    piVar17 = piStack_e0;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar15 = *(int *)(puVar46 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);\n                    uStack_150 = 0;\n                    uStack_14c = 0;\n                    uStack_148 = 0;\n                    piStack_160 = piVar17;\n                    piStack_15c = piStack_1ec;\n                    iStack_158 = iVar30;\n                    uStack_154 = uVar14;\n                    uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);\n                    (**(code **)(puVar46 + 0x28520))(uStack_148);\n                    if (uStack_1e4 != 0) break;\n                    if ((*piVar17 != 0) || (*piStack_1ec != 0)) {\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    piVar33 = piStack_e0 + (uStack_1f0 - 1);\n                    uStack_1f0 = uVar14;\n                    while( true ) {\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }\n                    iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       );\n                  }\n                }\n                (**(code **)(puVar46 + 0x28520))(piVar17);\n                (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                piVar17 = piStack_e0;\n                if (uStack_1e4 == 1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }\n              uStack_1e4 = 0xc;\n              goto LAB_0004dbbc;\n            }\n          }\nLAB_0004e7e0:\n          piVar17 = piStack_e0;\n          uStack_1e4 = uVar11;\n          if (local_78 == (uint *)0x0) goto LAB_0004dbbc;\n          puVar23 = ppuVar24[7];\n          if (bVar1) {\n            piVar17 = piStack_74 + 2;\n            do {\n              piVar17[1] = -1;\n              piVar33 = piVar17 + 2;\n              *piVar17 = -1;\n              piVar17 = piVar33;\n            } while (piStack_74 + (int)local_78 * 2 != piVar33);\n            *piStack_74 = 0;\n            piStack_74[1] = uStack_e8;\n            if (((uint)puVar23 & 0x8000000) == 0) {\n              if (*(char *)(puVar43 + 0x16) < '\0') {\n                bVar22 = 0 < (int)puVar43[0x13];\n              }\n              else {\n                bVar22 = false;\n              }\n              uStack_1e4 = FUN_0004bc00(ppuVar24,&puStack_144,local_78,piStack_74,bVar22);\n              piVar17 = piStack_e0;\n              if (uStack_1e4 != 0) goto LAB_0004dbbc;\n              puVar23 = (uint *)*piStack_74;\n            }\n            else {\nLAB_0004e838:\n              puVar23 = (uint *)0x0;\n            }\n            puVar36 = (uint *)0x0;\n            piVar17 = piStack_74;\n            while( true ) {\n              if (puVar23 != (uint *)0xffffffff) {\n                puVar32 = (uint *)piVar17[1];\n                puVar39 = puVar23;\n                puVar38 = puVar32;\n                if (cStack_f8 != '\0') {\n                  puVar39 = puStack_124;\n                  if (puStack_128 != puVar23) {\n                    puVar39 = *(uint **)(iStack_138 + (int)puVar23 * 4);\n                  }\n                  *piVar17 = (int)puVar39;\n                  puVar38 = puStack_124;\n                  if (puStack_128 != puVar32) {\n                    puVar38 = *(uint **)(iStack_138 + (int)puVar32 * 4);\n                  }\n                }\n                *piVar17 = (int)puStack_16c + (int)puVar39;\n                piVar17[1] = (int)puStack_16c + (int)puVar38;\n              }\n              puVar36 = (uint *)((int)puVar36 + 1);\n              piVar17 = piVar17 + 2;\n              if (puVar36 == local_78) break;\n              puVar23 = (uint *)*piVar17;\n            }\n            if (0 < iStack_180) {\n              piVar17 = piStack_74 + (int)local_78 * 2;\n              do {\n                *piVar17 = -1;\n                piVar33 = piVar17 + 2;\n                piVar17[1] = -1;\n                piVar17 = piVar33;\n              } while (piStack_74 + (iStack_180 + (int)local_78) * 2 != piVar33);\n            }\n            piVar33 = (int *)puVar43[0x21];\n            piVar17 = piStack_e0;\n            uStack_1e4 = uVar11;\n            if (piVar33 != (int *)0x0) {\n              iVar29 = 0;\n              piVar3 = piStack_74;\n              do {\n                pcVar45 = *(code **)(puVar46 + 0x28520);\n                if (iVar29 == (int)local_78 + -1) goto LAB_0004dbc0;\n                if (*piVar33 != iVar29) {\n                  piVar3[2] = piStack_74[(*piVar33 + 1) * 2];\n                  piVar3[3] = piStack_74[(*piVar33 + 1) * 2 + 1];\n                }\n                iVar29 = iVar29 + 1;\n                piVar33 = piVar33 + 1;\n                piVar3 = piVar3 + 2;\n              } while( true );\n            }\n            goto LAB_0004dbbc;\n          }\n          *piStack_74 = 0;\n          piStack_74[1] = uStack_e8;\n          goto LAB_0004e838;\n        }\nLAB_0004e2d4:\n        FUN_00044db0(&puStack_144);\n        param_4 = puStack_16c;\n      }\n      param_4 = (uint *)((int)param_4 + iVar29);\n      puStack_16c = param_4;\n      if (((int)param_4 < (int)puVar23) ||\n         (iVar30 = iStack_12c, puVar36 = puStack_88, (int)puVar38 < (int)param_4)) break;\n    } while( true );\n  }" statement_identifier : (if_statement "if (((int)puVar23 <= (int)param_4) && ((int)param_4 <= (int)puVar38)) {\n    ppuVar12 = &puStack_16c;\n    if (uVar6 != 0) {\n      ppuVar12 = (uint **)0x0;\n    }\n    iVar25 = *(int *)(puVar46 + 0x28244);\n    iVar13 = *(int *)(puVar46 + 0x27edc);\n    iVar26 = *(int *)(puVar46 + 0x2829c);\n    iVar30 = iStack_12c;\n    puVar36 = puStack_88;\n    do {\n      puStack_88 = puVar36;\n      if (uVar31 - 4 < 5) {\n                    /* WARNING: Could not recover jumptable at 0x0004db3c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar6 = (*(code *)(puVar46 + *(int *)(iVar13 + 0x2be4 + (uVar31 - 4) * 4) + 0x2fea4))();\n        return uVar6;\n      }\n      iStack_12c = iVar30;\n      while( true ) {\n        puVar39 = (uint *)((int)param_4 - iVar30);\n        if (puStack_124 <= puVar39) {\n          uStack_1e4 = (*(code *)(iVar25 + 0x7eac))(&puStack_144,param_4,&_gp_1);\n          piVar17 = piStack_e0;\n          if (uStack_1e4 != 0) goto LAB_0004dbbc;\n          puVar39 = (uint *)((int)param_4 - iStack_12c);\n          iVar30 = iStack_12c;\n        }\n        if ((int)param_4 < (int)puVar36) {\n          cVar21 = *(char *)((int)puStack_1e0 + (uint)*(byte *)((int)puStack_140 + (int)puVar39));\n        }\n        else {\n          cVar21 = *(char *)puStack_1e0;\n        }\n        if (cVar21 != '\0') break;\n        param_4 = (uint *)((int)param_4 + iVar29);\n        puStack_16c = param_4;\n        if (((int)param_4 < (int)puVar23) || ((int)puVar38 < (int)param_4)) goto LAB_0004df68;\n      }\n      uVar11 = FUN_00047eac(&puStack_144,param_4,&_gp_1);\n      puVar36 = puStack_f0;\n      uVar6 = uStack_11c;\n      piVar17 = piStack_e0;\n      uStack_1e4 = uVar11;\n      if (uVar11 != 0) goto LAB_0004dbbc;\n      if (((uVar34 == 1) || (puStack_128 == (uint *)0x0)) || (*piStack_13c != -1)) {\n        iStack_cc = 0;\n        uStack_d8 = 0;\n        uVar41 = puStack_f0[9];\n        uStack_1d0 = uStack_11c;\n        iStack_dc = 0;\n        uStack_168 = 0;\n        if ((*(byte *)(uVar41 + 0x34) & 1) != 0) {\n          uVar14 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n          if ((uVar14 & 1) == 0) {\n            if (uVar14 == 0) goto LAB_0004dd24;\n            if ((uVar14 & 6) == 6) {\n              uVar41 = puVar36[0xc];\n            }\n            else if ((uVar14 & 2) == 0) {\n              if ((uVar14 & 4) == 0) goto LAB_0004dd24;\n              uVar41 = FUN_00046cac(&uStack_168,puVar36,*(undefined4 *)(uVar41 + 0x28),uVar14);\n            }\n            else {\n              uVar41 = puVar36[0xb];\n            }\n          }\n          else {\n            uVar41 = puVar36[10];\n          }\n          if (uVar41 == 0) goto code_r0x0004ea7c;\n        }\nLAB_0004dd24:\n        bVar4 = ppuVar12 != (uint **)0x0;\n        if ((piStack_e0 == (int *)0x0) ||\n           (uVar14 = puVar36[0x13], piStack_e0[uVar6] = uVar41, uVar14 == 0)) {\nLAB_0004dd48:\n          if (*(int *)(uVar41 + 0x34) << 4 < 0) {\n            if (((*(byte *)(uVar41 + 0x34) & 1) == 0) ||\n               (iVar30 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar41 + 8),uVar41 + 0xc,uVar6),\n               iVar30 != 0)) {\n              uVar14 = uVar6;\n              bVar5 = bVar22;\n              if (!bVar22) goto LAB_0004e0e4;\n            }\n            else {\n              uVar6 = 0xffffffff;\n              bVar5 = false;\n            }\n          }\n          else {\n            uVar6 = 0xffffffff;\n            bVar5 = false;\n          }\n          iVar30 = *(int *)(puVar46 + 0x28244);\n          iVar15 = *(int *)(puVar46 + 0x2829c);\n          uVar14 = uStack_11c;\n          ppuStack_1dc = ppuVar12;\n          while ((int)uVar14 < (int)puStack_10c) {\n            uVar40 = uVar14 + 1;\n            if ((((int)uVar40 < (int)uStack_120) || ((int)puStack_114 <= (int)uStack_120)) &&\n               (((int)uVar40 < (int)puStack_128 || ((int)puStack_114 <= (int)puStack_128)))) {\n              iVar16 = *(int *)(uVar41 + 0x34);\n              puVar36 = puStack_f0;\n            }\n            else {\n              uStack_168 = (*(code *)(iVar30 + 0x41e4))(&puStack_144,uVar14 + 2);\n              if (uStack_168 != 0) {\n                if (uStack_168 == 0xc) goto LAB_0004dbf8;\n                uVar20 = 0x46c;\n                goto LAB_0004ea9c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x34);\n              uVar14 = uStack_11c;\n              puVar36 = puStack_f0;\n            }\n            puStack_f0 = puVar36;\n            if (iVar16 << 5 < 0) {\n              iVar16 = *(int *)(uVar41 + 8);\n              if (0 < iVar16) {\n                param_4 = (uint *)0x0;\n                iVar18 = *(int *)(puVar46 + 0x28244);\n                pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7ab0);\n                do {\n                  uVar42 = *puVar36;\n                  iVar44 = *(int *)(*(int *)(uVar41 + 0xc) + (int)param_4 * 4);\n                  uVar37 = *(uint *)(uVar42 + iVar44 * 8 + 4);\n                  if ((uVar37 & 0x800) != 0) {\n                    if ((uVar37 & 0xffc000) != 0) {\n                      uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec);\n                      uVar37 = (uVar37 << 8) >> 0x16;\n                      if ((uVar37 & 4) == 0) {\n                        uVar27 = uVar19 & 1;\n                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    iVar16 = (*(code *)(iVar15 + -0x4eb0))\n                                       (uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14);\n                    if (iVar16 != 0) {\n                      if (iStack_cc < iVar16) {\n                        iStack_cc = iVar16;\n                      }\n                      iVar16 = iVar16 + uStack_11c;\n                      uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16);\n                      uVar14 = uStack_164;\n                      if (uStack_164 != 0) goto joined_r0x0004e770;\n                      piVar33 = piStack_e0 + iVar16;\n                      iVar28 = *piVar33;\n                      piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc);\n                      if (iVar28 == 0) {\n                        piStack_160 = (int *)*piVar17;\n                        piStack_15c = (int *)piVar17[1];\n                        iStack_158 = piVar17[2];\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        *piVar33 = iVar44;\n                      }\n                      else {\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }\n                      if ((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar16 = *(int *)(uVar41 + 8);\n                    uVar14 = uStack_11c;\n                  }\nLAB_0004e670:\n                  param_4 = (uint *)((int)param_4 + 1);\n                } while ((int)param_4 < iVar16);\n              }\n              uStack_168 = 0;\n            }\n            uStack_11c = uVar14 + 1;\n            uVar14 = (uint)*(byte *)((int)puStack_140 + uVar14);\n            do {\n              if (*(int *)(uVar41 + 0x2c) != 0) {\n                uVar37 = *(uint *)(*(int *)(uVar41 + 0x2c) + uVar14 * 4);\nLAB_0004ddf0:\n                if (piStack_e0 != (int *)0x0) goto LAB_0004ddfc;\n                goto LAB_0004de1c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x30);\n              if (iVar16 != 0) {\n                uVar37 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n                if ((uVar37 & 1) == 0) {\n                  uVar37 = *(uint *)(iVar16 + uVar14 * 4);\n                }\n                else {\n                  uVar37 = *(uint *)(iVar16 + (uVar14 + 0x100) * 4);\n                }\n                goto LAB_0004ddf0;\n              }\n              iVar16 = (*(code *)(iVar26 + -0x7510))(puStack_f0,uVar41);\n            } while (iVar16 != 0);\n            uStack_168 = 0xc;\n            uVar14 = uStack_168;\njoined_r0x0004e770:\n            uStack_168 = uVar14;\n            if (piStack_e0 == (int *)0x0) {\n              piVar17 = (int *)0x0;\n              goto LAB_0004dbb4;\n            }\n            uVar37 = 0;\nLAB_0004ddfc:\n            uVar37 = FUN_0004d0a8(&uStack_168,&puStack_144,uVar37);\nLAB_0004de1c:\n            uVar14 = uStack_11c;\n            if (uVar37 == 0) {\n              piVar17 = piStack_e0;\n              if (uStack_168 != 0) goto LAB_0004dbb4;\n              if ((piStack_e0 == (int *)0x0) || ((bVar5 && (!bVar22)))) break;\n              param_4 = &uStack_168;\n              do {\n                bVar2 = false;\n                piVar17 = piStack_e0 + uStack_11c;\n                uVar14 = uStack_11c;\n                do {\n                  uVar37 = uVar14 + 1;\n                  piVar17 = piVar17 + 1;\n                  if (iStack_dc < (int)uVar37) {\n                    if (bVar2) {\n                      uStack_11c = uVar14;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar2 = true;\n                  uVar14 = uVar37;\n                } while (*piVar17 == 0);\n                uStack_11c = uVar37;\n                uVar37 = FUN_0004d0a8(param_4,&puStack_144,0);\n                uVar14 = uStack_11c;\n                if (uStack_168 != 0) {\n                  if (uVar37 == 0) goto LAB_0004e0cc;\n                  break;\n                }\n              } while (uVar37 == 0);\n            }\n            uVar42 = uStack_1d0;\n            if ((bVar4) && (uVar42 = uVar40, uVar41 != uVar37)) {\n              bVar4 = false;\n              uVar42 = uStack_1d0;\n            }\n            uStack_1d0 = uVar42;\n            uVar41 = uVar37;\n            uStack_11c = uVar14;\n            if (((*(byte *)(uVar37 + 0x34) & 8) != 0) &&\n               (((*(byte *)(uVar37 + 0x34) & 1) == 0 ||\n                (iVar16 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar37 + 8),uVar37 + 0xc,uVar14)\n                , iVar16 != 0)))) {\n              if (!bVar22) goto LAB_0004e0e4;\n              ppuStack_1dc = (uint **)0x0;\n              uVar6 = uVar14;\n              bVar5 = bVar22;\n            }\n          }\nLAB_0004e0cc:\n          uVar14 = uVar6;\n          if (ppuStack_1dc != (uint **)0x0) {\n            *ppuStack_1dc = (uint *)((int)*ppuStack_1dc + uStack_1d0);\n          }\n        }\n        else {\n          uVar14 = FUN_00047924(&puStack_144,uVar41 + 8,uVar41 + 0xc,0);\n          uStack_168 = uVar14;\n          if (uVar14 == 0) {\n            if ((*(byte *)(uVar41 + 0x34) & 2) == 0) {\n              bVar4 = false;\n            }\n            else {\n              uVar14 = FUN_0004c6a8(&puStack_144,uVar41 + 8,uVar41 + 0xc);\n              uStack_168 = uVar14;\n              if (uVar14 != 0) goto LAB_0004e0e4;\n              bVar4 = false;\n            }\n            goto LAB_0004dd48;\n          }\n        }\nLAB_0004e0e4:\n        piVar17 = piStack_e0;\n        if (uVar14 != 0xffffffff) {\n          if (uVar14 == 0xfffffffe) goto LAB_0004dbf8;\n          uStack_e8 = uVar14;\n          if (((uint)ppuVar24[7] & 0x8000000) == 0) {\n            if (!bVar1) {\n              uVar6 = puVar43[0x13];\n              goto joined_r0x0004e94c;\n            }\n            pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n            iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                     piStack_e0[uVar14] + 0xc,uVar14);\n            if ((*(char *)(puVar43 + 0x16) < '\0') || (puVar43[0x13] != 0)) goto LAB_0004e170;\n          }\n          else {\n            uVar6 = puVar43[0x13];\njoined_r0x0004e94c:\n            if (uVar6 != 0) {\n              pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n              iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                       piStack_e0[uVar14] + 0xc,uVar14);\nLAB_0004e170:\n              iVar30 = iStack_e4;\n              puVar36 = puStack_f0;\n              if (uVar14 < 0x3fffffff) {\n                uStack_1f0 = uVar14 + 1;\n                piVar17 = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                if (piVar17 == (int *)0x0) goto LAB_0004dbf8;\n                if (puVar36[0x13] == 0) {\n                  piStack_15c = (int *)0x0;\n                  uStack_150 = 0;\n                  uStack_14c = 0;\n                  uStack_148 = 0;\n                  piStack_160 = piVar17;\n                  iStack_158 = iVar30;\n                  uStack_154 = uVar14;\n                  uStack_1e4 = FUN_0004d30c(&puStack_144,&piStack_160);\n                  (**(code **)(puVar46 + 0x28520))(uStack_148);\n                  if (uStack_1e4 == 0) {\n                    if (*piVar17 == 0) {\n                      (**(code **)(puVar46 + 0x28520))(piVar17);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar46 + 0x28520))(piStack_e0);\n                    uStack_e8 = uVar14;\n                    iStack_e4 = iVar30;\n                    piStack_e0 = piVar17;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  piStack_1ec = (int *)0x0;\n                }\n                else {\n                  piStack_1ec = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                  if (piStack_1ec == (int *)0x0) {\n                    (**(code **)(puVar46 + 0x28520))(piVar17);\n                    uStack_1e4 = 0xc;\n                    piVar17 = piStack_e0;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar15 = *(int *)(puVar46 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);\n                    uStack_150 = 0;\n                    uStack_14c = 0;\n                    uStack_148 = 0;\n                    piStack_160 = piVar17;\n                    piStack_15c = piStack_1ec;\n                    iStack_158 = iVar30;\n                    uStack_154 = uVar14;\n                    uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);\n                    (**(code **)(puVar46 + 0x28520))(uStack_148);\n                    if (uStack_1e4 != 0) break;\n                    if ((*piVar17 != 0) || (*piStack_1ec != 0)) {\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    piVar33 = piStack_e0 + (uStack_1f0 - 1);\n                    uStack_1f0 = uVar14;\n                    while( true ) {\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }\n                    iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       );\n                  }\n                }\n                (**(code **)(puVar46 + 0x28520))(piVar17);\n                (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                piVar17 = piStack_e0;\n                if (uStack_1e4 == 1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }\n              uStack_1e4 = 0xc;\n              goto LAB_0004dbbc;\n            }\n          }\nLAB_0004e7e0:\n          piVar17 = piStack_e0;\n          uStack_1e4 = uVar11;\n          if (local_78 == (uint *)0x0) goto LAB_0004dbbc;\n          puVar23 = ppuVar24[7];\n          if (bVar1) {\n            piVar17 = piStack_74 + 2;\n            do {\n              piVar17[1] = -1;\n              piVar33 = piVar17 + 2;\n              *piVar17 = -1;\n              piVar17 = piVar33;\n            } while (piStack_74 + (int)local_78 * 2 != piVar33);\n            *piStack_74 = 0;\n            piStack_74[1] = uStack_e8;\n            if (((uint)puVar23 & 0x8000000) == 0) {\n              if (*(char *)(puVar43 + 0x16) < '\0') {\n                bVar22 = 0 < (int)puVar43[0x13];\n              }\n              else {\n                bVar22 = false;\n              }\n              uStack_1e4 = FUN_0004bc00(ppuVar24,&puStack_144,local_78,piStack_74,bVar22);\n              piVar17 = piStack_e0;\n              if (uStack_1e4 != 0) goto LAB_0004dbbc;\n              puVar23 = (uint *)*piStack_74;\n            }\n            else {\nLAB_0004e838:\n              puVar23 = (uint *)0x0;\n            }\n            puVar36 = (uint *)0x0;\n            piVar17 = piStack_74;\n            while( true ) {\n              if (puVar23 != (uint *)0xffffffff) {\n                puVar32 = (uint *)piVar17[1];\n                puVar39 = puVar23;\n                puVar38 = puVar32;\n                if (cStack_f8 != '\0') {\n                  puVar39 = puStack_124;\n                  if (puStack_128 != puVar23) {\n                    puVar39 = *(uint **)(iStack_138 + (int)puVar23 * 4);\n                  }\n                  *piVar17 = (int)puVar39;\n                  puVar38 = puStack_124;\n                  if (puStack_128 != puVar32) {\n                    puVar38 = *(uint **)(iStack_138 + (int)puVar32 * 4);\n                  }\n                }\n                *piVar17 = (int)puStack_16c + (int)puVar39;\n                piVar17[1] = (int)puStack_16c + (int)puVar38;\n              }\n              puVar36 = (uint *)((int)puVar36 + 1);\n              piVar17 = piVar17 + 2;\n              if (puVar36 == local_78) break;\n              puVar23 = (uint *)*piVar17;\n            }\n            if (0 < iStack_180) {\n              piVar17 = piStack_74 + (int)local_78 * 2;\n              do {\n                *piVar17 = -1;\n                piVar33 = piVar17 + 2;\n                piVar17[1] = -1;\n                piVar17 = piVar33;\n              } while (piStack_74 + (iStack_180 + (int)local_78) * 2 != piVar33);\n            }\n            piVar33 = (int *)puVar43[0x21];\n            piVar17 = piStack_e0;\n            uStack_1e4 = uVar11;\n            if (piVar33 != (int *)0x0) {\n              iVar29 = 0;\n              piVar3 = piStack_74;\n              do {\n                pcVar45 = *(code **)(puVar46 + 0x28520);\n                if (iVar29 == (int)local_78 + -1) goto LAB_0004dbc0;\n                if (*piVar33 != iVar29) {\n                  piVar3[2] = piStack_74[(*piVar33 + 1) * 2];\n                  piVar3[3] = piStack_74[(*piVar33 + 1) * 2 + 1];\n                }\n                iVar29 = iVar29 + 1;\n                piVar33 = piVar33 + 1;\n                piVar3 = piVar3 + 2;\n              } while( true );\n            }\n            goto LAB_0004dbbc;\n          }\n          *piStack_74 = 0;\n          piStack_74[1] = uStack_e8;\n          goto LAB_0004e838;\n        }\nLAB_0004e2d4:\n        FUN_00044db0(&puStack_144);\n        param_4 = puStack_16c;\n      }\n      param_4 = (uint *)((int)param_4 + iVar29);\n      puStack_16c = param_4;\n      if (((int)param_4 < (int)puVar23) ||\n         (iVar30 = iStack_12c, puVar36 = puStack_88, (int)puVar38 < (int)param_4)) break;\n    } while( true );\n  }" if (parenthesized_expression "(((int)puVar23 <= (int)param_4) && ((int)param_4 <= (int)puVar38))" ( (binary_expression "((int)puVar23 <= (int)param_4) && ((int)param_4 <= (int)puVar38)" (parenthesized_expression "((int)puVar23 <= (int)param_4)" ( (binary_expression "(int)puVar23 <= (int)param_4" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "((int)param_4 <= (int)puVar38)" ( (binary_expression "(int)param_4 <= (int)puVar38" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)puVar38" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (compound_statement "{\n    ppuVar12 = &puStack_16c;\n    if (uVar6 != 0) {\n      ppuVar12 = (uint **)0x0;\n    }\n    iVar25 = *(int *)(puVar46 + 0x28244);\n    iVar13 = *(int *)(puVar46 + 0x27edc);\n    iVar26 = *(int *)(puVar46 + 0x2829c);\n    iVar30 = iStack_12c;\n    puVar36 = puStack_88;\n    do {\n      puStack_88 = puVar36;\n      if (uVar31 - 4 < 5) {\n                    /* WARNING: Could not recover jumptable at 0x0004db3c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar6 = (*(code *)(puVar46 + *(int *)(iVar13 + 0x2be4 + (uVar31 - 4) * 4) + 0x2fea4))();\n        return uVar6;\n      }\n      iStack_12c = iVar30;\n      while( true ) {\n        puVar39 = (uint *)((int)param_4 - iVar30);\n        if (puStack_124 <= puVar39) {\n          uStack_1e4 = (*(code *)(iVar25 + 0x7eac))(&puStack_144,param_4,&_gp_1);\n          piVar17 = piStack_e0;\n          if (uStack_1e4 != 0) goto LAB_0004dbbc;\n          puVar39 = (uint *)((int)param_4 - iStack_12c);\n          iVar30 = iStack_12c;\n        }\n        if ((int)param_4 < (int)puVar36) {\n          cVar21 = *(char *)((int)puStack_1e0 + (uint)*(byte *)((int)puStack_140 + (int)puVar39));\n        }\n        else {\n          cVar21 = *(char *)puStack_1e0;\n        }\n        if (cVar21 != '\0') break;\n        param_4 = (uint *)((int)param_4 + iVar29);\n        puStack_16c = param_4;\n        if (((int)param_4 < (int)puVar23) || ((int)puVar38 < (int)param_4)) goto LAB_0004df68;\n      }\n      uVar11 = FUN_00047eac(&puStack_144,param_4,&_gp_1);\n      puVar36 = puStack_f0;\n      uVar6 = uStack_11c;\n      piVar17 = piStack_e0;\n      uStack_1e4 = uVar11;\n      if (uVar11 != 0) goto LAB_0004dbbc;\n      if (((uVar34 == 1) || (puStack_128 == (uint *)0x0)) || (*piStack_13c != -1)) {\n        iStack_cc = 0;\n        uStack_d8 = 0;\n        uVar41 = puStack_f0[9];\n        uStack_1d0 = uStack_11c;\n        iStack_dc = 0;\n        uStack_168 = 0;\n        if ((*(byte *)(uVar41 + 0x34) & 1) != 0) {\n          uVar14 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n          if ((uVar14 & 1) == 0) {\n            if (uVar14 == 0) goto LAB_0004dd24;\n            if ((uVar14 & 6) == 6) {\n              uVar41 = puVar36[0xc];\n            }\n            else if ((uVar14 & 2) == 0) {\n              if ((uVar14 & 4) == 0) goto LAB_0004dd24;\n              uVar41 = FUN_00046cac(&uStack_168,puVar36,*(undefined4 *)(uVar41 + 0x28),uVar14);\n            }\n            else {\n              uVar41 = puVar36[0xb];\n            }\n          }\n          else {\n            uVar41 = puVar36[10];\n          }\n          if (uVar41 == 0) goto code_r0x0004ea7c;\n        }\nLAB_0004dd24:\n        bVar4 = ppuVar12 != (uint **)0x0;\n        if ((piStack_e0 == (int *)0x0) ||\n           (uVar14 = puVar36[0x13], piStack_e0[uVar6] = uVar41, uVar14 == 0)) {\nLAB_0004dd48:\n          if (*(int *)(uVar41 + 0x34) << 4 < 0) {\n            if (((*(byte *)(uVar41 + 0x34) & 1) == 0) ||\n               (iVar30 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar41 + 8),uVar41 + 0xc,uVar6),\n               iVar30 != 0)) {\n              uVar14 = uVar6;\n              bVar5 = bVar22;\n              if (!bVar22) goto LAB_0004e0e4;\n            }\n            else {\n              uVar6 = 0xffffffff;\n              bVar5 = false;\n            }\n          }\n          else {\n            uVar6 = 0xffffffff;\n            bVar5 = false;\n          }\n          iVar30 = *(int *)(puVar46 + 0x28244);\n          iVar15 = *(int *)(puVar46 + 0x2829c);\n          uVar14 = uStack_11c;\n          ppuStack_1dc = ppuVar12;\n          while ((int)uVar14 < (int)puStack_10c) {\n            uVar40 = uVar14 + 1;\n            if ((((int)uVar40 < (int)uStack_120) || ((int)puStack_114 <= (int)uStack_120)) &&\n               (((int)uVar40 < (int)puStack_128 || ((int)puStack_114 <= (int)puStack_128)))) {\n              iVar16 = *(int *)(uVar41 + 0x34);\n              puVar36 = puStack_f0;\n            }\n            else {\n              uStack_168 = (*(code *)(iVar30 + 0x41e4))(&puStack_144,uVar14 + 2);\n              if (uStack_168 != 0) {\n                if (uStack_168 == 0xc) goto LAB_0004dbf8;\n                uVar20 = 0x46c;\n                goto LAB_0004ea9c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x34);\n              uVar14 = uStack_11c;\n              puVar36 = puStack_f0;\n            }\n            puStack_f0 = puVar36;\n            if (iVar16 << 5 < 0) {\n              iVar16 = *(int *)(uVar41 + 8);\n              if (0 < iVar16) {\n                param_4 = (uint *)0x0;\n                iVar18 = *(int *)(puVar46 + 0x28244);\n                pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7ab0);\n                do {\n                  uVar42 = *puVar36;\n                  iVar44 = *(int *)(*(int *)(uVar41 + 0xc) + (int)param_4 * 4);\n                  uVar37 = *(uint *)(uVar42 + iVar44 * 8 + 4);\n                  if ((uVar37 & 0x800) != 0) {\n                    if ((uVar37 & 0xffc000) != 0) {\n                      uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec);\n                      uVar37 = (uVar37 << 8) >> 0x16;\n                      if ((uVar37 & 4) == 0) {\n                        uVar27 = uVar19 & 1;\n                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    iVar16 = (*(code *)(iVar15 + -0x4eb0))\n                                       (uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14);\n                    if (iVar16 != 0) {\n                      if (iStack_cc < iVar16) {\n                        iStack_cc = iVar16;\n                      }\n                      iVar16 = iVar16 + uStack_11c;\n                      uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16);\n                      uVar14 = uStack_164;\n                      if (uStack_164 != 0) goto joined_r0x0004e770;\n                      piVar33 = piStack_e0 + iVar16;\n                      iVar28 = *piVar33;\n                      piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc);\n                      if (iVar28 == 0) {\n                        piStack_160 = (int *)*piVar17;\n                        piStack_15c = (int *)piVar17[1];\n                        iStack_158 = piVar17[2];\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        *piVar33 = iVar44;\n                      }\n                      else {\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }\n                      if ((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar16 = *(int *)(uVar41 + 8);\n                    uVar14 = uStack_11c;\n                  }\nLAB_0004e670:\n                  param_4 = (uint *)((int)param_4 + 1);\n                } while ((int)param_4 < iVar16);\n              }\n              uStack_168 = 0;\n            }\n            uStack_11c = uVar14 + 1;\n            uVar14 = (uint)*(byte *)((int)puStack_140 + uVar14);\n            do {\n              if (*(int *)(uVar41 + 0x2c) != 0) {\n                uVar37 = *(uint *)(*(int *)(uVar41 + 0x2c) + uVar14 * 4);\nLAB_0004ddf0:\n                if (piStack_e0 != (int *)0x0) goto LAB_0004ddfc;\n                goto LAB_0004de1c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x30);\n              if (iVar16 != 0) {\n                uVar37 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n                if ((uVar37 & 1) == 0) {\n                  uVar37 = *(uint *)(iVar16 + uVar14 * 4);\n                }\n                else {\n                  uVar37 = *(uint *)(iVar16 + (uVar14 + 0x100) * 4);\n                }\n                goto LAB_0004ddf0;\n              }\n              iVar16 = (*(code *)(iVar26 + -0x7510))(puStack_f0,uVar41);\n            } while (iVar16 != 0);\n            uStack_168 = 0xc;\n            uVar14 = uStack_168;\njoined_r0x0004e770:\n            uStack_168 = uVar14;\n            if (piStack_e0 == (int *)0x0) {\n              piVar17 = (int *)0x0;\n              goto LAB_0004dbb4;\n            }\n            uVar37 = 0;\nLAB_0004ddfc:\n            uVar37 = FUN_0004d0a8(&uStack_168,&puStack_144,uVar37);\nLAB_0004de1c:\n            uVar14 = uStack_11c;\n            if (uVar37 == 0) {\n              piVar17 = piStack_e0;\n              if (uStack_168 != 0) goto LAB_0004dbb4;\n              if ((piStack_e0 == (int *)0x0) || ((bVar5 && (!bVar22)))) break;\n              param_4 = &uStack_168;\n              do {\n                bVar2 = false;\n                piVar17 = piStack_e0 + uStack_11c;\n                uVar14 = uStack_11c;\n                do {\n                  uVar37 = uVar14 + 1;\n                  piVar17 = piVar17 + 1;\n                  if (iStack_dc < (int)uVar37) {\n                    if (bVar2) {\n                      uStack_11c = uVar14;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar2 = true;\n                  uVar14 = uVar37;\n                } while (*piVar17 == 0);\n                uStack_11c = uVar37;\n                uVar37 = FUN_0004d0a8(param_4,&puStack_144,0);\n                uVar14 = uStack_11c;\n                if (uStack_168 != 0) {\n                  if (uVar37 == 0) goto LAB_0004e0cc;\n                  break;\n                }\n              } while (uVar37 == 0);\n            }\n            uVar42 = uStack_1d0;\n            if ((bVar4) && (uVar42 = uVar40, uVar41 != uVar37)) {\n              bVar4 = false;\n              uVar42 = uStack_1d0;\n            }\n            uStack_1d0 = uVar42;\n            uVar41 = uVar37;\n            uStack_11c = uVar14;\n            if (((*(byte *)(uVar37 + 0x34) & 8) != 0) &&\n               (((*(byte *)(uVar37 + 0x34) & 1) == 0 ||\n                (iVar16 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar37 + 8),uVar37 + 0xc,uVar14)\n                , iVar16 != 0)))) {\n              if (!bVar22) goto LAB_0004e0e4;\n              ppuStack_1dc = (uint **)0x0;\n              uVar6 = uVar14;\n              bVar5 = bVar22;\n            }\n          }\nLAB_0004e0cc:\n          uVar14 = uVar6;\n          if (ppuStack_1dc != (uint **)0x0) {\n            *ppuStack_1dc = (uint *)((int)*ppuStack_1dc + uStack_1d0);\n          }\n        }\n        else {\n          uVar14 = FUN_00047924(&puStack_144,uVar41 + 8,uVar41 + 0xc,0);\n          uStack_168 = uVar14;\n          if (uVar14 == 0) {\n            if ((*(byte *)(uVar41 + 0x34) & 2) == 0) {\n              bVar4 = false;\n            }\n            else {\n              uVar14 = FUN_0004c6a8(&puStack_144,uVar41 + 8,uVar41 + 0xc);\n              uStack_168 = uVar14;\n              if (uVar14 != 0) goto LAB_0004e0e4;\n              bVar4 = false;\n            }\n            goto LAB_0004dd48;\n          }\n        }\nLAB_0004e0e4:\n        piVar17 = piStack_e0;\n        if (uVar14 != 0xffffffff) {\n          if (uVar14 == 0xfffffffe) goto LAB_0004dbf8;\n          uStack_e8 = uVar14;\n          if (((uint)ppuVar24[7] & 0x8000000) == 0) {\n            if (!bVar1) {\n              uVar6 = puVar43[0x13];\n              goto joined_r0x0004e94c;\n            }\n            pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n            iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                     piStack_e0[uVar14] + 0xc,uVar14);\n            if ((*(char *)(puVar43 + 0x16) < '\0') || (puVar43[0x13] != 0)) goto LAB_0004e170;\n          }\n          else {\n            uVar6 = puVar43[0x13];\njoined_r0x0004e94c:\n            if (uVar6 != 0) {\n              pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n              iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                       piStack_e0[uVar14] + 0xc,uVar14);\nLAB_0004e170:\n              iVar30 = iStack_e4;\n              puVar36 = puStack_f0;\n              if (uVar14 < 0x3fffffff) {\n                uStack_1f0 = uVar14 + 1;\n                piVar17 = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                if (piVar17 == (int *)0x0) goto LAB_0004dbf8;\n                if (puVar36[0x13] == 0) {\n                  piStack_15c = (int *)0x0;\n                  uStack_150 = 0;\n                  uStack_14c = 0;\n                  uStack_148 = 0;\n                  piStack_160 = piVar17;\n                  iStack_158 = iVar30;\n                  uStack_154 = uVar14;\n                  uStack_1e4 = FUN_0004d30c(&puStack_144,&piStack_160);\n                  (**(code **)(puVar46 + 0x28520))(uStack_148);\n                  if (uStack_1e4 == 0) {\n                    if (*piVar17 == 0) {\n                      (**(code **)(puVar46 + 0x28520))(piVar17);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar46 + 0x28520))(piStack_e0);\n                    uStack_e8 = uVar14;\n                    iStack_e4 = iVar30;\n                    piStack_e0 = piVar17;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  piStack_1ec = (int *)0x0;\n                }\n                else {\n                  piStack_1ec = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                  if (piStack_1ec == (int *)0x0) {\n                    (**(code **)(puVar46 + 0x28520))(piVar17);\n                    uStack_1e4 = 0xc;\n                    piVar17 = piStack_e0;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar15 = *(int *)(puVar46 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);\n                    uStack_150 = 0;\n                    uStack_14c = 0;\n                    uStack_148 = 0;\n                    piStack_160 = piVar17;\n                    piStack_15c = piStack_1ec;\n                    iStack_158 = iVar30;\n                    uStack_154 = uVar14;\n                    uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);\n                    (**(code **)(puVar46 + 0x28520))(uStack_148);\n                    if (uStack_1e4 != 0) break;\n                    if ((*piVar17 != 0) || (*piStack_1ec != 0)) {\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    piVar33 = piStack_e0 + (uStack_1f0 - 1);\n                    uStack_1f0 = uVar14;\n                    while( true ) {\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }\n                    iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       );\n                  }\n                }\n                (**(code **)(puVar46 + 0x28520))(piVar17);\n                (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                piVar17 = piStack_e0;\n                if (uStack_1e4 == 1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }\n              uStack_1e4 = 0xc;\n              goto LAB_0004dbbc;\n            }\n          }\nLAB_0004e7e0:\n          piVar17 = piStack_e0;\n          uStack_1e4 = uVar11;\n          if (local_78 == (uint *)0x0) goto LAB_0004dbbc;\n          puVar23 = ppuVar24[7];\n          if (bVar1) {\n            piVar17 = piStack_74 + 2;\n            do {\n              piVar17[1] = -1;\n              piVar33 = piVar17 + 2;\n              *piVar17 = -1;\n              piVar17 = piVar33;\n            } while (piStack_74 + (int)local_78 * 2 != piVar33);\n            *piStack_74 = 0;\n            piStack_74[1] = uStack_e8;\n            if (((uint)puVar23 & 0x8000000) == 0) {\n              if (*(char *)(puVar43 + 0x16) < '\0') {\n                bVar22 = 0 < (int)puVar43[0x13];\n              }\n              else {\n                bVar22 = false;\n              }\n              uStack_1e4 = FUN_0004bc00(ppuVar24,&puStack_144,local_78,piStack_74,bVar22);\n              piVar17 = piStack_e0;\n              if (uStack_1e4 != 0) goto LAB_0004dbbc;\n              puVar23 = (uint *)*piStack_74;\n            }\n            else {\nLAB_0004e838:\n              puVar23 = (uint *)0x0;\n            }\n            puVar36 = (uint *)0x0;\n            piVar17 = piStack_74;\n            while( true ) {\n              if (puVar23 != (uint *)0xffffffff) {\n                puVar32 = (uint *)piVar17[1];\n                puVar39 = puVar23;\n                puVar38 = puVar32;\n                if (cStack_f8 != '\0') {\n                  puVar39 = puStack_124;\n                  if (puStack_128 != puVar23) {\n                    puVar39 = *(uint **)(iStack_138 + (int)puVar23 * 4);\n                  }\n                  *piVar17 = (int)puVar39;\n                  puVar38 = puStack_124;\n                  if (puStack_128 != puVar32) {\n                    puVar38 = *(uint **)(iStack_138 + (int)puVar32 * 4);\n                  }\n                }\n                *piVar17 = (int)puStack_16c + (int)puVar39;\n                piVar17[1] = (int)puStack_16c + (int)puVar38;\n              }\n              puVar36 = (uint *)((int)puVar36 + 1);\n              piVar17 = piVar17 + 2;\n              if (puVar36 == local_78) break;\n              puVar23 = (uint *)*piVar17;\n            }\n            if (0 < iStack_180) {\n              piVar17 = piStack_74 + (int)local_78 * 2;\n              do {\n                *piVar17 = -1;\n                piVar33 = piVar17 + 2;\n                piVar17[1] = -1;\n                piVar17 = piVar33;\n              } while (piStack_74 + (iStack_180 + (int)local_78) * 2 != piVar33);\n            }\n            piVar33 = (int *)puVar43[0x21];\n            piVar17 = piStack_e0;\n            uStack_1e4 = uVar11;\n            if (piVar33 != (int *)0x0) {\n              iVar29 = 0;\n              piVar3 = piStack_74;\n              do {\n                pcVar45 = *(code **)(puVar46 + 0x28520);\n                if (iVar29 == (int)local_78 + -1) goto LAB_0004dbc0;\n                if (*piVar33 != iVar29) {\n                  piVar3[2] = piStack_74[(*piVar33 + 1) * 2];\n                  piVar3[3] = piStack_74[(*piVar33 + 1) * 2 + 1];\n                }\n                iVar29 = iVar29 + 1;\n                piVar33 = piVar33 + 1;\n                piVar3 = piVar3 + 2;\n              } while( true );\n            }\n            goto LAB_0004dbbc;\n          }\n          *piStack_74 = 0;\n          piStack_74[1] = uStack_e8;\n          goto LAB_0004e838;\n        }\nLAB_0004e2d4:\n        FUN_00044db0(&puStack_144);\n        param_4 = puStack_16c;\n      }\n      param_4 = (uint *)((int)param_4 + iVar29);\n      puStack_16c = param_4;\n      if (((int)param_4 < (int)puVar23) ||\n         (iVar30 = iStack_12c, puVar36 = puStack_88, (int)puVar38 < (int)param_4)) break;\n    } while( true );\n  }" { (expression_statement "ppuVar12 = &puStack_16c;" (assignment_expression "ppuVar12 = &puStack_16c" identifier = (pointer_expression "&puStack_16c" & identifier)) ;) (if_statement "if (uVar6 != 0) {\n      ppuVar12 = (uint **)0x0;\n    }" if (parenthesized_expression "(uVar6 != 0)" ( (binary_expression "uVar6 != 0" identifier != number_literal) )) (compound_statement "{\n      ppuVar12 = (uint **)0x0;\n    }" { (expression_statement "ppuVar12 = (uint **)0x0;" (assignment_expression "ppuVar12 = (uint **)0x0" identifier = (cast_expression "(uint **)0x0" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) })) (expression_statement "iVar25 = *(int *)(puVar46 + 0x28244);" (assignment_expression "iVar25 = *(int *)(puVar46 + 0x28244)" identifier = (pointer_expression "*(int *)(puVar46 + 0x28244)" * (cast_expression "(int *)(puVar46 + 0x28244)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar46 + 0x28244)" ( (binary_expression "puVar46 + 0x28244" identifier + number_literal) ))))) ;) (expression_statement "iVar13 = *(int *)(puVar46 + 0x27edc);" (assignment_expression "iVar13 = *(int *)(puVar46 + 0x27edc)" identifier = (pointer_expression "*(int *)(puVar46 + 0x27edc)" * (cast_expression "(int *)(puVar46 + 0x27edc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar46 + 0x27edc)" ( (binary_expression "puVar46 + 0x27edc" identifier + number_literal) ))))) ;) (expression_statement "iVar26 = *(int *)(puVar46 + 0x2829c);" (assignment_expression "iVar26 = *(int *)(puVar46 + 0x2829c)" identifier = (pointer_expression "*(int *)(puVar46 + 0x2829c)" * (cast_expression "(int *)(puVar46 + 0x2829c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar46 + 0x2829c)" ( (binary_expression "puVar46 + 0x2829c" identifier + number_literal) ))))) ;) (expression_statement "iVar30 = iStack_12c;" (assignment_expression "iVar30 = iStack_12c" identifier = identifier) ;) (expression_statement "puVar36 = puStack_88;" (assignment_expression "puVar36 = puStack_88" identifier = identifier) ;) (do_statement "do {\n      puStack_88 = puVar36;\n      if (uVar31 - 4 < 5) {\n                    /* WARNING: Could not recover jumptable at 0x0004db3c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar6 = (*(code *)(puVar46 + *(int *)(iVar13 + 0x2be4 + (uVar31 - 4) * 4) + 0x2fea4))();\n        return uVar6;\n      }\n      iStack_12c = iVar30;\n      while( true ) {\n        puVar39 = (uint *)((int)param_4 - iVar30);\n        if (puStack_124 <= puVar39) {\n          uStack_1e4 = (*(code *)(iVar25 + 0x7eac))(&puStack_144,param_4,&_gp_1);\n          piVar17 = piStack_e0;\n          if (uStack_1e4 != 0) goto LAB_0004dbbc;\n          puVar39 = (uint *)((int)param_4 - iStack_12c);\n          iVar30 = iStack_12c;\n        }\n        if ((int)param_4 < (int)puVar36) {\n          cVar21 = *(char *)((int)puStack_1e0 + (uint)*(byte *)((int)puStack_140 + (int)puVar39));\n        }\n        else {\n          cVar21 = *(char *)puStack_1e0;\n        }\n        if (cVar21 != '\0') break;\n        param_4 = (uint *)((int)param_4 + iVar29);\n        puStack_16c = param_4;\n        if (((int)param_4 < (int)puVar23) || ((int)puVar38 < (int)param_4)) goto LAB_0004df68;\n      }\n      uVar11 = FUN_00047eac(&puStack_144,param_4,&_gp_1);\n      puVar36 = puStack_f0;\n      uVar6 = uStack_11c;\n      piVar17 = piStack_e0;\n      uStack_1e4 = uVar11;\n      if (uVar11 != 0) goto LAB_0004dbbc;\n      if (((uVar34 == 1) || (puStack_128 == (uint *)0x0)) || (*piStack_13c != -1)) {\n        iStack_cc = 0;\n        uStack_d8 = 0;\n        uVar41 = puStack_f0[9];\n        uStack_1d0 = uStack_11c;\n        iStack_dc = 0;\n        uStack_168 = 0;\n        if ((*(byte *)(uVar41 + 0x34) & 1) != 0) {\n          uVar14 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n          if ((uVar14 & 1) == 0) {\n            if (uVar14 == 0) goto LAB_0004dd24;\n            if ((uVar14 & 6) == 6) {\n              uVar41 = puVar36[0xc];\n            }\n            else if ((uVar14 & 2) == 0) {\n              if ((uVar14 & 4) == 0) goto LAB_0004dd24;\n              uVar41 = FUN_00046cac(&uStack_168,puVar36,*(undefined4 *)(uVar41 + 0x28),uVar14);\n            }\n            else {\n              uVar41 = puVar36[0xb];\n            }\n          }\n          else {\n            uVar41 = puVar36[10];\n          }\n          if (uVar41 == 0) goto code_r0x0004ea7c;\n        }\nLAB_0004dd24:\n        bVar4 = ppuVar12 != (uint **)0x0;\n        if ((piStack_e0 == (int *)0x0) ||\n           (uVar14 = puVar36[0x13], piStack_e0[uVar6] = uVar41, uVar14 == 0)) {\nLAB_0004dd48:\n          if (*(int *)(uVar41 + 0x34) << 4 < 0) {\n            if (((*(byte *)(uVar41 + 0x34) & 1) == 0) ||\n               (iVar30 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar41 + 8),uVar41 + 0xc,uVar6),\n               iVar30 != 0)) {\n              uVar14 = uVar6;\n              bVar5 = bVar22;\n              if (!bVar22) goto LAB_0004e0e4;\n            }\n            else {\n              uVar6 = 0xffffffff;\n              bVar5 = false;\n            }\n          }\n          else {\n            uVar6 = 0xffffffff;\n            bVar5 = false;\n          }\n          iVar30 = *(int *)(puVar46 + 0x28244);\n          iVar15 = *(int *)(puVar46 + 0x2829c);\n          uVar14 = uStack_11c;\n          ppuStack_1dc = ppuVar12;\n          while ((int)uVar14 < (int)puStack_10c) {\n            uVar40 = uVar14 + 1;\n            if ((((int)uVar40 < (int)uStack_120) || ((int)puStack_114 <= (int)uStack_120)) &&\n               (((int)uVar40 < (int)puStack_128 || ((int)puStack_114 <= (int)puStack_128)))) {\n              iVar16 = *(int *)(uVar41 + 0x34);\n              puVar36 = puStack_f0;\n            }\n            else {\n              uStack_168 = (*(code *)(iVar30 + 0x41e4))(&puStack_144,uVar14 + 2);\n              if (uStack_168 != 0) {\n                if (uStack_168 == 0xc) goto LAB_0004dbf8;\n                uVar20 = 0x46c;\n                goto LAB_0004ea9c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x34);\n              uVar14 = uStack_11c;\n              puVar36 = puStack_f0;\n            }\n            puStack_f0 = puVar36;\n            if (iVar16 << 5 < 0) {\n              iVar16 = *(int *)(uVar41 + 8);\n              if (0 < iVar16) {\n                param_4 = (uint *)0x0;\n                iVar18 = *(int *)(puVar46 + 0x28244);\n                pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7ab0);\n                do {\n                  uVar42 = *puVar36;\n                  iVar44 = *(int *)(*(int *)(uVar41 + 0xc) + (int)param_4 * 4);\n                  uVar37 = *(uint *)(uVar42 + iVar44 * 8 + 4);\n                  if ((uVar37 & 0x800) != 0) {\n                    if ((uVar37 & 0xffc000) != 0) {\n                      uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec);\n                      uVar37 = (uVar37 << 8) >> 0x16;\n                      if ((uVar37 & 4) == 0) {\n                        uVar27 = uVar19 & 1;\n                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    iVar16 = (*(code *)(iVar15 + -0x4eb0))\n                                       (uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14);\n                    if (iVar16 != 0) {\n                      if (iStack_cc < iVar16) {\n                        iStack_cc = iVar16;\n                      }\n                      iVar16 = iVar16 + uStack_11c;\n                      uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16);\n                      uVar14 = uStack_164;\n                      if (uStack_164 != 0) goto joined_r0x0004e770;\n                      piVar33 = piStack_e0 + iVar16;\n                      iVar28 = *piVar33;\n                      piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc);\n                      if (iVar28 == 0) {\n                        piStack_160 = (int *)*piVar17;\n                        piStack_15c = (int *)piVar17[1];\n                        iStack_158 = piVar17[2];\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        *piVar33 = iVar44;\n                      }\n                      else {\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }\n                      if ((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar16 = *(int *)(uVar41 + 8);\n                    uVar14 = uStack_11c;\n                  }\nLAB_0004e670:\n                  param_4 = (uint *)((int)param_4 + 1);\n                } while ((int)param_4 < iVar16);\n              }\n              uStack_168 = 0;\n            }\n            uStack_11c = uVar14 + 1;\n            uVar14 = (uint)*(byte *)((int)puStack_140 + uVar14);\n            do {\n              if (*(int *)(uVar41 + 0x2c) != 0) {\n                uVar37 = *(uint *)(*(int *)(uVar41 + 0x2c) + uVar14 * 4);\nLAB_0004ddf0:\n                if (piStack_e0 != (int *)0x0) goto LAB_0004ddfc;\n                goto LAB_0004de1c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x30);\n              if (iVar16 != 0) {\n                uVar37 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n                if ((uVar37 & 1) == 0) {\n                  uVar37 = *(uint *)(iVar16 + uVar14 * 4);\n                }\n                else {\n                  uVar37 = *(uint *)(iVar16 + (uVar14 + 0x100) * 4);\n                }\n                goto LAB_0004ddf0;\n              }\n              iVar16 = (*(code *)(iVar26 + -0x7510))(puStack_f0,uVar41);\n            } while (iVar16 != 0);\n            uStack_168 = 0xc;\n            uVar14 = uStack_168;\njoined_r0x0004e770:\n            uStack_168 = uVar14;\n            if (piStack_e0 == (int *)0x0) {\n              piVar17 = (int *)0x0;\n              goto LAB_0004dbb4;\n            }\n            uVar37 = 0;\nLAB_0004ddfc:\n            uVar37 = FUN_0004d0a8(&uStack_168,&puStack_144,uVar37);\nLAB_0004de1c:\n            uVar14 = uStack_11c;\n            if (uVar37 == 0) {\n              piVar17 = piStack_e0;\n              if (uStack_168 != 0) goto LAB_0004dbb4;\n              if ((piStack_e0 == (int *)0x0) || ((bVar5 && (!bVar22)))) break;\n              param_4 = &uStack_168;\n              do {\n                bVar2 = false;\n                piVar17 = piStack_e0 + uStack_11c;\n                uVar14 = uStack_11c;\n                do {\n                  uVar37 = uVar14 + 1;\n                  piVar17 = piVar17 + 1;\n                  if (iStack_dc < (int)uVar37) {\n                    if (bVar2) {\n                      uStack_11c = uVar14;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar2 = true;\n                  uVar14 = uVar37;\n                } while (*piVar17 == 0);\n                uStack_11c = uVar37;\n                uVar37 = FUN_0004d0a8(param_4,&puStack_144,0);\n                uVar14 = uStack_11c;\n                if (uStack_168 != 0) {\n                  if (uVar37 == 0) goto LAB_0004e0cc;\n                  break;\n                }\n              } while (uVar37 == 0);\n            }\n            uVar42 = uStack_1d0;\n            if ((bVar4) && (uVar42 = uVar40, uVar41 != uVar37)) {\n              bVar4 = false;\n              uVar42 = uStack_1d0;\n            }\n            uStack_1d0 = uVar42;\n            uVar41 = uVar37;\n            uStack_11c = uVar14;\n            if (((*(byte *)(uVar37 + 0x34) & 8) != 0) &&\n               (((*(byte *)(uVar37 + 0x34) & 1) == 0 ||\n                (iVar16 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar37 + 8),uVar37 + 0xc,uVar14)\n                , iVar16 != 0)))) {\n              if (!bVar22) goto LAB_0004e0e4;\n              ppuStack_1dc = (uint **)0x0;\n              uVar6 = uVar14;\n              bVar5 = bVar22;\n            }\n          }\nLAB_0004e0cc:\n          uVar14 = uVar6;\n          if (ppuStack_1dc != (uint **)0x0) {\n            *ppuStack_1dc = (uint *)((int)*ppuStack_1dc + uStack_1d0);\n          }\n        }\n        else {\n          uVar14 = FUN_00047924(&puStack_144,uVar41 + 8,uVar41 + 0xc,0);\n          uStack_168 = uVar14;\n          if (uVar14 == 0) {\n            if ((*(byte *)(uVar41 + 0x34) & 2) == 0) {\n              bVar4 = false;\n            }\n            else {\n              uVar14 = FUN_0004c6a8(&puStack_144,uVar41 + 8,uVar41 + 0xc);\n              uStack_168 = uVar14;\n              if (uVar14 != 0) goto LAB_0004e0e4;\n              bVar4 = false;\n            }\n            goto LAB_0004dd48;\n          }\n        }\nLAB_0004e0e4:\n        piVar17 = piStack_e0;\n        if (uVar14 != 0xffffffff) {\n          if (uVar14 == 0xfffffffe) goto LAB_0004dbf8;\n          uStack_e8 = uVar14;\n          if (((uint)ppuVar24[7] & 0x8000000) == 0) {\n            if (!bVar1) {\n              uVar6 = puVar43[0x13];\n              goto joined_r0x0004e94c;\n            }\n            pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n            iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                     piStack_e0[uVar14] + 0xc,uVar14);\n            if ((*(char *)(puVar43 + 0x16) < '\0') || (puVar43[0x13] != 0)) goto LAB_0004e170;\n          }\n          else {\n            uVar6 = puVar43[0x13];\njoined_r0x0004e94c:\n            if (uVar6 != 0) {\n              pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n              iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                       piStack_e0[uVar14] + 0xc,uVar14);\nLAB_0004e170:\n              iVar30 = iStack_e4;\n              puVar36 = puStack_f0;\n              if (uVar14 < 0x3fffffff) {\n                uStack_1f0 = uVar14 + 1;\n                piVar17 = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                if (piVar17 == (int *)0x0) goto LAB_0004dbf8;\n                if (puVar36[0x13] == 0) {\n                  piStack_15c = (int *)0x0;\n                  uStack_150 = 0;\n                  uStack_14c = 0;\n                  uStack_148 = 0;\n                  piStack_160 = piVar17;\n                  iStack_158 = iVar30;\n                  uStack_154 = uVar14;\n                  uStack_1e4 = FUN_0004d30c(&puStack_144,&piStack_160);\n                  (**(code **)(puVar46 + 0x28520))(uStack_148);\n                  if (uStack_1e4 == 0) {\n                    if (*piVar17 == 0) {\n                      (**(code **)(puVar46 + 0x28520))(piVar17);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar46 + 0x28520))(piStack_e0);\n                    uStack_e8 = uVar14;\n                    iStack_e4 = iVar30;\n                    piStack_e0 = piVar17;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  piStack_1ec = (int *)0x0;\n                }\n                else {\n                  piStack_1ec = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                  if (piStack_1ec == (int *)0x0) {\n                    (**(code **)(puVar46 + 0x28520))(piVar17);\n                    uStack_1e4 = 0xc;\n                    piVar17 = piStack_e0;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar15 = *(int *)(puVar46 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);\n                    uStack_150 = 0;\n                    uStack_14c = 0;\n                    uStack_148 = 0;\n                    piStack_160 = piVar17;\n                    piStack_15c = piStack_1ec;\n                    iStack_158 = iVar30;\n                    uStack_154 = uVar14;\n                    uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);\n                    (**(code **)(puVar46 + 0x28520))(uStack_148);\n                    if (uStack_1e4 != 0) break;\n                    if ((*piVar17 != 0) || (*piStack_1ec != 0)) {\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    piVar33 = piStack_e0 + (uStack_1f0 - 1);\n                    uStack_1f0 = uVar14;\n                    while( true ) {\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }\n                    iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       );\n                  }\n                }\n                (**(code **)(puVar46 + 0x28520))(piVar17);\n                (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                piVar17 = piStack_e0;\n                if (uStack_1e4 == 1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }\n              uStack_1e4 = 0xc;\n              goto LAB_0004dbbc;\n            }\n          }\nLAB_0004e7e0:\n          piVar17 = piStack_e0;\n          uStack_1e4 = uVar11;\n          if (local_78 == (uint *)0x0) goto LAB_0004dbbc;\n          puVar23 = ppuVar24[7];\n          if (bVar1) {\n            piVar17 = piStack_74 + 2;\n            do {\n              piVar17[1] = -1;\n              piVar33 = piVar17 + 2;\n              *piVar17 = -1;\n              piVar17 = piVar33;\n            } while (piStack_74 + (int)local_78 * 2 != piVar33);\n            *piStack_74 = 0;\n            piStack_74[1] = uStack_e8;\n            if (((uint)puVar23 & 0x8000000) == 0) {\n              if (*(char *)(puVar43 + 0x16) < '\0') {\n                bVar22 = 0 < (int)puVar43[0x13];\n              }\n              else {\n                bVar22 = false;\n              }\n              uStack_1e4 = FUN_0004bc00(ppuVar24,&puStack_144,local_78,piStack_74,bVar22);\n              piVar17 = piStack_e0;\n              if (uStack_1e4 != 0) goto LAB_0004dbbc;\n              puVar23 = (uint *)*piStack_74;\n            }\n            else {\nLAB_0004e838:\n              puVar23 = (uint *)0x0;\n            }\n            puVar36 = (uint *)0x0;\n            piVar17 = piStack_74;\n            while( true ) {\n              if (puVar23 != (uint *)0xffffffff) {\n                puVar32 = (uint *)piVar17[1];\n                puVar39 = puVar23;\n                puVar38 = puVar32;\n                if (cStack_f8 != '\0') {\n                  puVar39 = puStack_124;\n                  if (puStack_128 != puVar23) {\n                    puVar39 = *(uint **)(iStack_138 + (int)puVar23 * 4);\n                  }\n                  *piVar17 = (int)puVar39;\n                  puVar38 = puStack_124;\n                  if (puStack_128 != puVar32) {\n                    puVar38 = *(uint **)(iStack_138 + (int)puVar32 * 4);\n                  }\n                }\n                *piVar17 = (int)puStack_16c + (int)puVar39;\n                piVar17[1] = (int)puStack_16c + (int)puVar38;\n              }\n              puVar36 = (uint *)((int)puVar36 + 1);\n              piVar17 = piVar17 + 2;\n              if (puVar36 == local_78) break;\n              puVar23 = (uint *)*piVar17;\n            }\n            if (0 < iStack_180) {\n              piVar17 = piStack_74 + (int)local_78 * 2;\n              do {\n                *piVar17 = -1;\n                piVar33 = piVar17 + 2;\n                piVar17[1] = -1;\n                piVar17 = piVar33;\n              } while (piStack_74 + (iStack_180 + (int)local_78) * 2 != piVar33);\n            }\n            piVar33 = (int *)puVar43[0x21];\n            piVar17 = piStack_e0;\n            uStack_1e4 = uVar11;\n            if (piVar33 != (int *)0x0) {\n              iVar29 = 0;\n              piVar3 = piStack_74;\n              do {\n                pcVar45 = *(code **)(puVar46 + 0x28520);\n                if (iVar29 == (int)local_78 + -1) goto LAB_0004dbc0;\n                if (*piVar33 != iVar29) {\n                  piVar3[2] = piStack_74[(*piVar33 + 1) * 2];\n                  piVar3[3] = piStack_74[(*piVar33 + 1) * 2 + 1];\n                }\n                iVar29 = iVar29 + 1;\n                piVar33 = piVar33 + 1;\n                piVar3 = piVar3 + 2;\n              } while( true );\n            }\n            goto LAB_0004dbbc;\n          }\n          *piStack_74 = 0;\n          piStack_74[1] = uStack_e8;\n          goto LAB_0004e838;\n        }\nLAB_0004e2d4:\n        FUN_00044db0(&puStack_144);\n        param_4 = puStack_16c;\n      }\n      param_4 = (uint *)((int)param_4 + iVar29);\n      puStack_16c = param_4;\n      if (((int)param_4 < (int)puVar23) ||\n         (iVar30 = iStack_12c, puVar36 = puStack_88, (int)puVar38 < (int)param_4)) break;\n    } while( true );" do (compound_statement "{\n      puStack_88 = puVar36;\n      if (uVar31 - 4 < 5) {\n                    /* WARNING: Could not recover jumptable at 0x0004db3c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar6 = (*(code *)(puVar46 + *(int *)(iVar13 + 0x2be4 + (uVar31 - 4) * 4) + 0x2fea4))();\n        return uVar6;\n      }\n      iStack_12c = iVar30;\n      while( true ) {\n        puVar39 = (uint *)((int)param_4 - iVar30);\n        if (puStack_124 <= puVar39) {\n          uStack_1e4 = (*(code *)(iVar25 + 0x7eac))(&puStack_144,param_4,&_gp_1);\n          piVar17 = piStack_e0;\n          if (uStack_1e4 != 0) goto LAB_0004dbbc;\n          puVar39 = (uint *)((int)param_4 - iStack_12c);\n          iVar30 = iStack_12c;\n        }\n        if ((int)param_4 < (int)puVar36) {\n          cVar21 = *(char *)((int)puStack_1e0 + (uint)*(byte *)((int)puStack_140 + (int)puVar39));\n        }\n        else {\n          cVar21 = *(char *)puStack_1e0;\n        }\n        if (cVar21 != '\0') break;\n        param_4 = (uint *)((int)param_4 + iVar29);\n        puStack_16c = param_4;\n        if (((int)param_4 < (int)puVar23) || ((int)puVar38 < (int)param_4)) goto LAB_0004df68;\n      }\n      uVar11 = FUN_00047eac(&puStack_144,param_4,&_gp_1);\n      puVar36 = puStack_f0;\n      uVar6 = uStack_11c;\n      piVar17 = piStack_e0;\n      uStack_1e4 = uVar11;\n      if (uVar11 != 0) goto LAB_0004dbbc;\n      if (((uVar34 == 1) || (puStack_128 == (uint *)0x0)) || (*piStack_13c != -1)) {\n        iStack_cc = 0;\n        uStack_d8 = 0;\n        uVar41 = puStack_f0[9];\n        uStack_1d0 = uStack_11c;\n        iStack_dc = 0;\n        uStack_168 = 0;\n        if ((*(byte *)(uVar41 + 0x34) & 1) != 0) {\n          uVar14 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n          if ((uVar14 & 1) == 0) {\n            if (uVar14 == 0) goto LAB_0004dd24;\n            if ((uVar14 & 6) == 6) {\n              uVar41 = puVar36[0xc];\n            }\n            else if ((uVar14 & 2) == 0) {\n              if ((uVar14 & 4) == 0) goto LAB_0004dd24;\n              uVar41 = FUN_00046cac(&uStack_168,puVar36,*(undefined4 *)(uVar41 + 0x28),uVar14);\n            }\n            else {\n              uVar41 = puVar36[0xb];\n            }\n          }\n          else {\n            uVar41 = puVar36[10];\n          }\n          if (uVar41 == 0) goto code_r0x0004ea7c;\n        }\nLAB_0004dd24:\n        bVar4 = ppuVar12 != (uint **)0x0;\n        if ((piStack_e0 == (int *)0x0) ||\n           (uVar14 = puVar36[0x13], piStack_e0[uVar6] = uVar41, uVar14 == 0)) {\nLAB_0004dd48:\n          if (*(int *)(uVar41 + 0x34) << 4 < 0) {\n            if (((*(byte *)(uVar41 + 0x34) & 1) == 0) ||\n               (iVar30 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar41 + 8),uVar41 + 0xc,uVar6),\n               iVar30 != 0)) {\n              uVar14 = uVar6;\n              bVar5 = bVar22;\n              if (!bVar22) goto LAB_0004e0e4;\n            }\n            else {\n              uVar6 = 0xffffffff;\n              bVar5 = false;\n            }\n          }\n          else {\n            uVar6 = 0xffffffff;\n            bVar5 = false;\n          }\n          iVar30 = *(int *)(puVar46 + 0x28244);\n          iVar15 = *(int *)(puVar46 + 0x2829c);\n          uVar14 = uStack_11c;\n          ppuStack_1dc = ppuVar12;\n          while ((int)uVar14 < (int)puStack_10c) {\n            uVar40 = uVar14 + 1;\n            if ((((int)uVar40 < (int)uStack_120) || ((int)puStack_114 <= (int)uStack_120)) &&\n               (((int)uVar40 < (int)puStack_128 || ((int)puStack_114 <= (int)puStack_128)))) {\n              iVar16 = *(int *)(uVar41 + 0x34);\n              puVar36 = puStack_f0;\n            }\n            else {\n              uStack_168 = (*(code *)(iVar30 + 0x41e4))(&puStack_144,uVar14 + 2);\n              if (uStack_168 != 0) {\n                if (uStack_168 == 0xc) goto LAB_0004dbf8;\n                uVar20 = 0x46c;\n                goto LAB_0004ea9c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x34);\n              uVar14 = uStack_11c;\n              puVar36 = puStack_f0;\n            }\n            puStack_f0 = puVar36;\n            if (iVar16 << 5 < 0) {\n              iVar16 = *(int *)(uVar41 + 8);\n              if (0 < iVar16) {\n                param_4 = (uint *)0x0;\n                iVar18 = *(int *)(puVar46 + 0x28244);\n                pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7ab0);\n                do {\n                  uVar42 = *puVar36;\n                  iVar44 = *(int *)(*(int *)(uVar41 + 0xc) + (int)param_4 * 4);\n                  uVar37 = *(uint *)(uVar42 + iVar44 * 8 + 4);\n                  if ((uVar37 & 0x800) != 0) {\n                    if ((uVar37 & 0xffc000) != 0) {\n                      uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec);\n                      uVar37 = (uVar37 << 8) >> 0x16;\n                      if ((uVar37 & 4) == 0) {\n                        uVar27 = uVar19 & 1;\n                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    iVar16 = (*(code *)(iVar15 + -0x4eb0))\n                                       (uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14);\n                    if (iVar16 != 0) {\n                      if (iStack_cc < iVar16) {\n                        iStack_cc = iVar16;\n                      }\n                      iVar16 = iVar16 + uStack_11c;\n                      uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16);\n                      uVar14 = uStack_164;\n                      if (uStack_164 != 0) goto joined_r0x0004e770;\n                      piVar33 = piStack_e0 + iVar16;\n                      iVar28 = *piVar33;\n                      piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc);\n                      if (iVar28 == 0) {\n                        piStack_160 = (int *)*piVar17;\n                        piStack_15c = (int *)piVar17[1];\n                        iStack_158 = piVar17[2];\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        *piVar33 = iVar44;\n                      }\n                      else {\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }\n                      if ((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar16 = *(int *)(uVar41 + 8);\n                    uVar14 = uStack_11c;\n                  }\nLAB_0004e670:\n                  param_4 = (uint *)((int)param_4 + 1);\n                } while ((int)param_4 < iVar16);\n              }\n              uStack_168 = 0;\n            }\n            uStack_11c = uVar14 + 1;\n            uVar14 = (uint)*(byte *)((int)puStack_140 + uVar14);\n            do {\n              if (*(int *)(uVar41 + 0x2c) != 0) {\n                uVar37 = *(uint *)(*(int *)(uVar41 + 0x2c) + uVar14 * 4);\nLAB_0004ddf0:\n                if (piStack_e0 != (int *)0x0) goto LAB_0004ddfc;\n                goto LAB_0004de1c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x30);\n              if (iVar16 != 0) {\n                uVar37 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n                if ((uVar37 & 1) == 0) {\n                  uVar37 = *(uint *)(iVar16 + uVar14 * 4);\n                }\n                else {\n                  uVar37 = *(uint *)(iVar16 + (uVar14 + 0x100) * 4);\n                }\n                goto LAB_0004ddf0;\n              }\n              iVar16 = (*(code *)(iVar26 + -0x7510))(puStack_f0,uVar41);\n            } while (iVar16 != 0);\n            uStack_168 = 0xc;\n            uVar14 = uStack_168;\njoined_r0x0004e770:\n            uStack_168 = uVar14;\n            if (piStack_e0 == (int *)0x0) {\n              piVar17 = (int *)0x0;\n              goto LAB_0004dbb4;\n            }\n            uVar37 = 0;\nLAB_0004ddfc:\n            uVar37 = FUN_0004d0a8(&uStack_168,&puStack_144,uVar37);\nLAB_0004de1c:\n            uVar14 = uStack_11c;\n            if (uVar37 == 0) {\n              piVar17 = piStack_e0;\n              if (uStack_168 != 0) goto LAB_0004dbb4;\n              if ((piStack_e0 == (int *)0x0) || ((bVar5 && (!bVar22)))) break;\n              param_4 = &uStack_168;\n              do {\n                bVar2 = false;\n                piVar17 = piStack_e0 + uStack_11c;\n                uVar14 = uStack_11c;\n                do {\n                  uVar37 = uVar14 + 1;\n                  piVar17 = piVar17 + 1;\n                  if (iStack_dc < (int)uVar37) {\n                    if (bVar2) {\n                      uStack_11c = uVar14;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar2 = true;\n                  uVar14 = uVar37;\n                } while (*piVar17 == 0);\n                uStack_11c = uVar37;\n                uVar37 = FUN_0004d0a8(param_4,&puStack_144,0);\n                uVar14 = uStack_11c;\n                if (uStack_168 != 0) {\n                  if (uVar37 == 0) goto LAB_0004e0cc;\n                  break;\n                }\n              } while (uVar37 == 0);\n            }\n            uVar42 = uStack_1d0;\n            if ((bVar4) && (uVar42 = uVar40, uVar41 != uVar37)) {\n              bVar4 = false;\n              uVar42 = uStack_1d0;\n            }\n            uStack_1d0 = uVar42;\n            uVar41 = uVar37;\n            uStack_11c = uVar14;\n            if (((*(byte *)(uVar37 + 0x34) & 8) != 0) &&\n               (((*(byte *)(uVar37 + 0x34) & 1) == 0 ||\n                (iVar16 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar37 + 8),uVar37 + 0xc,uVar14)\n                , iVar16 != 0)))) {\n              if (!bVar22) goto LAB_0004e0e4;\n              ppuStack_1dc = (uint **)0x0;\n              uVar6 = uVar14;\n              bVar5 = bVar22;\n            }\n          }\nLAB_0004e0cc:\n          uVar14 = uVar6;\n          if (ppuStack_1dc != (uint **)0x0) {\n            *ppuStack_1dc = (uint *)((int)*ppuStack_1dc + uStack_1d0);\n          }\n        }\n        else {\n          uVar14 = FUN_00047924(&puStack_144,uVar41 + 8,uVar41 + 0xc,0);\n          uStack_168 = uVar14;\n          if (uVar14 == 0) {\n            if ((*(byte *)(uVar41 + 0x34) & 2) == 0) {\n              bVar4 = false;\n            }\n            else {\n              uVar14 = FUN_0004c6a8(&puStack_144,uVar41 + 8,uVar41 + 0xc);\n              uStack_168 = uVar14;\n              if (uVar14 != 0) goto LAB_0004e0e4;\n              bVar4 = false;\n            }\n            goto LAB_0004dd48;\n          }\n        }\nLAB_0004e0e4:\n        piVar17 = piStack_e0;\n        if (uVar14 != 0xffffffff) {\n          if (uVar14 == 0xfffffffe) goto LAB_0004dbf8;\n          uStack_e8 = uVar14;\n          if (((uint)ppuVar24[7] & 0x8000000) == 0) {\n            if (!bVar1) {\n              uVar6 = puVar43[0x13];\n              goto joined_r0x0004e94c;\n            }\n            pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n            iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                     piStack_e0[uVar14] + 0xc,uVar14);\n            if ((*(char *)(puVar43 + 0x16) < '\0') || (puVar43[0x13] != 0)) goto LAB_0004e170;\n          }\n          else {\n            uVar6 = puVar43[0x13];\njoined_r0x0004e94c:\n            if (uVar6 != 0) {\n              pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n              iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                       piStack_e0[uVar14] + 0xc,uVar14);\nLAB_0004e170:\n              iVar30 = iStack_e4;\n              puVar36 = puStack_f0;\n              if (uVar14 < 0x3fffffff) {\n                uStack_1f0 = uVar14 + 1;\n                piVar17 = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                if (piVar17 == (int *)0x0) goto LAB_0004dbf8;\n                if (puVar36[0x13] == 0) {\n                  piStack_15c = (int *)0x0;\n                  uStack_150 = 0;\n                  uStack_14c = 0;\n                  uStack_148 = 0;\n                  piStack_160 = piVar17;\n                  iStack_158 = iVar30;\n                  uStack_154 = uVar14;\n                  uStack_1e4 = FUN_0004d30c(&puStack_144,&piStack_160);\n                  (**(code **)(puVar46 + 0x28520))(uStack_148);\n                  if (uStack_1e4 == 0) {\n                    if (*piVar17 == 0) {\n                      (**(code **)(puVar46 + 0x28520))(piVar17);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar46 + 0x28520))(piStack_e0);\n                    uStack_e8 = uVar14;\n                    iStack_e4 = iVar30;\n                    piStack_e0 = piVar17;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  piStack_1ec = (int *)0x0;\n                }\n                else {\n                  piStack_1ec = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                  if (piStack_1ec == (int *)0x0) {\n                    (**(code **)(puVar46 + 0x28520))(piVar17);\n                    uStack_1e4 = 0xc;\n                    piVar17 = piStack_e0;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar15 = *(int *)(puVar46 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);\n                    uStack_150 = 0;\n                    uStack_14c = 0;\n                    uStack_148 = 0;\n                    piStack_160 = piVar17;\n                    piStack_15c = piStack_1ec;\n                    iStack_158 = iVar30;\n                    uStack_154 = uVar14;\n                    uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);\n                    (**(code **)(puVar46 + 0x28520))(uStack_148);\n                    if (uStack_1e4 != 0) break;\n                    if ((*piVar17 != 0) || (*piStack_1ec != 0)) {\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    piVar33 = piStack_e0 + (uStack_1f0 - 1);\n                    uStack_1f0 = uVar14;\n                    while( true ) {\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }\n                    iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       );\n                  }\n                }\n                (**(code **)(puVar46 + 0x28520))(piVar17);\n                (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                piVar17 = piStack_e0;\n                if (uStack_1e4 == 1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }\n              uStack_1e4 = 0xc;\n              goto LAB_0004dbbc;\n            }\n          }\nLAB_0004e7e0:\n          piVar17 = piStack_e0;\n          uStack_1e4 = uVar11;\n          if (local_78 == (uint *)0x0) goto LAB_0004dbbc;\n          puVar23 = ppuVar24[7];\n          if (bVar1) {\n            piVar17 = piStack_74 + 2;\n            do {\n              piVar17[1] = -1;\n              piVar33 = piVar17 + 2;\n              *piVar17 = -1;\n              piVar17 = piVar33;\n            } while (piStack_74 + (int)local_78 * 2 != piVar33);\n            *piStack_74 = 0;\n            piStack_74[1] = uStack_e8;\n            if (((uint)puVar23 & 0x8000000) == 0) {\n              if (*(char *)(puVar43 + 0x16) < '\0') {\n                bVar22 = 0 < (int)puVar43[0x13];\n              }\n              else {\n                bVar22 = false;\n              }\n              uStack_1e4 = FUN_0004bc00(ppuVar24,&puStack_144,local_78,piStack_74,bVar22);\n              piVar17 = piStack_e0;\n              if (uStack_1e4 != 0) goto LAB_0004dbbc;\n              puVar23 = (uint *)*piStack_74;\n            }\n            else {\nLAB_0004e838:\n              puVar23 = (uint *)0x0;\n            }\n            puVar36 = (uint *)0x0;\n            piVar17 = piStack_74;\n            while( true ) {\n              if (puVar23 != (uint *)0xffffffff) {\n                puVar32 = (uint *)piVar17[1];\n                puVar39 = puVar23;\n                puVar38 = puVar32;\n                if (cStack_f8 != '\0') {\n                  puVar39 = puStack_124;\n                  if (puStack_128 != puVar23) {\n                    puVar39 = *(uint **)(iStack_138 + (int)puVar23 * 4);\n                  }\n                  *piVar17 = (int)puVar39;\n                  puVar38 = puStack_124;\n                  if (puStack_128 != puVar32) {\n                    puVar38 = *(uint **)(iStack_138 + (int)puVar32 * 4);\n                  }\n                }\n                *piVar17 = (int)puStack_16c + (int)puVar39;\n                piVar17[1] = (int)puStack_16c + (int)puVar38;\n              }\n              puVar36 = (uint *)((int)puVar36 + 1);\n              piVar17 = piVar17 + 2;\n              if (puVar36 == local_78) break;\n              puVar23 = (uint *)*piVar17;\n            }\n            if (0 < iStack_180) {\n              piVar17 = piStack_74 + (int)local_78 * 2;\n              do {\n                *piVar17 = -1;\n                piVar33 = piVar17 + 2;\n                piVar17[1] = -1;\n                piVar17 = piVar33;\n              } while (piStack_74 + (iStack_180 + (int)local_78) * 2 != piVar33);\n            }\n            piVar33 = (int *)puVar43[0x21];\n            piVar17 = piStack_e0;\n            uStack_1e4 = uVar11;\n            if (piVar33 != (int *)0x0) {\n              iVar29 = 0;\n              piVar3 = piStack_74;\n              do {\n                pcVar45 = *(code **)(puVar46 + 0x28520);\n                if (iVar29 == (int)local_78 + -1) goto LAB_0004dbc0;\n                if (*piVar33 != iVar29) {\n                  piVar3[2] = piStack_74[(*piVar33 + 1) * 2];\n                  piVar3[3] = piStack_74[(*piVar33 + 1) * 2 + 1];\n                }\n                iVar29 = iVar29 + 1;\n                piVar33 = piVar33 + 1;\n                piVar3 = piVar3 + 2;\n              } while( true );\n            }\n            goto LAB_0004dbbc;\n          }\n          *piStack_74 = 0;\n          piStack_74[1] = uStack_e8;\n          goto LAB_0004e838;\n        }\nLAB_0004e2d4:\n        FUN_00044db0(&puStack_144);\n        param_4 = puStack_16c;\n      }\n      param_4 = (uint *)((int)param_4 + iVar29);\n      puStack_16c = param_4;\n      if (((int)param_4 < (int)puVar23) ||\n         (iVar30 = iStack_12c, puVar36 = puStack_88, (int)puVar38 < (int)param_4)) break;\n    }" { (expression_statement "puStack_88 = puVar36;" (assignment_expression "puStack_88 = puVar36" identifier = identifier) ;) (if_statement "if (uVar31 - 4 < 5) {\n                    /* WARNING: Could not recover jumptable at 0x0004db3c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar6 = (*(code *)(puVar46 + *(int *)(iVar13 + 0x2be4 + (uVar31 - 4) * 4) + 0x2fea4))();\n        return uVar6;\n      }" if (parenthesized_expression "(uVar31 - 4 < 5)" ( (binary_expression "uVar31 - 4 < 5" (binary_expression "uVar31 - 4" identifier - number_literal) < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x0004db3c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar6 = (*(code *)(puVar46 + *(int *)(iVar13 + 0x2be4 + (uVar31 - 4) * 4) + 0x2fea4))();\n        return uVar6;\n      }" { comment comment (expression_statement "uVar6 = (*(code *)(puVar46 + *(int *)(iVar13 + 0x2be4 + (uVar31 - 4) * 4) + 0x2fea4))();" (assignment_expression "uVar6 = (*(code *)(puVar46 + *(int *)(iVar13 + 0x2be4 + (uVar31 - 4) * 4) + 0x2fea4))()" identifier = (call_expression "(*(code *)(puVar46 + *(int *)(iVar13 + 0x2be4 + (uVar31 - 4) * 4) + 0x2fea4))()" (parenthesized_expression "(*(code *)(puVar46 + *(int *)(iVar13 + 0x2be4 + (uVar31 - 4) * 4) + 0x2fea4))" ( (pointer_expression "*(code *)(puVar46 + *(int *)(iVar13 + 0x2be4 + (uVar31 - 4) * 4) + 0x2fea4)" * (cast_expression "(code *)(puVar46 + *(int *)(iVar13 + 0x2be4 + (uVar31 - 4) * 4) + 0x2fea4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar46 + *(int *)(iVar13 + 0x2be4 + (uVar31 - 4) * 4) + 0x2fea4)" ( (binary_expression "puVar46 + *(int *)(iVar13 + 0x2be4 + (uVar31 - 4) * 4) + 0x2fea4" (binary_expression "puVar46 + *(int *)(iVar13 + 0x2be4 + (uVar31 - 4) * 4)" identifier + (pointer_expression "*(int *)(iVar13 + 0x2be4 + (uVar31 - 4) * 4)" * (cast_expression "(int *)(iVar13 + 0x2be4 + (uVar31 - 4) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x2be4 + (uVar31 - 4) * 4)" ( (binary_expression "iVar13 + 0x2be4 + (uVar31 - 4) * 4" (binary_expression "iVar13 + 0x2be4" identifier + number_literal) + (binary_expression "(uVar31 - 4) * 4" (parenthesized_expression "(uVar31 - 4)" ( (binary_expression "uVar31 - 4" identifier - number_literal) )) * number_literal)) ))))) + number_literal) )))) )) (argument_list "()" ( )))) ;) (return_statement "return uVar6;" return identifier ;) })) (expression_statement "iStack_12c = iVar30;" (assignment_expression "iStack_12c = iVar30" identifier = identifier) ;) (while_statement "while( true ) {\n        puVar39 = (uint *)((int)param_4 - iVar30);\n        if (puStack_124 <= puVar39) {\n          uStack_1e4 = (*(code *)(iVar25 + 0x7eac))(&puStack_144,param_4,&_gp_1);\n          piVar17 = piStack_e0;\n          if (uStack_1e4 != 0) goto LAB_0004dbbc;\n          puVar39 = (uint *)((int)param_4 - iStack_12c);\n          iVar30 = iStack_12c;\n        }\n        if ((int)param_4 < (int)puVar36) {\n          cVar21 = *(char *)((int)puStack_1e0 + (uint)*(byte *)((int)puStack_140 + (int)puVar39));\n        }\n        else {\n          cVar21 = *(char *)puStack_1e0;\n        }\n        if (cVar21 != '\0') break;\n        param_4 = (uint *)((int)param_4 + iVar29);\n        puStack_16c = param_4;\n        if (((int)param_4 < (int)puVar23) || ((int)puVar38 < (int)param_4)) goto LAB_0004df68;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        puVar39 = (uint *)((int)param_4 - iVar30);\n        if (puStack_124 <= puVar39) {\n          uStack_1e4 = (*(code *)(iVar25 + 0x7eac))(&puStack_144,param_4,&_gp_1);\n          piVar17 = piStack_e0;\n          if (uStack_1e4 != 0) goto LAB_0004dbbc;\n          puVar39 = (uint *)((int)param_4 - iStack_12c);\n          iVar30 = iStack_12c;\n        }\n        if ((int)param_4 < (int)puVar36) {\n          cVar21 = *(char *)((int)puStack_1e0 + (uint)*(byte *)((int)puStack_140 + (int)puVar39));\n        }\n        else {\n          cVar21 = *(char *)puStack_1e0;\n        }\n        if (cVar21 != '\0') break;\n        param_4 = (uint *)((int)param_4 + iVar29);\n        puStack_16c = param_4;\n        if (((int)param_4 < (int)puVar23) || ((int)puVar38 < (int)param_4)) goto LAB_0004df68;\n      }" { (expression_statement "puVar39 = (uint *)((int)param_4 - iVar30);" (assignment_expression "puVar39 = (uint *)((int)param_4 - iVar30)" identifier = (cast_expression "(uint *)((int)param_4 - iVar30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_4 - iVar30)" ( (binary_expression "(int)param_4 - iVar30" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )))) ;) (if_statement "if (puStack_124 <= puVar39) {\n          uStack_1e4 = (*(code *)(iVar25 + 0x7eac))(&puStack_144,param_4,&_gp_1);\n          piVar17 = piStack_e0;\n          if (uStack_1e4 != 0) goto LAB_0004dbbc;\n          puVar39 = (uint *)((int)param_4 - iStack_12c);\n          iVar30 = iStack_12c;\n        }" if (parenthesized_expression "(puStack_124 <= puVar39)" ( (binary_expression "puStack_124 <= puVar39" identifier <= identifier) )) (compound_statement "{\n          uStack_1e4 = (*(code *)(iVar25 + 0x7eac))(&puStack_144,param_4,&_gp_1);\n          piVar17 = piStack_e0;\n          if (uStack_1e4 != 0) goto LAB_0004dbbc;\n          puVar39 = (uint *)((int)param_4 - iStack_12c);\n          iVar30 = iStack_12c;\n        }" { (expression_statement "uStack_1e4 = (*(code *)(iVar25 + 0x7eac))(&puStack_144,param_4,&_gp_1);" (assignment_expression "uStack_1e4 = (*(code *)(iVar25 + 0x7eac))(&puStack_144,param_4,&_gp_1)" identifier = (call_expression "(*(code *)(iVar25 + 0x7eac))(&puStack_144,param_4,&_gp_1)" (parenthesized_expression "(*(code *)(iVar25 + 0x7eac))" ( (pointer_expression "*(code *)(iVar25 + 0x7eac)" * (cast_expression "(code *)(iVar25 + 0x7eac)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0x7eac)" ( (binary_expression "iVar25 + 0x7eac" identifier + number_literal) )))) )) (argument_list "(&puStack_144,param_4,&_gp_1)" ( (pointer_expression "&puStack_144" & identifier) , identifier , (pointer_expression "&_gp_1" & identifier) )))) ;) (expression_statement "piVar17 = piStack_e0;" (assignment_expression "piVar17 = piStack_e0" identifier = identifier) ;) (if_statement "if (uStack_1e4 != 0) goto LAB_0004dbbc;" if (parenthesized_expression "(uStack_1e4 != 0)" ( (binary_expression "uStack_1e4 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0004dbbc;" goto statement_identifier ;)) (expression_statement "puVar39 = (uint *)((int)param_4 - iStack_12c);" (assignment_expression "puVar39 = (uint *)((int)param_4 - iStack_12c)" identifier = (cast_expression "(uint *)((int)param_4 - iStack_12c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_4 - iStack_12c)" ( (binary_expression "(int)param_4 - iStack_12c" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )))) ;) (expression_statement "iVar30 = iStack_12c;" (assignment_expression "iVar30 = iStack_12c" identifier = identifier) ;) })) (if_statement "if ((int)param_4 < (int)puVar36) {\n          cVar21 = *(char *)((int)puStack_1e0 + (uint)*(byte *)((int)puStack_140 + (int)puVar39));\n        }\n        else {\n          cVar21 = *(char *)puStack_1e0;\n        }" if (parenthesized_expression "((int)param_4 < (int)puVar36)" ( (binary_expression "(int)param_4 < (int)puVar36" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)puVar36" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          cVar21 = *(char *)((int)puStack_1e0 + (uint)*(byte *)((int)puStack_140 + (int)puVar39));\n        }" { (expression_statement "cVar21 = *(char *)((int)puStack_1e0 + (uint)*(byte *)((int)puStack_140 + (int)puVar39));" (assignment_expression "cVar21 = *(char *)((int)puStack_1e0 + (uint)*(byte *)((int)puStack_140 + (int)puVar39))" identifier = (pointer_expression "*(char *)((int)puStack_1e0 + (uint)*(byte *)((int)puStack_140 + (int)puVar39))" * (cast_expression "(char *)((int)puStack_1e0 + (uint)*(byte *)((int)puStack_140 + (int)puVar39))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puStack_1e0 + (uint)*(byte *)((int)puStack_140 + (int)puVar39))" ( (binary_expression "(int)puStack_1e0 + (uint)*(byte *)((int)puStack_140 + (int)puVar39)" (cast_expression "(int)puStack_1e0" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)*(byte *)((int)puStack_140 + (int)puVar39)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)((int)puStack_140 + (int)puVar39)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puStack_140 + (int)puVar39)" ( (binary_expression "(int)puStack_140 + (int)puVar39" (cast_expression "(int)puStack_140" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)puVar39" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ))))) ;) }) (else_clause "else {\n          cVar21 = *(char *)puStack_1e0;\n        }" else (compound_statement "{\n          cVar21 = *(char *)puStack_1e0;\n        }" { (expression_statement "cVar21 = *(char *)puStack_1e0;" (assignment_expression "cVar21 = *(char *)puStack_1e0" identifier = (pointer_expression "*(char *)puStack_1e0" * (cast_expression "(char *)puStack_1e0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) }))) (if_statement "if (cVar21 != '\0') break;" if (parenthesized_expression "(cVar21 != '\0')" ( (binary_expression "cVar21 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (break_statement "break;" break ;)) (expression_statement "param_4 = (uint *)((int)param_4 + iVar29);" (assignment_expression "param_4 = (uint *)((int)param_4 + iVar29)" identifier = (cast_expression "(uint *)((int)param_4 + iVar29)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_4 + iVar29)" ( (binary_expression "(int)param_4 + iVar29" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "puStack_16c = param_4;" (assignment_expression "puStack_16c = param_4" identifier = identifier) ;) (if_statement "if (((int)param_4 < (int)puVar23) || ((int)puVar38 < (int)param_4)) goto LAB_0004df68;" if (parenthesized_expression "(((int)param_4 < (int)puVar23) || ((int)puVar38 < (int)param_4))" ( (binary_expression "((int)param_4 < (int)puVar23) || ((int)puVar38 < (int)param_4)" (parenthesized_expression "((int)param_4 < (int)puVar23)" ( (binary_expression "(int)param_4 < (int)puVar23" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier)) )) || (parenthesized_expression "((int)puVar38 < (int)param_4)" ( (binary_expression "(int)puVar38 < (int)param_4" (cast_expression "(int)puVar38" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (goto_statement "goto LAB_0004df68;" goto statement_identifier ;)) })) (expression_statement "uVar11 = FUN_00047eac(&puStack_144,param_4,&_gp_1);" (assignment_expression "uVar11 = FUN_00047eac(&puStack_144,param_4,&_gp_1)" identifier = (call_expression "FUN_00047eac(&puStack_144,param_4,&_gp_1)" identifier (argument_list "(&puStack_144,param_4,&_gp_1)" ( (pointer_expression "&puStack_144" & identifier) , identifier , (pointer_expression "&_gp_1" & identifier) )))) ;) (expression_statement "puVar36 = puStack_f0;" (assignment_expression "puVar36 = puStack_f0" identifier = identifier) ;) (expression_statement "uVar6 = uStack_11c;" (assignment_expression "uVar6 = uStack_11c" identifier = identifier) ;) (expression_statement "piVar17 = piStack_e0;" (assignment_expression "piVar17 = piStack_e0" identifier = identifier) ;) (expression_statement "uStack_1e4 = uVar11;" (assignment_expression "uStack_1e4 = uVar11" identifier = identifier) ;) (if_statement "if (uVar11 != 0) goto LAB_0004dbbc;" if (parenthesized_expression "(uVar11 != 0)" ( (binary_expression "uVar11 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0004dbbc;" goto statement_identifier ;)) (if_statement "if (((uVar34 == 1) || (puStack_128 == (uint *)0x0)) || (*piStack_13c != -1)) {\n        iStack_cc = 0;\n        uStack_d8 = 0;\n        uVar41 = puStack_f0[9];\n        uStack_1d0 = uStack_11c;\n        iStack_dc = 0;\n        uStack_168 = 0;\n        if ((*(byte *)(uVar41 + 0x34) & 1) != 0) {\n          uVar14 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n          if ((uVar14 & 1) == 0) {\n            if (uVar14 == 0) goto LAB_0004dd24;\n            if ((uVar14 & 6) == 6) {\n              uVar41 = puVar36[0xc];\n            }\n            else if ((uVar14 & 2) == 0) {\n              if ((uVar14 & 4) == 0) goto LAB_0004dd24;\n              uVar41 = FUN_00046cac(&uStack_168,puVar36,*(undefined4 *)(uVar41 + 0x28),uVar14);\n            }\n            else {\n              uVar41 = puVar36[0xb];\n            }\n          }\n          else {\n            uVar41 = puVar36[10];\n          }\n          if (uVar41 == 0) goto code_r0x0004ea7c;\n        }\nLAB_0004dd24:\n        bVar4 = ppuVar12 != (uint **)0x0;\n        if ((piStack_e0 == (int *)0x0) ||\n           (uVar14 = puVar36[0x13], piStack_e0[uVar6] = uVar41, uVar14 == 0)) {\nLAB_0004dd48:\n          if (*(int *)(uVar41 + 0x34) << 4 < 0) {\n            if (((*(byte *)(uVar41 + 0x34) & 1) == 0) ||\n               (iVar30 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar41 + 8),uVar41 + 0xc,uVar6),\n               iVar30 != 0)) {\n              uVar14 = uVar6;\n              bVar5 = bVar22;\n              if (!bVar22) goto LAB_0004e0e4;\n            }\n            else {\n              uVar6 = 0xffffffff;\n              bVar5 = false;\n            }\n          }\n          else {\n            uVar6 = 0xffffffff;\n            bVar5 = false;\n          }\n          iVar30 = *(int *)(puVar46 + 0x28244);\n          iVar15 = *(int *)(puVar46 + 0x2829c);\n          uVar14 = uStack_11c;\n          ppuStack_1dc = ppuVar12;\n          while ((int)uVar14 < (int)puStack_10c) {\n            uVar40 = uVar14 + 1;\n            if ((((int)uVar40 < (int)uStack_120) || ((int)puStack_114 <= (int)uStack_120)) &&\n               (((int)uVar40 < (int)puStack_128 || ((int)puStack_114 <= (int)puStack_128)))) {\n              iVar16 = *(int *)(uVar41 + 0x34);\n              puVar36 = puStack_f0;\n            }\n            else {\n              uStack_168 = (*(code *)(iVar30 + 0x41e4))(&puStack_144,uVar14 + 2);\n              if (uStack_168 != 0) {\n                if (uStack_168 == 0xc) goto LAB_0004dbf8;\n                uVar20 = 0x46c;\n                goto LAB_0004ea9c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x34);\n              uVar14 = uStack_11c;\n              puVar36 = puStack_f0;\n            }\n            puStack_f0 = puVar36;\n            if (iVar16 << 5 < 0) {\n              iVar16 = *(int *)(uVar41 + 8);\n              if (0 < iVar16) {\n                param_4 = (uint *)0x0;\n                iVar18 = *(int *)(puVar46 + 0x28244);\n                pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7ab0);\n                do {\n                  uVar42 = *puVar36;\n                  iVar44 = *(int *)(*(int *)(uVar41 + 0xc) + (int)param_4 * 4);\n                  uVar37 = *(uint *)(uVar42 + iVar44 * 8 + 4);\n                  if ((uVar37 & 0x800) != 0) {\n                    if ((uVar37 & 0xffc000) != 0) {\n                      uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec);\n                      uVar37 = (uVar37 << 8) >> 0x16;\n                      if ((uVar37 & 4) == 0) {\n                        uVar27 = uVar19 & 1;\n                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    iVar16 = (*(code *)(iVar15 + -0x4eb0))\n                                       (uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14);\n                    if (iVar16 != 0) {\n                      if (iStack_cc < iVar16) {\n                        iStack_cc = iVar16;\n                      }\n                      iVar16 = iVar16 + uStack_11c;\n                      uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16);\n                      uVar14 = uStack_164;\n                      if (uStack_164 != 0) goto joined_r0x0004e770;\n                      piVar33 = piStack_e0 + iVar16;\n                      iVar28 = *piVar33;\n                      piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc);\n                      if (iVar28 == 0) {\n                        piStack_160 = (int *)*piVar17;\n                        piStack_15c = (int *)piVar17[1];\n                        iStack_158 = piVar17[2];\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        *piVar33 = iVar44;\n                      }\n                      else {\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }\n                      if ((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar16 = *(int *)(uVar41 + 8);\n                    uVar14 = uStack_11c;\n                  }\nLAB_0004e670:\n                  param_4 = (uint *)((int)param_4 + 1);\n                } while ((int)param_4 < iVar16);\n              }\n              uStack_168 = 0;\n            }\n            uStack_11c = uVar14 + 1;\n            uVar14 = (uint)*(byte *)((int)puStack_140 + uVar14);\n            do {\n              if (*(int *)(uVar41 + 0x2c) != 0) {\n                uVar37 = *(uint *)(*(int *)(uVar41 + 0x2c) + uVar14 * 4);\nLAB_0004ddf0:\n                if (piStack_e0 != (int *)0x0) goto LAB_0004ddfc;\n                goto LAB_0004de1c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x30);\n              if (iVar16 != 0) {\n                uVar37 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n                if ((uVar37 & 1) == 0) {\n                  uVar37 = *(uint *)(iVar16 + uVar14 * 4);\n                }\n                else {\n                  uVar37 = *(uint *)(iVar16 + (uVar14 + 0x100) * 4);\n                }\n                goto LAB_0004ddf0;\n              }\n              iVar16 = (*(code *)(iVar26 + -0x7510))(puStack_f0,uVar41);\n            } while (iVar16 != 0);\n            uStack_168 = 0xc;\n            uVar14 = uStack_168;\njoined_r0x0004e770:\n            uStack_168 = uVar14;\n            if (piStack_e0 == (int *)0x0) {\n              piVar17 = (int *)0x0;\n              goto LAB_0004dbb4;\n            }\n            uVar37 = 0;\nLAB_0004ddfc:\n            uVar37 = FUN_0004d0a8(&uStack_168,&puStack_144,uVar37);\nLAB_0004de1c:\n            uVar14 = uStack_11c;\n            if (uVar37 == 0) {\n              piVar17 = piStack_e0;\n              if (uStack_168 != 0) goto LAB_0004dbb4;\n              if ((piStack_e0 == (int *)0x0) || ((bVar5 && (!bVar22)))) break;\n              param_4 = &uStack_168;\n              do {\n                bVar2 = false;\n                piVar17 = piStack_e0 + uStack_11c;\n                uVar14 = uStack_11c;\n                do {\n                  uVar37 = uVar14 + 1;\n                  piVar17 = piVar17 + 1;\n                  if (iStack_dc < (int)uVar37) {\n                    if (bVar2) {\n                      uStack_11c = uVar14;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar2 = true;\n                  uVar14 = uVar37;\n                } while (*piVar17 == 0);\n                uStack_11c = uVar37;\n                uVar37 = FUN_0004d0a8(param_4,&puStack_144,0);\n                uVar14 = uStack_11c;\n                if (uStack_168 != 0) {\n                  if (uVar37 == 0) goto LAB_0004e0cc;\n                  break;\n                }\n              } while (uVar37 == 0);\n            }\n            uVar42 = uStack_1d0;\n            if ((bVar4) && (uVar42 = uVar40, uVar41 != uVar37)) {\n              bVar4 = false;\n              uVar42 = uStack_1d0;\n            }\n            uStack_1d0 = uVar42;\n            uVar41 = uVar37;\n            uStack_11c = uVar14;\n            if (((*(byte *)(uVar37 + 0x34) & 8) != 0) &&\n               (((*(byte *)(uVar37 + 0x34) & 1) == 0 ||\n                (iVar16 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar37 + 8),uVar37 + 0xc,uVar14)\n                , iVar16 != 0)))) {\n              if (!bVar22) goto LAB_0004e0e4;\n              ppuStack_1dc = (uint **)0x0;\n              uVar6 = uVar14;\n              bVar5 = bVar22;\n            }\n          }\nLAB_0004e0cc:\n          uVar14 = uVar6;\n          if (ppuStack_1dc != (uint **)0x0) {\n            *ppuStack_1dc = (uint *)((int)*ppuStack_1dc + uStack_1d0);\n          }\n        }\n        else {\n          uVar14 = FUN_00047924(&puStack_144,uVar41 + 8,uVar41 + 0xc,0);\n          uStack_168 = uVar14;\n          if (uVar14 == 0) {\n            if ((*(byte *)(uVar41 + 0x34) & 2) == 0) {\n              bVar4 = false;\n            }\n            else {\n              uVar14 = FUN_0004c6a8(&puStack_144,uVar41 + 8,uVar41 + 0xc);\n              uStack_168 = uVar14;\n              if (uVar14 != 0) goto LAB_0004e0e4;\n              bVar4 = false;\n            }\n            goto LAB_0004dd48;\n          }\n        }\nLAB_0004e0e4:\n        piVar17 = piStack_e0;\n        if (uVar14 != 0xffffffff) {\n          if (uVar14 == 0xfffffffe) goto LAB_0004dbf8;\n          uStack_e8 = uVar14;\n          if (((uint)ppuVar24[7] & 0x8000000) == 0) {\n            if (!bVar1) {\n              uVar6 = puVar43[0x13];\n              goto joined_r0x0004e94c;\n            }\n            pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n            iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                     piStack_e0[uVar14] + 0xc,uVar14);\n            if ((*(char *)(puVar43 + 0x16) < '\0') || (puVar43[0x13] != 0)) goto LAB_0004e170;\n          }\n          else {\n            uVar6 = puVar43[0x13];\njoined_r0x0004e94c:\n            if (uVar6 != 0) {\n              pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n              iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                       piStack_e0[uVar14] + 0xc,uVar14);\nLAB_0004e170:\n              iVar30 = iStack_e4;\n              puVar36 = puStack_f0;\n              if (uVar14 < 0x3fffffff) {\n                uStack_1f0 = uVar14 + 1;\n                piVar17 = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                if (piVar17 == (int *)0x0) goto LAB_0004dbf8;\n                if (puVar36[0x13] == 0) {\n                  piStack_15c = (int *)0x0;\n                  uStack_150 = 0;\n                  uStack_14c = 0;\n                  uStack_148 = 0;\n                  piStack_160 = piVar17;\n                  iStack_158 = iVar30;\n                  uStack_154 = uVar14;\n                  uStack_1e4 = FUN_0004d30c(&puStack_144,&piStack_160);\n                  (**(code **)(puVar46 + 0x28520))(uStack_148);\n                  if (uStack_1e4 == 0) {\n                    if (*piVar17 == 0) {\n                      (**(code **)(puVar46 + 0x28520))(piVar17);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar46 + 0x28520))(piStack_e0);\n                    uStack_e8 = uVar14;\n                    iStack_e4 = iVar30;\n                    piStack_e0 = piVar17;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  piStack_1ec = (int *)0x0;\n                }\n                else {\n                  piStack_1ec = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                  if (piStack_1ec == (int *)0x0) {\n                    (**(code **)(puVar46 + 0x28520))(piVar17);\n                    uStack_1e4 = 0xc;\n                    piVar17 = piStack_e0;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar15 = *(int *)(puVar46 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);\n                    uStack_150 = 0;\n                    uStack_14c = 0;\n                    uStack_148 = 0;\n                    piStack_160 = piVar17;\n                    piStack_15c = piStack_1ec;\n                    iStack_158 = iVar30;\n                    uStack_154 = uVar14;\n                    uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);\n                    (**(code **)(puVar46 + 0x28520))(uStack_148);\n                    if (uStack_1e4 != 0) break;\n                    if ((*piVar17 != 0) || (*piStack_1ec != 0)) {\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    piVar33 = piStack_e0 + (uStack_1f0 - 1);\n                    uStack_1f0 = uVar14;\n                    while( true ) {\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }\n                    iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       );\n                  }\n                }\n                (**(code **)(puVar46 + 0x28520))(piVar17);\n                (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                piVar17 = piStack_e0;\n                if (uStack_1e4 == 1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }\n              uStack_1e4 = 0xc;\n              goto LAB_0004dbbc;\n            }\n          }\nLAB_0004e7e0:\n          piVar17 = piStack_e0;\n          uStack_1e4 = uVar11;\n          if (local_78 == (uint *)0x0) goto LAB_0004dbbc;\n          puVar23 = ppuVar24[7];\n          if (bVar1) {\n            piVar17 = piStack_74 + 2;\n            do {\n              piVar17[1] = -1;\n              piVar33 = piVar17 + 2;\n              *piVar17 = -1;\n              piVar17 = piVar33;\n            } while (piStack_74 + (int)local_78 * 2 != piVar33);\n            *piStack_74 = 0;\n            piStack_74[1] = uStack_e8;\n            if (((uint)puVar23 & 0x8000000) == 0) {\n              if (*(char *)(puVar43 + 0x16) < '\0') {\n                bVar22 = 0 < (int)puVar43[0x13];\n              }\n              else {\n                bVar22 = false;\n              }\n              uStack_1e4 = FUN_0004bc00(ppuVar24,&puStack_144,local_78,piStack_74,bVar22);\n              piVar17 = piStack_e0;\n              if (uStack_1e4 != 0) goto LAB_0004dbbc;\n              puVar23 = (uint *)*piStack_74;\n            }\n            else {\nLAB_0004e838:\n              puVar23 = (uint *)0x0;\n            }\n            puVar36 = (uint *)0x0;\n            piVar17 = piStack_74;\n            while( true ) {\n              if (puVar23 != (uint *)0xffffffff) {\n                puVar32 = (uint *)piVar17[1];\n                puVar39 = puVar23;\n                puVar38 = puVar32;\n                if (cStack_f8 != '\0') {\n                  puVar39 = puStack_124;\n                  if (puStack_128 != puVar23) {\n                    puVar39 = *(uint **)(iStack_138 + (int)puVar23 * 4);\n                  }\n                  *piVar17 = (int)puVar39;\n                  puVar38 = puStack_124;\n                  if (puStack_128 != puVar32) {\n                    puVar38 = *(uint **)(iStack_138 + (int)puVar32 * 4);\n                  }\n                }\n                *piVar17 = (int)puStack_16c + (int)puVar39;\n                piVar17[1] = (int)puStack_16c + (int)puVar38;\n              }\n              puVar36 = (uint *)((int)puVar36 + 1);\n              piVar17 = piVar17 + 2;\n              if (puVar36 == local_78) break;\n              puVar23 = (uint *)*piVar17;\n            }\n            if (0 < iStack_180) {\n              piVar17 = piStack_74 + (int)local_78 * 2;\n              do {\n                *piVar17 = -1;\n                piVar33 = piVar17 + 2;\n                piVar17[1] = -1;\n                piVar17 = piVar33;\n              } while (piStack_74 + (iStack_180 + (int)local_78) * 2 != piVar33);\n            }\n            piVar33 = (int *)puVar43[0x21];\n            piVar17 = piStack_e0;\n            uStack_1e4 = uVar11;\n            if (piVar33 != (int *)0x0) {\n              iVar29 = 0;\n              piVar3 = piStack_74;\n              do {\n                pcVar45 = *(code **)(puVar46 + 0x28520);\n                if (iVar29 == (int)local_78 + -1) goto LAB_0004dbc0;\n                if (*piVar33 != iVar29) {\n                  piVar3[2] = piStack_74[(*piVar33 + 1) * 2];\n                  piVar3[3] = piStack_74[(*piVar33 + 1) * 2 + 1];\n                }\n                iVar29 = iVar29 + 1;\n                piVar33 = piVar33 + 1;\n                piVar3 = piVar3 + 2;\n              } while( true );\n            }\n            goto LAB_0004dbbc;\n          }\n          *piStack_74 = 0;\n          piStack_74[1] = uStack_e8;\n          goto LAB_0004e838;\n        }\nLAB_0004e2d4:\n        FUN_00044db0(&puStack_144);\n        param_4 = puStack_16c;\n      }" if (parenthesized_expression "(((uVar34 == 1) || (puStack_128 == (uint *)0x0)) || (*piStack_13c != -1))" ( (binary_expression "((uVar34 == 1) || (puStack_128 == (uint *)0x0)) || (*piStack_13c != -1)" (parenthesized_expression "((uVar34 == 1) || (puStack_128 == (uint *)0x0))" ( (binary_expression "(uVar34 == 1) || (puStack_128 == (uint *)0x0)" (parenthesized_expression "(uVar34 == 1)" ( (binary_expression "uVar34 == 1" identifier == number_literal) )) || (parenthesized_expression "(puStack_128 == (uint *)0x0)" ( (binary_expression "puStack_128 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) || (parenthesized_expression "(*piStack_13c != -1)" ( (binary_expression "*piStack_13c != -1" (pointer_expression "*piStack_13c" * identifier) != number_literal) ))) )) (compound_statement "{\n        iStack_cc = 0;\n        uStack_d8 = 0;\n        uVar41 = puStack_f0[9];\n        uStack_1d0 = uStack_11c;\n        iStack_dc = 0;\n        uStack_168 = 0;\n        if ((*(byte *)(uVar41 + 0x34) & 1) != 0) {\n          uVar14 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n          if ((uVar14 & 1) == 0) {\n            if (uVar14 == 0) goto LAB_0004dd24;\n            if ((uVar14 & 6) == 6) {\n              uVar41 = puVar36[0xc];\n            }\n            else if ((uVar14 & 2) == 0) {\n              if ((uVar14 & 4) == 0) goto LAB_0004dd24;\n              uVar41 = FUN_00046cac(&uStack_168,puVar36,*(undefined4 *)(uVar41 + 0x28),uVar14);\n            }\n            else {\n              uVar41 = puVar36[0xb];\n            }\n          }\n          else {\n            uVar41 = puVar36[10];\n          }\n          if (uVar41 == 0) goto code_r0x0004ea7c;\n        }\nLAB_0004dd24:\n        bVar4 = ppuVar12 != (uint **)0x0;\n        if ((piStack_e0 == (int *)0x0) ||\n           (uVar14 = puVar36[0x13], piStack_e0[uVar6] = uVar41, uVar14 == 0)) {\nLAB_0004dd48:\n          if (*(int *)(uVar41 + 0x34) << 4 < 0) {\n            if (((*(byte *)(uVar41 + 0x34) & 1) == 0) ||\n               (iVar30 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar41 + 8),uVar41 + 0xc,uVar6),\n               iVar30 != 0)) {\n              uVar14 = uVar6;\n              bVar5 = bVar22;\n              if (!bVar22) goto LAB_0004e0e4;\n            }\n            else {\n              uVar6 = 0xffffffff;\n              bVar5 = false;\n            }\n          }\n          else {\n            uVar6 = 0xffffffff;\n            bVar5 = false;\n          }\n          iVar30 = *(int *)(puVar46 + 0x28244);\n          iVar15 = *(int *)(puVar46 + 0x2829c);\n          uVar14 = uStack_11c;\n          ppuStack_1dc = ppuVar12;\n          while ((int)uVar14 < (int)puStack_10c) {\n            uVar40 = uVar14 + 1;\n            if ((((int)uVar40 < (int)uStack_120) || ((int)puStack_114 <= (int)uStack_120)) &&\n               (((int)uVar40 < (int)puStack_128 || ((int)puStack_114 <= (int)puStack_128)))) {\n              iVar16 = *(int *)(uVar41 + 0x34);\n              puVar36 = puStack_f0;\n            }\n            else {\n              uStack_168 = (*(code *)(iVar30 + 0x41e4))(&puStack_144,uVar14 + 2);\n              if (uStack_168 != 0) {\n                if (uStack_168 == 0xc) goto LAB_0004dbf8;\n                uVar20 = 0x46c;\n                goto LAB_0004ea9c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x34);\n              uVar14 = uStack_11c;\n              puVar36 = puStack_f0;\n            }\n            puStack_f0 = puVar36;\n            if (iVar16 << 5 < 0) {\n              iVar16 = *(int *)(uVar41 + 8);\n              if (0 < iVar16) {\n                param_4 = (uint *)0x0;\n                iVar18 = *(int *)(puVar46 + 0x28244);\n                pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7ab0);\n                do {\n                  uVar42 = *puVar36;\n                  iVar44 = *(int *)(*(int *)(uVar41 + 0xc) + (int)param_4 * 4);\n                  uVar37 = *(uint *)(uVar42 + iVar44 * 8 + 4);\n                  if ((uVar37 & 0x800) != 0) {\n                    if ((uVar37 & 0xffc000) != 0) {\n                      uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec);\n                      uVar37 = (uVar37 << 8) >> 0x16;\n                      if ((uVar37 & 4) == 0) {\n                        uVar27 = uVar19 & 1;\n                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    iVar16 = (*(code *)(iVar15 + -0x4eb0))\n                                       (uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14);\n                    if (iVar16 != 0) {\n                      if (iStack_cc < iVar16) {\n                        iStack_cc = iVar16;\n                      }\n                      iVar16 = iVar16 + uStack_11c;\n                      uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16);\n                      uVar14 = uStack_164;\n                      if (uStack_164 != 0) goto joined_r0x0004e770;\n                      piVar33 = piStack_e0 + iVar16;\n                      iVar28 = *piVar33;\n                      piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc);\n                      if (iVar28 == 0) {\n                        piStack_160 = (int *)*piVar17;\n                        piStack_15c = (int *)piVar17[1];\n                        iStack_158 = piVar17[2];\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        *piVar33 = iVar44;\n                      }\n                      else {\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }\n                      if ((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar16 = *(int *)(uVar41 + 8);\n                    uVar14 = uStack_11c;\n                  }\nLAB_0004e670:\n                  param_4 = (uint *)((int)param_4 + 1);\n                } while ((int)param_4 < iVar16);\n              }\n              uStack_168 = 0;\n            }\n            uStack_11c = uVar14 + 1;\n            uVar14 = (uint)*(byte *)((int)puStack_140 + uVar14);\n            do {\n              if (*(int *)(uVar41 + 0x2c) != 0) {\n                uVar37 = *(uint *)(*(int *)(uVar41 + 0x2c) + uVar14 * 4);\nLAB_0004ddf0:\n                if (piStack_e0 != (int *)0x0) goto LAB_0004ddfc;\n                goto LAB_0004de1c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x30);\n              if (iVar16 != 0) {\n                uVar37 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n                if ((uVar37 & 1) == 0) {\n                  uVar37 = *(uint *)(iVar16 + uVar14 * 4);\n                }\n                else {\n                  uVar37 = *(uint *)(iVar16 + (uVar14 + 0x100) * 4);\n                }\n                goto LAB_0004ddf0;\n              }\n              iVar16 = (*(code *)(iVar26 + -0x7510))(puStack_f0,uVar41);\n            } while (iVar16 != 0);\n            uStack_168 = 0xc;\n            uVar14 = uStack_168;\njoined_r0x0004e770:\n            uStack_168 = uVar14;\n            if (piStack_e0 == (int *)0x0) {\n              piVar17 = (int *)0x0;\n              goto LAB_0004dbb4;\n            }\n            uVar37 = 0;\nLAB_0004ddfc:\n            uVar37 = FUN_0004d0a8(&uStack_168,&puStack_144,uVar37);\nLAB_0004de1c:\n            uVar14 = uStack_11c;\n            if (uVar37 == 0) {\n              piVar17 = piStack_e0;\n              if (uStack_168 != 0) goto LAB_0004dbb4;\n              if ((piStack_e0 == (int *)0x0) || ((bVar5 && (!bVar22)))) break;\n              param_4 = &uStack_168;\n              do {\n                bVar2 = false;\n                piVar17 = piStack_e0 + uStack_11c;\n                uVar14 = uStack_11c;\n                do {\n                  uVar37 = uVar14 + 1;\n                  piVar17 = piVar17 + 1;\n                  if (iStack_dc < (int)uVar37) {\n                    if (bVar2) {\n                      uStack_11c = uVar14;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar2 = true;\n                  uVar14 = uVar37;\n                } while (*piVar17 == 0);\n                uStack_11c = uVar37;\n                uVar37 = FUN_0004d0a8(param_4,&puStack_144,0);\n                uVar14 = uStack_11c;\n                if (uStack_168 != 0) {\n                  if (uVar37 == 0) goto LAB_0004e0cc;\n                  break;\n                }\n              } while (uVar37 == 0);\n            }\n            uVar42 = uStack_1d0;\n            if ((bVar4) && (uVar42 = uVar40, uVar41 != uVar37)) {\n              bVar4 = false;\n              uVar42 = uStack_1d0;\n            }\n            uStack_1d0 = uVar42;\n            uVar41 = uVar37;\n            uStack_11c = uVar14;\n            if (((*(byte *)(uVar37 + 0x34) & 8) != 0) &&\n               (((*(byte *)(uVar37 + 0x34) & 1) == 0 ||\n                (iVar16 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar37 + 8),uVar37 + 0xc,uVar14)\n                , iVar16 != 0)))) {\n              if (!bVar22) goto LAB_0004e0e4;\n              ppuStack_1dc = (uint **)0x0;\n              uVar6 = uVar14;\n              bVar5 = bVar22;\n            }\n          }\nLAB_0004e0cc:\n          uVar14 = uVar6;\n          if (ppuStack_1dc != (uint **)0x0) {\n            *ppuStack_1dc = (uint *)((int)*ppuStack_1dc + uStack_1d0);\n          }\n        }\n        else {\n          uVar14 = FUN_00047924(&puStack_144,uVar41 + 8,uVar41 + 0xc,0);\n          uStack_168 = uVar14;\n          if (uVar14 == 0) {\n            if ((*(byte *)(uVar41 + 0x34) & 2) == 0) {\n              bVar4 = false;\n            }\n            else {\n              uVar14 = FUN_0004c6a8(&puStack_144,uVar41 + 8,uVar41 + 0xc);\n              uStack_168 = uVar14;\n              if (uVar14 != 0) goto LAB_0004e0e4;\n              bVar4 = false;\n            }\n            goto LAB_0004dd48;\n          }\n        }\nLAB_0004e0e4:\n        piVar17 = piStack_e0;\n        if (uVar14 != 0xffffffff) {\n          if (uVar14 == 0xfffffffe) goto LAB_0004dbf8;\n          uStack_e8 = uVar14;\n          if (((uint)ppuVar24[7] & 0x8000000) == 0) {\n            if (!bVar1) {\n              uVar6 = puVar43[0x13];\n              goto joined_r0x0004e94c;\n            }\n            pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n            iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                     piStack_e0[uVar14] + 0xc,uVar14);\n            if ((*(char *)(puVar43 + 0x16) < '\0') || (puVar43[0x13] != 0)) goto LAB_0004e170;\n          }\n          else {\n            uVar6 = puVar43[0x13];\njoined_r0x0004e94c:\n            if (uVar6 != 0) {\n              pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n              iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                       piStack_e0[uVar14] + 0xc,uVar14);\nLAB_0004e170:\n              iVar30 = iStack_e4;\n              puVar36 = puStack_f0;\n              if (uVar14 < 0x3fffffff) {\n                uStack_1f0 = uVar14 + 1;\n                piVar17 = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                if (piVar17 == (int *)0x0) goto LAB_0004dbf8;\n                if (puVar36[0x13] == 0) {\n                  piStack_15c = (int *)0x0;\n                  uStack_150 = 0;\n                  uStack_14c = 0;\n                  uStack_148 = 0;\n                  piStack_160 = piVar17;\n                  iStack_158 = iVar30;\n                  uStack_154 = uVar14;\n                  uStack_1e4 = FUN_0004d30c(&puStack_144,&piStack_160);\n                  (**(code **)(puVar46 + 0x28520))(uStack_148);\n                  if (uStack_1e4 == 0) {\n                    if (*piVar17 == 0) {\n                      (**(code **)(puVar46 + 0x28520))(piVar17);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar46 + 0x28520))(piStack_e0);\n                    uStack_e8 = uVar14;\n                    iStack_e4 = iVar30;\n                    piStack_e0 = piVar17;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  piStack_1ec = (int *)0x0;\n                }\n                else {\n                  piStack_1ec = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                  if (piStack_1ec == (int *)0x0) {\n                    (**(code **)(puVar46 + 0x28520))(piVar17);\n                    uStack_1e4 = 0xc;\n                    piVar17 = piStack_e0;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar15 = *(int *)(puVar46 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);\n                    uStack_150 = 0;\n                    uStack_14c = 0;\n                    uStack_148 = 0;\n                    piStack_160 = piVar17;\n                    piStack_15c = piStack_1ec;\n                    iStack_158 = iVar30;\n                    uStack_154 = uVar14;\n                    uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);\n                    (**(code **)(puVar46 + 0x28520))(uStack_148);\n                    if (uStack_1e4 != 0) break;\n                    if ((*piVar17 != 0) || (*piStack_1ec != 0)) {\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    piVar33 = piStack_e0 + (uStack_1f0 - 1);\n                    uStack_1f0 = uVar14;\n                    while( true ) {\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }\n                    iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       );\n                  }\n                }\n                (**(code **)(puVar46 + 0x28520))(piVar17);\n                (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                piVar17 = piStack_e0;\n                if (uStack_1e4 == 1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }\n              uStack_1e4 = 0xc;\n              goto LAB_0004dbbc;\n            }\n          }\nLAB_0004e7e0:\n          piVar17 = piStack_e0;\n          uStack_1e4 = uVar11;\n          if (local_78 == (uint *)0x0) goto LAB_0004dbbc;\n          puVar23 = ppuVar24[7];\n          if (bVar1) {\n            piVar17 = piStack_74 + 2;\n            do {\n              piVar17[1] = -1;\n              piVar33 = piVar17 + 2;\n              *piVar17 = -1;\n              piVar17 = piVar33;\n            } while (piStack_74 + (int)local_78 * 2 != piVar33);\n            *piStack_74 = 0;\n            piStack_74[1] = uStack_e8;\n            if (((uint)puVar23 & 0x8000000) == 0) {\n              if (*(char *)(puVar43 + 0x16) < '\0') {\n                bVar22 = 0 < (int)puVar43[0x13];\n              }\n              else {\n                bVar22 = false;\n              }\n              uStack_1e4 = FUN_0004bc00(ppuVar24,&puStack_144,local_78,piStack_74,bVar22);\n              piVar17 = piStack_e0;\n              if (uStack_1e4 != 0) goto LAB_0004dbbc;\n              puVar23 = (uint *)*piStack_74;\n            }\n            else {\nLAB_0004e838:\n              puVar23 = (uint *)0x0;\n            }\n            puVar36 = (uint *)0x0;\n            piVar17 = piStack_74;\n            while( true ) {\n              if (puVar23 != (uint *)0xffffffff) {\n                puVar32 = (uint *)piVar17[1];\n                puVar39 = puVar23;\n                puVar38 = puVar32;\n                if (cStack_f8 != '\0') {\n                  puVar39 = puStack_124;\n                  if (puStack_128 != puVar23) {\n                    puVar39 = *(uint **)(iStack_138 + (int)puVar23 * 4);\n                  }\n                  *piVar17 = (int)puVar39;\n                  puVar38 = puStack_124;\n                  if (puStack_128 != puVar32) {\n                    puVar38 = *(uint **)(iStack_138 + (int)puVar32 * 4);\n                  }\n                }\n                *piVar17 = (int)puStack_16c + (int)puVar39;\n                piVar17[1] = (int)puStack_16c + (int)puVar38;\n              }\n              puVar36 = (uint *)((int)puVar36 + 1);\n              piVar17 = piVar17 + 2;\n              if (puVar36 == local_78) break;\n              puVar23 = (uint *)*piVar17;\n            }\n            if (0 < iStack_180) {\n              piVar17 = piStack_74 + (int)local_78 * 2;\n              do {\n                *piVar17 = -1;\n                piVar33 = piVar17 + 2;\n                piVar17[1] = -1;\n                piVar17 = piVar33;\n              } while (piStack_74 + (iStack_180 + (int)local_78) * 2 != piVar33);\n            }\n            piVar33 = (int *)puVar43[0x21];\n            piVar17 = piStack_e0;\n            uStack_1e4 = uVar11;\n            if (piVar33 != (int *)0x0) {\n              iVar29 = 0;\n              piVar3 = piStack_74;\n              do {\n                pcVar45 = *(code **)(puVar46 + 0x28520);\n                if (iVar29 == (int)local_78 + -1) goto LAB_0004dbc0;\n                if (*piVar33 != iVar29) {\n                  piVar3[2] = piStack_74[(*piVar33 + 1) * 2];\n                  piVar3[3] = piStack_74[(*piVar33 + 1) * 2 + 1];\n                }\n                iVar29 = iVar29 + 1;\n                piVar33 = piVar33 + 1;\n                piVar3 = piVar3 + 2;\n              } while( true );\n            }\n            goto LAB_0004dbbc;\n          }\n          *piStack_74 = 0;\n          piStack_74[1] = uStack_e8;\n          goto LAB_0004e838;\n        }\nLAB_0004e2d4:\n        FUN_00044db0(&puStack_144);\n        param_4 = puStack_16c;\n      }" { (expression_statement "iStack_cc = 0;" (assignment_expression "iStack_cc = 0" identifier = number_literal) ;) (expression_statement "uStack_d8 = 0;" (assignment_expression "uStack_d8 = 0" identifier = number_literal) ;) (expression_statement "uVar41 = puStack_f0[9];" (assignment_expression "uVar41 = puStack_f0[9]" identifier = (subscript_expression "puStack_f0[9]" identifier [ number_literal ])) ;) (expression_statement "uStack_1d0 = uStack_11c;" (assignment_expression "uStack_1d0 = uStack_11c" identifier = identifier) ;) (expression_statement "iStack_dc = 0;" (assignment_expression "iStack_dc = 0" identifier = number_literal) ;) (expression_statement "uStack_168 = 0;" (assignment_expression "uStack_168 = 0" identifier = number_literal) ;) (if_statement "if ((*(byte *)(uVar41 + 0x34) & 1) != 0) {\n          uVar14 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n          if ((uVar14 & 1) == 0) {\n            if (uVar14 == 0) goto LAB_0004dd24;\n            if ((uVar14 & 6) == 6) {\n              uVar41 = puVar36[0xc];\n            }\n            else if ((uVar14 & 2) == 0) {\n              if ((uVar14 & 4) == 0) goto LAB_0004dd24;\n              uVar41 = FUN_00046cac(&uStack_168,puVar36,*(undefined4 *)(uVar41 + 0x28),uVar14);\n            }\n            else {\n              uVar41 = puVar36[0xb];\n            }\n          }\n          else {\n            uVar41 = puVar36[10];\n          }\n          if (uVar41 == 0) goto code_r0x0004ea7c;\n        }" if (parenthesized_expression "((*(byte *)(uVar41 + 0x34) & 1) != 0)" ( (binary_expression "(*(byte *)(uVar41 + 0x34) & 1) != 0" (parenthesized_expression "(*(byte *)(uVar41 + 0x34) & 1)" ( (binary_expression "*(byte *)(uVar41 + 0x34) & 1" (pointer_expression "*(byte *)(uVar41 + 0x34)" * (cast_expression "(byte *)(uVar41 + 0x34)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar41 + 0x34)" ( (binary_expression "uVar41 + 0x34" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n          uVar14 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n          if ((uVar14 & 1) == 0) {\n            if (uVar14 == 0) goto LAB_0004dd24;\n            if ((uVar14 & 6) == 6) {\n              uVar41 = puVar36[0xc];\n            }\n            else if ((uVar14 & 2) == 0) {\n              if ((uVar14 & 4) == 0) goto LAB_0004dd24;\n              uVar41 = FUN_00046cac(&uStack_168,puVar36,*(undefined4 *)(uVar41 + 0x28),uVar14);\n            }\n            else {\n              uVar41 = puVar36[0xb];\n            }\n          }\n          else {\n            uVar41 = puVar36[10];\n          }\n          if (uVar41 == 0) goto code_r0x0004ea7c;\n        }" { (expression_statement "uVar14 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);" (assignment_expression "uVar14 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec)" identifier = (call_expression "FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec)" identifier (argument_list "(&puStack_144,uStack_11c - 1,puStack_ec)" ( (pointer_expression "&puStack_144" & identifier) , (binary_expression "uStack_11c - 1" identifier - number_literal) , identifier )))) ;) (if_statement "if ((uVar14 & 1) == 0) {\n            if (uVar14 == 0) goto LAB_0004dd24;\n            if ((uVar14 & 6) == 6) {\n              uVar41 = puVar36[0xc];\n            }\n            else if ((uVar14 & 2) == 0) {\n              if ((uVar14 & 4) == 0) goto LAB_0004dd24;\n              uVar41 = FUN_00046cac(&uStack_168,puVar36,*(undefined4 *)(uVar41 + 0x28),uVar14);\n            }\n            else {\n              uVar41 = puVar36[0xb];\n            }\n          }\n          else {\n            uVar41 = puVar36[10];\n          }" if (parenthesized_expression "((uVar14 & 1) == 0)" ( (binary_expression "(uVar14 & 1) == 0" (parenthesized_expression "(uVar14 & 1)" ( (binary_expression "uVar14 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            if (uVar14 == 0) goto LAB_0004dd24;\n            if ((uVar14 & 6) == 6) {\n              uVar41 = puVar36[0xc];\n            }\n            else if ((uVar14 & 2) == 0) {\n              if ((uVar14 & 4) == 0) goto LAB_0004dd24;\n              uVar41 = FUN_00046cac(&uStack_168,puVar36,*(undefined4 *)(uVar41 + 0x28),uVar14);\n            }\n            else {\n              uVar41 = puVar36[0xb];\n            }\n          }" { (if_statement "if (uVar14 == 0) goto LAB_0004dd24;" if (parenthesized_expression "(uVar14 == 0)" ( (binary_expression "uVar14 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0004dd24;" goto statement_identifier ;)) (if_statement "if ((uVar14 & 6) == 6) {\n              uVar41 = puVar36[0xc];\n            }\n            else if ((uVar14 & 2) == 0) {\n              if ((uVar14 & 4) == 0) goto LAB_0004dd24;\n              uVar41 = FUN_00046cac(&uStack_168,puVar36,*(undefined4 *)(uVar41 + 0x28),uVar14);\n            }\n            else {\n              uVar41 = puVar36[0xb];\n            }" if (parenthesized_expression "((uVar14 & 6) == 6)" ( (binary_expression "(uVar14 & 6) == 6" (parenthesized_expression "(uVar14 & 6)" ( (binary_expression "uVar14 & 6" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n              uVar41 = puVar36[0xc];\n            }" { (expression_statement "uVar41 = puVar36[0xc];" (assignment_expression "uVar41 = puVar36[0xc]" identifier = (subscript_expression "puVar36[0xc]" identifier [ number_literal ])) ;) }) (else_clause "else if ((uVar14 & 2) == 0) {\n              if ((uVar14 & 4) == 0) goto LAB_0004dd24;\n              uVar41 = FUN_00046cac(&uStack_168,puVar36,*(undefined4 *)(uVar41 + 0x28),uVar14);\n            }\n            else {\n              uVar41 = puVar36[0xb];\n            }" else (if_statement "if ((uVar14 & 2) == 0) {\n              if ((uVar14 & 4) == 0) goto LAB_0004dd24;\n              uVar41 = FUN_00046cac(&uStack_168,puVar36,*(undefined4 *)(uVar41 + 0x28),uVar14);\n            }\n            else {\n              uVar41 = puVar36[0xb];\n            }" if (parenthesized_expression "((uVar14 & 2) == 0)" ( (binary_expression "(uVar14 & 2) == 0" (parenthesized_expression "(uVar14 & 2)" ( (binary_expression "uVar14 & 2" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n              if ((uVar14 & 4) == 0) goto LAB_0004dd24;\n              uVar41 = FUN_00046cac(&uStack_168,puVar36,*(undefined4 *)(uVar41 + 0x28),uVar14);\n            }" { (if_statement "if ((uVar14 & 4) == 0) goto LAB_0004dd24;" if (parenthesized_expression "((uVar14 & 4) == 0)" ( (binary_expression "(uVar14 & 4) == 0" (parenthesized_expression "(uVar14 & 4)" ( (binary_expression "uVar14 & 4" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0004dd24;" goto statement_identifier ;)) (expression_statement "uVar41 = FUN_00046cac(&uStack_168,puVar36,*(undefined4 *)(uVar41 + 0x28),uVar14);" (assignment_expression "uVar41 = FUN_00046cac(&uStack_168,puVar36,*(undefined4 *)(uVar41 + 0x28),uVar14)" identifier = (call_expression "FUN_00046cac(&uStack_168,puVar36,*(undefined4 *)(uVar41 + 0x28),uVar14)" identifier (argument_list "(&uStack_168,puVar36,*(undefined4 *)(uVar41 + 0x28),uVar14)" ( (pointer_expression "&uStack_168" & identifier) , identifier , (pointer_expression "*(undefined4 *)(uVar41 + 0x28)" * (cast_expression "(undefined4 *)(uVar41 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar41 + 0x28)" ( (binary_expression "uVar41 + 0x28" identifier + number_literal) )))) , identifier )))) ;) }) (else_clause "else {\n              uVar41 = puVar36[0xb];\n            }" else (compound_statement "{\n              uVar41 = puVar36[0xb];\n            }" { (expression_statement "uVar41 = puVar36[0xb];" (assignment_expression "uVar41 = puVar36[0xb]" identifier = (subscript_expression "puVar36[0xb]" identifier [ number_literal ])) ;) }))))) }) (else_clause "else {\n            uVar41 = puVar36[10];\n          }" else (compound_statement "{\n            uVar41 = puVar36[10];\n          }" { (expression_statement "uVar41 = puVar36[10];" (assignment_expression "uVar41 = puVar36[10]" identifier = (subscript_expression "puVar36[10]" identifier [ number_literal ])) ;) }))) (if_statement "if (uVar41 == 0) goto code_r0x0004ea7c;" if (parenthesized_expression "(uVar41 == 0)" ( (binary_expression "uVar41 == 0" identifier == number_literal) )) (goto_statement "goto code_r0x0004ea7c;" goto statement_identifier ;)) })) (labeled_statement "LAB_0004dd24:\n        bVar4 = ppuVar12 != (uint **)0x0;" statement_identifier : (expression_statement "bVar4 = ppuVar12 != (uint **)0x0;" (assignment_expression "bVar4 = ppuVar12 != (uint **)0x0" identifier = (binary_expression "ppuVar12 != (uint **)0x0" identifier != (cast_expression "(uint **)0x0" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal))) ;)) (if_statement "if ((piStack_e0 == (int *)0x0) ||\n           (uVar14 = puVar36[0x13], piStack_e0[uVar6] = uVar41, uVar14 == 0)) {\nLAB_0004dd48:\n          if (*(int *)(uVar41 + 0x34) << 4 < 0) {\n            if (((*(byte *)(uVar41 + 0x34) & 1) == 0) ||\n               (iVar30 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar41 + 8),uVar41 + 0xc,uVar6),\n               iVar30 != 0)) {\n              uVar14 = uVar6;\n              bVar5 = bVar22;\n              if (!bVar22) goto LAB_0004e0e4;\n            }\n            else {\n              uVar6 = 0xffffffff;\n              bVar5 = false;\n            }\n          }\n          else {\n            uVar6 = 0xffffffff;\n            bVar5 = false;\n          }\n          iVar30 = *(int *)(puVar46 + 0x28244);\n          iVar15 = *(int *)(puVar46 + 0x2829c);\n          uVar14 = uStack_11c;\n          ppuStack_1dc = ppuVar12;\n          while ((int)uVar14 < (int)puStack_10c) {\n            uVar40 = uVar14 + 1;\n            if ((((int)uVar40 < (int)uStack_120) || ((int)puStack_114 <= (int)uStack_120)) &&\n               (((int)uVar40 < (int)puStack_128 || ((int)puStack_114 <= (int)puStack_128)))) {\n              iVar16 = *(int *)(uVar41 + 0x34);\n              puVar36 = puStack_f0;\n            }\n            else {\n              uStack_168 = (*(code *)(iVar30 + 0x41e4))(&puStack_144,uVar14 + 2);\n              if (uStack_168 != 0) {\n                if (uStack_168 == 0xc) goto LAB_0004dbf8;\n                uVar20 = 0x46c;\n                goto LAB_0004ea9c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x34);\n              uVar14 = uStack_11c;\n              puVar36 = puStack_f0;\n            }\n            puStack_f0 = puVar36;\n            if (iVar16 << 5 < 0) {\n              iVar16 = *(int *)(uVar41 + 8);\n              if (0 < iVar16) {\n                param_4 = (uint *)0x0;\n                iVar18 = *(int *)(puVar46 + 0x28244);\n                pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7ab0);\n                do {\n                  uVar42 = *puVar36;\n                  iVar44 = *(int *)(*(int *)(uVar41 + 0xc) + (int)param_4 * 4);\n                  uVar37 = *(uint *)(uVar42 + iVar44 * 8 + 4);\n                  if ((uVar37 & 0x800) != 0) {\n                    if ((uVar37 & 0xffc000) != 0) {\n                      uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec);\n                      uVar37 = (uVar37 << 8) >> 0x16;\n                      if ((uVar37 & 4) == 0) {\n                        uVar27 = uVar19 & 1;\n                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    iVar16 = (*(code *)(iVar15 + -0x4eb0))\n                                       (uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14);\n                    if (iVar16 != 0) {\n                      if (iStack_cc < iVar16) {\n                        iStack_cc = iVar16;\n                      }\n                      iVar16 = iVar16 + uStack_11c;\n                      uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16);\n                      uVar14 = uStack_164;\n                      if (uStack_164 != 0) goto joined_r0x0004e770;\n                      piVar33 = piStack_e0 + iVar16;\n                      iVar28 = *piVar33;\n                      piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc);\n                      if (iVar28 == 0) {\n                        piStack_160 = (int *)*piVar17;\n                        piStack_15c = (int *)piVar17[1];\n                        iStack_158 = piVar17[2];\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        *piVar33 = iVar44;\n                      }\n                      else {\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }\n                      if ((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar16 = *(int *)(uVar41 + 8);\n                    uVar14 = uStack_11c;\n                  }\nLAB_0004e670:\n                  param_4 = (uint *)((int)param_4 + 1);\n                } while ((int)param_4 < iVar16);\n              }\n              uStack_168 = 0;\n            }\n            uStack_11c = uVar14 + 1;\n            uVar14 = (uint)*(byte *)((int)puStack_140 + uVar14);\n            do {\n              if (*(int *)(uVar41 + 0x2c) != 0) {\n                uVar37 = *(uint *)(*(int *)(uVar41 + 0x2c) + uVar14 * 4);\nLAB_0004ddf0:\n                if (piStack_e0 != (int *)0x0) goto LAB_0004ddfc;\n                goto LAB_0004de1c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x30);\n              if (iVar16 != 0) {\n                uVar37 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n                if ((uVar37 & 1) == 0) {\n                  uVar37 = *(uint *)(iVar16 + uVar14 * 4);\n                }\n                else {\n                  uVar37 = *(uint *)(iVar16 + (uVar14 + 0x100) * 4);\n                }\n                goto LAB_0004ddf0;\n              }\n              iVar16 = (*(code *)(iVar26 + -0x7510))(puStack_f0,uVar41);\n            } while (iVar16 != 0);\n            uStack_168 = 0xc;\n            uVar14 = uStack_168;\njoined_r0x0004e770:\n            uStack_168 = uVar14;\n            if (piStack_e0 == (int *)0x0) {\n              piVar17 = (int *)0x0;\n              goto LAB_0004dbb4;\n            }\n            uVar37 = 0;\nLAB_0004ddfc:\n            uVar37 = FUN_0004d0a8(&uStack_168,&puStack_144,uVar37);\nLAB_0004de1c:\n            uVar14 = uStack_11c;\n            if (uVar37 == 0) {\n              piVar17 = piStack_e0;\n              if (uStack_168 != 0) goto LAB_0004dbb4;\n              if ((piStack_e0 == (int *)0x0) || ((bVar5 && (!bVar22)))) break;\n              param_4 = &uStack_168;\n              do {\n                bVar2 = false;\n                piVar17 = piStack_e0 + uStack_11c;\n                uVar14 = uStack_11c;\n                do {\n                  uVar37 = uVar14 + 1;\n                  piVar17 = piVar17 + 1;\n                  if (iStack_dc < (int)uVar37) {\n                    if (bVar2) {\n                      uStack_11c = uVar14;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar2 = true;\n                  uVar14 = uVar37;\n                } while (*piVar17 == 0);\n                uStack_11c = uVar37;\n                uVar37 = FUN_0004d0a8(param_4,&puStack_144,0);\n                uVar14 = uStack_11c;\n                if (uStack_168 != 0) {\n                  if (uVar37 == 0) goto LAB_0004e0cc;\n                  break;\n                }\n              } while (uVar37 == 0);\n            }\n            uVar42 = uStack_1d0;\n            if ((bVar4) && (uVar42 = uVar40, uVar41 != uVar37)) {\n              bVar4 = false;\n              uVar42 = uStack_1d0;\n            }\n            uStack_1d0 = uVar42;\n            uVar41 = uVar37;\n            uStack_11c = uVar14;\n            if (((*(byte *)(uVar37 + 0x34) & 8) != 0) &&\n               (((*(byte *)(uVar37 + 0x34) & 1) == 0 ||\n                (iVar16 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar37 + 8),uVar37 + 0xc,uVar14)\n                , iVar16 != 0)))) {\n              if (!bVar22) goto LAB_0004e0e4;\n              ppuStack_1dc = (uint **)0x0;\n              uVar6 = uVar14;\n              bVar5 = bVar22;\n            }\n          }\nLAB_0004e0cc:\n          uVar14 = uVar6;\n          if (ppuStack_1dc != (uint **)0x0) {\n            *ppuStack_1dc = (uint *)((int)*ppuStack_1dc + uStack_1d0);\n          }\n        }\n        else {\n          uVar14 = FUN_00047924(&puStack_144,uVar41 + 8,uVar41 + 0xc,0);\n          uStack_168 = uVar14;\n          if (uVar14 == 0) {\n            if ((*(byte *)(uVar41 + 0x34) & 2) == 0) {\n              bVar4 = false;\n            }\n            else {\n              uVar14 = FUN_0004c6a8(&puStack_144,uVar41 + 8,uVar41 + 0xc);\n              uStack_168 = uVar14;\n              if (uVar14 != 0) goto LAB_0004e0e4;\n              bVar4 = false;\n            }\n            goto LAB_0004dd48;\n          }\n        }" if (parenthesized_expression "((piStack_e0 == (int *)0x0) ||\n           (uVar14 = puVar36[0x13], piStack_e0[uVar6] = uVar41, uVar14 == 0))" ( (binary_expression "(piStack_e0 == (int *)0x0) ||\n           (uVar14 = puVar36[0x13], piStack_e0[uVar6] = uVar41, uVar14 == 0)" (parenthesized_expression "(piStack_e0 == (int *)0x0)" ( (binary_expression "piStack_e0 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(uVar14 = puVar36[0x13], piStack_e0[uVar6] = uVar41, uVar14 == 0)" ( (comma_expression "uVar14 = puVar36[0x13], piStack_e0[uVar6] = uVar41, uVar14 == 0" (assignment_expression "uVar14 = puVar36[0x13]" identifier = (subscript_expression "puVar36[0x13]" identifier [ number_literal ])) , (comma_expression "piStack_e0[uVar6] = uVar41, uVar14 == 0" (assignment_expression "piStack_e0[uVar6] = uVar41" (subscript_expression "piStack_e0[uVar6]" identifier [ identifier ]) = identifier) , (binary_expression "uVar14 == 0" identifier == number_literal))) ))) )) (compound_statement "{\nLAB_0004dd48:\n          if (*(int *)(uVar41 + 0x34) << 4 < 0) {\n            if (((*(byte *)(uVar41 + 0x34) & 1) == 0) ||\n               (iVar30 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar41 + 8),uVar41 + 0xc,uVar6),\n               iVar30 != 0)) {\n              uVar14 = uVar6;\n              bVar5 = bVar22;\n              if (!bVar22) goto LAB_0004e0e4;\n            }\n            else {\n              uVar6 = 0xffffffff;\n              bVar5 = false;\n            }\n          }\n          else {\n            uVar6 = 0xffffffff;\n            bVar5 = false;\n          }\n          iVar30 = *(int *)(puVar46 + 0x28244);\n          iVar15 = *(int *)(puVar46 + 0x2829c);\n          uVar14 = uStack_11c;\n          ppuStack_1dc = ppuVar12;\n          while ((int)uVar14 < (int)puStack_10c) {\n            uVar40 = uVar14 + 1;\n            if ((((int)uVar40 < (int)uStack_120) || ((int)puStack_114 <= (int)uStack_120)) &&\n               (((int)uVar40 < (int)puStack_128 || ((int)puStack_114 <= (int)puStack_128)))) {\n              iVar16 = *(int *)(uVar41 + 0x34);\n              puVar36 = puStack_f0;\n            }\n            else {\n              uStack_168 = (*(code *)(iVar30 + 0x41e4))(&puStack_144,uVar14 + 2);\n              if (uStack_168 != 0) {\n                if (uStack_168 == 0xc) goto LAB_0004dbf8;\n                uVar20 = 0x46c;\n                goto LAB_0004ea9c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x34);\n              uVar14 = uStack_11c;\n              puVar36 = puStack_f0;\n            }\n            puStack_f0 = puVar36;\n            if (iVar16 << 5 < 0) {\n              iVar16 = *(int *)(uVar41 + 8);\n              if (0 < iVar16) {\n                param_4 = (uint *)0x0;\n                iVar18 = *(int *)(puVar46 + 0x28244);\n                pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7ab0);\n                do {\n                  uVar42 = *puVar36;\n                  iVar44 = *(int *)(*(int *)(uVar41 + 0xc) + (int)param_4 * 4);\n                  uVar37 = *(uint *)(uVar42 + iVar44 * 8 + 4);\n                  if ((uVar37 & 0x800) != 0) {\n                    if ((uVar37 & 0xffc000) != 0) {\n                      uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec);\n                      uVar37 = (uVar37 << 8) >> 0x16;\n                      if ((uVar37 & 4) == 0) {\n                        uVar27 = uVar19 & 1;\n                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    iVar16 = (*(code *)(iVar15 + -0x4eb0))\n                                       (uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14);\n                    if (iVar16 != 0) {\n                      if (iStack_cc < iVar16) {\n                        iStack_cc = iVar16;\n                      }\n                      iVar16 = iVar16 + uStack_11c;\n                      uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16);\n                      uVar14 = uStack_164;\n                      if (uStack_164 != 0) goto joined_r0x0004e770;\n                      piVar33 = piStack_e0 + iVar16;\n                      iVar28 = *piVar33;\n                      piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc);\n                      if (iVar28 == 0) {\n                        piStack_160 = (int *)*piVar17;\n                        piStack_15c = (int *)piVar17[1];\n                        iStack_158 = piVar17[2];\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        *piVar33 = iVar44;\n                      }\n                      else {\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }\n                      if ((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar16 = *(int *)(uVar41 + 8);\n                    uVar14 = uStack_11c;\n                  }\nLAB_0004e670:\n                  param_4 = (uint *)((int)param_4 + 1);\n                } while ((int)param_4 < iVar16);\n              }\n              uStack_168 = 0;\n            }\n            uStack_11c = uVar14 + 1;\n            uVar14 = (uint)*(byte *)((int)puStack_140 + uVar14);\n            do {\n              if (*(int *)(uVar41 + 0x2c) != 0) {\n                uVar37 = *(uint *)(*(int *)(uVar41 + 0x2c) + uVar14 * 4);\nLAB_0004ddf0:\n                if (piStack_e0 != (int *)0x0) goto LAB_0004ddfc;\n                goto LAB_0004de1c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x30);\n              if (iVar16 != 0) {\n                uVar37 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n                if ((uVar37 & 1) == 0) {\n                  uVar37 = *(uint *)(iVar16 + uVar14 * 4);\n                }\n                else {\n                  uVar37 = *(uint *)(iVar16 + (uVar14 + 0x100) * 4);\n                }\n                goto LAB_0004ddf0;\n              }\n              iVar16 = (*(code *)(iVar26 + -0x7510))(puStack_f0,uVar41);\n            } while (iVar16 != 0);\n            uStack_168 = 0xc;\n            uVar14 = uStack_168;\njoined_r0x0004e770:\n            uStack_168 = uVar14;\n            if (piStack_e0 == (int *)0x0) {\n              piVar17 = (int *)0x0;\n              goto LAB_0004dbb4;\n            }\n            uVar37 = 0;\nLAB_0004ddfc:\n            uVar37 = FUN_0004d0a8(&uStack_168,&puStack_144,uVar37);\nLAB_0004de1c:\n            uVar14 = uStack_11c;\n            if (uVar37 == 0) {\n              piVar17 = piStack_e0;\n              if (uStack_168 != 0) goto LAB_0004dbb4;\n              if ((piStack_e0 == (int *)0x0) || ((bVar5 && (!bVar22)))) break;\n              param_4 = &uStack_168;\n              do {\n                bVar2 = false;\n                piVar17 = piStack_e0 + uStack_11c;\n                uVar14 = uStack_11c;\n                do {\n                  uVar37 = uVar14 + 1;\n                  piVar17 = piVar17 + 1;\n                  if (iStack_dc < (int)uVar37) {\n                    if (bVar2) {\n                      uStack_11c = uVar14;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar2 = true;\n                  uVar14 = uVar37;\n                } while (*piVar17 == 0);\n                uStack_11c = uVar37;\n                uVar37 = FUN_0004d0a8(param_4,&puStack_144,0);\n                uVar14 = uStack_11c;\n                if (uStack_168 != 0) {\n                  if (uVar37 == 0) goto LAB_0004e0cc;\n                  break;\n                }\n              } while (uVar37 == 0);\n            }\n            uVar42 = uStack_1d0;\n            if ((bVar4) && (uVar42 = uVar40, uVar41 != uVar37)) {\n              bVar4 = false;\n              uVar42 = uStack_1d0;\n            }\n            uStack_1d0 = uVar42;\n            uVar41 = uVar37;\n            uStack_11c = uVar14;\n            if (((*(byte *)(uVar37 + 0x34) & 8) != 0) &&\n               (((*(byte *)(uVar37 + 0x34) & 1) == 0 ||\n                (iVar16 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar37 + 8),uVar37 + 0xc,uVar14)\n                , iVar16 != 0)))) {\n              if (!bVar22) goto LAB_0004e0e4;\n              ppuStack_1dc = (uint **)0x0;\n              uVar6 = uVar14;\n              bVar5 = bVar22;\n            }\n          }\nLAB_0004e0cc:\n          uVar14 = uVar6;\n          if (ppuStack_1dc != (uint **)0x0) {\n            *ppuStack_1dc = (uint *)((int)*ppuStack_1dc + uStack_1d0);\n          }\n        }" { (labeled_statement "LAB_0004dd48:\n          if (*(int *)(uVar41 + 0x34) << 4 < 0) {\n            if (((*(byte *)(uVar41 + 0x34) & 1) == 0) ||\n               (iVar30 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar41 + 8),uVar41 + 0xc,uVar6),\n               iVar30 != 0)) {\n              uVar14 = uVar6;\n              bVar5 = bVar22;\n              if (!bVar22) goto LAB_0004e0e4;\n            }\n            else {\n              uVar6 = 0xffffffff;\n              bVar5 = false;\n            }\n          }\n          else {\n            uVar6 = 0xffffffff;\n            bVar5 = false;\n          }" statement_identifier : (if_statement "if (*(int *)(uVar41 + 0x34) << 4 < 0) {\n            if (((*(byte *)(uVar41 + 0x34) & 1) == 0) ||\n               (iVar30 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar41 + 8),uVar41 + 0xc,uVar6),\n               iVar30 != 0)) {\n              uVar14 = uVar6;\n              bVar5 = bVar22;\n              if (!bVar22) goto LAB_0004e0e4;\n            }\n            else {\n              uVar6 = 0xffffffff;\n              bVar5 = false;\n            }\n          }\n          else {\n            uVar6 = 0xffffffff;\n            bVar5 = false;\n          }" if (parenthesized_expression "(*(int *)(uVar41 + 0x34) << 4 < 0)" ( (binary_expression "*(int *)(uVar41 + 0x34) << 4 < 0" (binary_expression "*(int *)(uVar41 + 0x34) << 4" (pointer_expression "*(int *)(uVar41 + 0x34)" * (cast_expression "(int *)(uVar41 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar41 + 0x34)" ( (binary_expression "uVar41 + 0x34" identifier + number_literal) )))) << number_literal) < number_literal) )) (compound_statement "{\n            if (((*(byte *)(uVar41 + 0x34) & 1) == 0) ||\n               (iVar30 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar41 + 8),uVar41 + 0xc,uVar6),\n               iVar30 != 0)) {\n              uVar14 = uVar6;\n              bVar5 = bVar22;\n              if (!bVar22) goto LAB_0004e0e4;\n            }\n            else {\n              uVar6 = 0xffffffff;\n              bVar5 = false;\n            }\n          }" { (if_statement "if (((*(byte *)(uVar41 + 0x34) & 1) == 0) ||\n               (iVar30 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar41 + 8),uVar41 + 0xc,uVar6),\n               iVar30 != 0)) {\n              uVar14 = uVar6;\n              bVar5 = bVar22;\n              if (!bVar22) goto LAB_0004e0e4;\n            }\n            else {\n              uVar6 = 0xffffffff;\n              bVar5 = false;\n            }" if (parenthesized_expression "(((*(byte *)(uVar41 + 0x34) & 1) == 0) ||\n               (iVar30 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar41 + 8),uVar41 + 0xc,uVar6),\n               iVar30 != 0))" ( (binary_expression "((*(byte *)(uVar41 + 0x34) & 1) == 0) ||\n               (iVar30 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar41 + 8),uVar41 + 0xc,uVar6),\n               iVar30 != 0)" (parenthesized_expression "((*(byte *)(uVar41 + 0x34) & 1) == 0)" ( (binary_expression "(*(byte *)(uVar41 + 0x34) & 1) == 0" (parenthesized_expression "(*(byte *)(uVar41 + 0x34) & 1)" ( (binary_expression "*(byte *)(uVar41 + 0x34) & 1" (pointer_expression "*(byte *)(uVar41 + 0x34)" * (cast_expression "(byte *)(uVar41 + 0x34)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar41 + 0x34)" ( (binary_expression "uVar41 + 0x34" identifier + number_literal) )))) & number_literal) )) == number_literal) )) || (parenthesized_expression "(iVar30 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar41 + 8),uVar41 + 0xc,uVar6),\n               iVar30 != 0)" ( (comma_expression "iVar30 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar41 + 8),uVar41 + 0xc,uVar6),\n               iVar30 != 0" (assignment_expression "iVar30 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar41 + 8),uVar41 + 0xc,uVar6)" identifier = (call_expression "FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar41 + 8),uVar41 + 0xc,uVar6)" identifier (argument_list "(&puStack_144,*(undefined4 *)(uVar41 + 8),uVar41 + 0xc,uVar6)" ( (pointer_expression "&puStack_144" & identifier) , (pointer_expression "*(undefined4 *)(uVar41 + 8)" * (cast_expression "(undefined4 *)(uVar41 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar41 + 8)" ( (binary_expression "uVar41 + 8" identifier + number_literal) )))) , (binary_expression "uVar41 + 0xc" identifier + number_literal) , identifier )))) , (binary_expression "iVar30 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n              uVar14 = uVar6;\n              bVar5 = bVar22;\n              if (!bVar22) goto LAB_0004e0e4;\n            }" { (expression_statement "uVar14 = uVar6;" (assignment_expression "uVar14 = uVar6" identifier = identifier) ;) (expression_statement "bVar5 = bVar22;" (assignment_expression "bVar5 = bVar22" identifier = identifier) ;) (if_statement "if (!bVar22) goto LAB_0004e0e4;" if (parenthesized_expression "(!bVar22)" ( (unary_expression "!bVar22" ! identifier) )) (goto_statement "goto LAB_0004e0e4;" goto statement_identifier ;)) }) (else_clause "else {\n              uVar6 = 0xffffffff;\n              bVar5 = false;\n            }" else (compound_statement "{\n              uVar6 = 0xffffffff;\n              bVar5 = false;\n            }" { (expression_statement "uVar6 = 0xffffffff;" (assignment_expression "uVar6 = 0xffffffff" identifier = number_literal) ;) (expression_statement "bVar5 = false;" (assignment_expression "bVar5 = false" identifier = false) ;) }))) }) (else_clause "else {\n            uVar6 = 0xffffffff;\n            bVar5 = false;\n          }" else (compound_statement "{\n            uVar6 = 0xffffffff;\n            bVar5 = false;\n          }" { (expression_statement "uVar6 = 0xffffffff;" (assignment_expression "uVar6 = 0xffffffff" identifier = number_literal) ;) (expression_statement "bVar5 = false;" (assignment_expression "bVar5 = false" identifier = false) ;) })))) (expression_statement "iVar30 = *(int *)(puVar46 + 0x28244);" (assignment_expression "iVar30 = *(int *)(puVar46 + 0x28244)" identifier = (pointer_expression "*(int *)(puVar46 + 0x28244)" * (cast_expression "(int *)(puVar46 + 0x28244)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar46 + 0x28244)" ( (binary_expression "puVar46 + 0x28244" identifier + number_literal) ))))) ;) (expression_statement "iVar15 = *(int *)(puVar46 + 0x2829c);" (assignment_expression "iVar15 = *(int *)(puVar46 + 0x2829c)" identifier = (pointer_expression "*(int *)(puVar46 + 0x2829c)" * (cast_expression "(int *)(puVar46 + 0x2829c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar46 + 0x2829c)" ( (binary_expression "puVar46 + 0x2829c" identifier + number_literal) ))))) ;) (expression_statement "uVar14 = uStack_11c;" (assignment_expression "uVar14 = uStack_11c" identifier = identifier) ;) (expression_statement "ppuStack_1dc = ppuVar12;" (assignment_expression "ppuStack_1dc = ppuVar12" identifier = identifier) ;) (while_statement "while ((int)uVar14 < (int)puStack_10c) {\n            uVar40 = uVar14 + 1;\n            if ((((int)uVar40 < (int)uStack_120) || ((int)puStack_114 <= (int)uStack_120)) &&\n               (((int)uVar40 < (int)puStack_128 || ((int)puStack_114 <= (int)puStack_128)))) {\n              iVar16 = *(int *)(uVar41 + 0x34);\n              puVar36 = puStack_f0;\n            }\n            else {\n              uStack_168 = (*(code *)(iVar30 + 0x41e4))(&puStack_144,uVar14 + 2);\n              if (uStack_168 != 0) {\n                if (uStack_168 == 0xc) goto LAB_0004dbf8;\n                uVar20 = 0x46c;\n                goto LAB_0004ea9c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x34);\n              uVar14 = uStack_11c;\n              puVar36 = puStack_f0;\n            }\n            puStack_f0 = puVar36;\n            if (iVar16 << 5 < 0) {\n              iVar16 = *(int *)(uVar41 + 8);\n              if (0 < iVar16) {\n                param_4 = (uint *)0x0;\n                iVar18 = *(int *)(puVar46 + 0x28244);\n                pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7ab0);\n                do {\n                  uVar42 = *puVar36;\n                  iVar44 = *(int *)(*(int *)(uVar41 + 0xc) + (int)param_4 * 4);\n                  uVar37 = *(uint *)(uVar42 + iVar44 * 8 + 4);\n                  if ((uVar37 & 0x800) != 0) {\n                    if ((uVar37 & 0xffc000) != 0) {\n                      uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec);\n                      uVar37 = (uVar37 << 8) >> 0x16;\n                      if ((uVar37 & 4) == 0) {\n                        uVar27 = uVar19 & 1;\n                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    iVar16 = (*(code *)(iVar15 + -0x4eb0))\n                                       (uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14);\n                    if (iVar16 != 0) {\n                      if (iStack_cc < iVar16) {\n                        iStack_cc = iVar16;\n                      }\n                      iVar16 = iVar16 + uStack_11c;\n                      uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16);\n                      uVar14 = uStack_164;\n                      if (uStack_164 != 0) goto joined_r0x0004e770;\n                      piVar33 = piStack_e0 + iVar16;\n                      iVar28 = *piVar33;\n                      piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc);\n                      if (iVar28 == 0) {\n                        piStack_160 = (int *)*piVar17;\n                        piStack_15c = (int *)piVar17[1];\n                        iStack_158 = piVar17[2];\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        *piVar33 = iVar44;\n                      }\n                      else {\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }\n                      if ((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar16 = *(int *)(uVar41 + 8);\n                    uVar14 = uStack_11c;\n                  }\nLAB_0004e670:\n                  param_4 = (uint *)((int)param_4 + 1);\n                } while ((int)param_4 < iVar16);\n              }\n              uStack_168 = 0;\n            }\n            uStack_11c = uVar14 + 1;\n            uVar14 = (uint)*(byte *)((int)puStack_140 + uVar14);\n            do {\n              if (*(int *)(uVar41 + 0x2c) != 0) {\n                uVar37 = *(uint *)(*(int *)(uVar41 + 0x2c) + uVar14 * 4);\nLAB_0004ddf0:\n                if (piStack_e0 != (int *)0x0) goto LAB_0004ddfc;\n                goto LAB_0004de1c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x30);\n              if (iVar16 != 0) {\n                uVar37 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n                if ((uVar37 & 1) == 0) {\n                  uVar37 = *(uint *)(iVar16 + uVar14 * 4);\n                }\n                else {\n                  uVar37 = *(uint *)(iVar16 + (uVar14 + 0x100) * 4);\n                }\n                goto LAB_0004ddf0;\n              }\n              iVar16 = (*(code *)(iVar26 + -0x7510))(puStack_f0,uVar41);\n            } while (iVar16 != 0);\n            uStack_168 = 0xc;\n            uVar14 = uStack_168;\njoined_r0x0004e770:\n            uStack_168 = uVar14;\n            if (piStack_e0 == (int *)0x0) {\n              piVar17 = (int *)0x0;\n              goto LAB_0004dbb4;\n            }\n            uVar37 = 0;\nLAB_0004ddfc:\n            uVar37 = FUN_0004d0a8(&uStack_168,&puStack_144,uVar37);\nLAB_0004de1c:\n            uVar14 = uStack_11c;\n            if (uVar37 == 0) {\n              piVar17 = piStack_e0;\n              if (uStack_168 != 0) goto LAB_0004dbb4;\n              if ((piStack_e0 == (int *)0x0) || ((bVar5 && (!bVar22)))) break;\n              param_4 = &uStack_168;\n              do {\n                bVar2 = false;\n                piVar17 = piStack_e0 + uStack_11c;\n                uVar14 = uStack_11c;\n                do {\n                  uVar37 = uVar14 + 1;\n                  piVar17 = piVar17 + 1;\n                  if (iStack_dc < (int)uVar37) {\n                    if (bVar2) {\n                      uStack_11c = uVar14;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar2 = true;\n                  uVar14 = uVar37;\n                } while (*piVar17 == 0);\n                uStack_11c = uVar37;\n                uVar37 = FUN_0004d0a8(param_4,&puStack_144,0);\n                uVar14 = uStack_11c;\n                if (uStack_168 != 0) {\n                  if (uVar37 == 0) goto LAB_0004e0cc;\n                  break;\n                }\n              } while (uVar37 == 0);\n            }\n            uVar42 = uStack_1d0;\n            if ((bVar4) && (uVar42 = uVar40, uVar41 != uVar37)) {\n              bVar4 = false;\n              uVar42 = uStack_1d0;\n            }\n            uStack_1d0 = uVar42;\n            uVar41 = uVar37;\n            uStack_11c = uVar14;\n            if (((*(byte *)(uVar37 + 0x34) & 8) != 0) &&\n               (((*(byte *)(uVar37 + 0x34) & 1) == 0 ||\n                (iVar16 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar37 + 8),uVar37 + 0xc,uVar14)\n                , iVar16 != 0)))) {\n              if (!bVar22) goto LAB_0004e0e4;\n              ppuStack_1dc = (uint **)0x0;\n              uVar6 = uVar14;\n              bVar5 = bVar22;\n            }\n          }" while (parenthesized_expression "((int)uVar14 < (int)puStack_10c)" ( (binary_expression "(int)uVar14 < (int)puStack_10c" (cast_expression "(int)uVar14" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)puStack_10c" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            uVar40 = uVar14 + 1;\n            if ((((int)uVar40 < (int)uStack_120) || ((int)puStack_114 <= (int)uStack_120)) &&\n               (((int)uVar40 < (int)puStack_128 || ((int)puStack_114 <= (int)puStack_128)))) {\n              iVar16 = *(int *)(uVar41 + 0x34);\n              puVar36 = puStack_f0;\n            }\n            else {\n              uStack_168 = (*(code *)(iVar30 + 0x41e4))(&puStack_144,uVar14 + 2);\n              if (uStack_168 != 0) {\n                if (uStack_168 == 0xc) goto LAB_0004dbf8;\n                uVar20 = 0x46c;\n                goto LAB_0004ea9c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x34);\n              uVar14 = uStack_11c;\n              puVar36 = puStack_f0;\n            }\n            puStack_f0 = puVar36;\n            if (iVar16 << 5 < 0) {\n              iVar16 = *(int *)(uVar41 + 8);\n              if (0 < iVar16) {\n                param_4 = (uint *)0x0;\n                iVar18 = *(int *)(puVar46 + 0x28244);\n                pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7ab0);\n                do {\n                  uVar42 = *puVar36;\n                  iVar44 = *(int *)(*(int *)(uVar41 + 0xc) + (int)param_4 * 4);\n                  uVar37 = *(uint *)(uVar42 + iVar44 * 8 + 4);\n                  if ((uVar37 & 0x800) != 0) {\n                    if ((uVar37 & 0xffc000) != 0) {\n                      uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec);\n                      uVar37 = (uVar37 << 8) >> 0x16;\n                      if ((uVar37 & 4) == 0) {\n                        uVar27 = uVar19 & 1;\n                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    iVar16 = (*(code *)(iVar15 + -0x4eb0))\n                                       (uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14);\n                    if (iVar16 != 0) {\n                      if (iStack_cc < iVar16) {\n                        iStack_cc = iVar16;\n                      }\n                      iVar16 = iVar16 + uStack_11c;\n                      uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16);\n                      uVar14 = uStack_164;\n                      if (uStack_164 != 0) goto joined_r0x0004e770;\n                      piVar33 = piStack_e0 + iVar16;\n                      iVar28 = *piVar33;\n                      piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc);\n                      if (iVar28 == 0) {\n                        piStack_160 = (int *)*piVar17;\n                        piStack_15c = (int *)piVar17[1];\n                        iStack_158 = piVar17[2];\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        *piVar33 = iVar44;\n                      }\n                      else {\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }\n                      if ((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar16 = *(int *)(uVar41 + 8);\n                    uVar14 = uStack_11c;\n                  }\nLAB_0004e670:\n                  param_4 = (uint *)((int)param_4 + 1);\n                } while ((int)param_4 < iVar16);\n              }\n              uStack_168 = 0;\n            }\n            uStack_11c = uVar14 + 1;\n            uVar14 = (uint)*(byte *)((int)puStack_140 + uVar14);\n            do {\n              if (*(int *)(uVar41 + 0x2c) != 0) {\n                uVar37 = *(uint *)(*(int *)(uVar41 + 0x2c) + uVar14 * 4);\nLAB_0004ddf0:\n                if (piStack_e0 != (int *)0x0) goto LAB_0004ddfc;\n                goto LAB_0004de1c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x30);\n              if (iVar16 != 0) {\n                uVar37 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n                if ((uVar37 & 1) == 0) {\n                  uVar37 = *(uint *)(iVar16 + uVar14 * 4);\n                }\n                else {\n                  uVar37 = *(uint *)(iVar16 + (uVar14 + 0x100) * 4);\n                }\n                goto LAB_0004ddf0;\n              }\n              iVar16 = (*(code *)(iVar26 + -0x7510))(puStack_f0,uVar41);\n            } while (iVar16 != 0);\n            uStack_168 = 0xc;\n            uVar14 = uStack_168;\njoined_r0x0004e770:\n            uStack_168 = uVar14;\n            if (piStack_e0 == (int *)0x0) {\n              piVar17 = (int *)0x0;\n              goto LAB_0004dbb4;\n            }\n            uVar37 = 0;\nLAB_0004ddfc:\n            uVar37 = FUN_0004d0a8(&uStack_168,&puStack_144,uVar37);\nLAB_0004de1c:\n            uVar14 = uStack_11c;\n            if (uVar37 == 0) {\n              piVar17 = piStack_e0;\n              if (uStack_168 != 0) goto LAB_0004dbb4;\n              if ((piStack_e0 == (int *)0x0) || ((bVar5 && (!bVar22)))) break;\n              param_4 = &uStack_168;\n              do {\n                bVar2 = false;\n                piVar17 = piStack_e0 + uStack_11c;\n                uVar14 = uStack_11c;\n                do {\n                  uVar37 = uVar14 + 1;\n                  piVar17 = piVar17 + 1;\n                  if (iStack_dc < (int)uVar37) {\n                    if (bVar2) {\n                      uStack_11c = uVar14;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar2 = true;\n                  uVar14 = uVar37;\n                } while (*piVar17 == 0);\n                uStack_11c = uVar37;\n                uVar37 = FUN_0004d0a8(param_4,&puStack_144,0);\n                uVar14 = uStack_11c;\n                if (uStack_168 != 0) {\n                  if (uVar37 == 0) goto LAB_0004e0cc;\n                  break;\n                }\n              } while (uVar37 == 0);\n            }\n            uVar42 = uStack_1d0;\n            if ((bVar4) && (uVar42 = uVar40, uVar41 != uVar37)) {\n              bVar4 = false;\n              uVar42 = uStack_1d0;\n            }\n            uStack_1d0 = uVar42;\n            uVar41 = uVar37;\n            uStack_11c = uVar14;\n            if (((*(byte *)(uVar37 + 0x34) & 8) != 0) &&\n               (((*(byte *)(uVar37 + 0x34) & 1) == 0 ||\n                (iVar16 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar37 + 8),uVar37 + 0xc,uVar14)\n                , iVar16 != 0)))) {\n              if (!bVar22) goto LAB_0004e0e4;\n              ppuStack_1dc = (uint **)0x0;\n              uVar6 = uVar14;\n              bVar5 = bVar22;\n            }\n          }" { (expression_statement "uVar40 = uVar14 + 1;" (assignment_expression "uVar40 = uVar14 + 1" identifier = (binary_expression "uVar14 + 1" identifier + number_literal)) ;) (if_statement "if ((((int)uVar40 < (int)uStack_120) || ((int)puStack_114 <= (int)uStack_120)) &&\n               (((int)uVar40 < (int)puStack_128 || ((int)puStack_114 <= (int)puStack_128)))) {\n              iVar16 = *(int *)(uVar41 + 0x34);\n              puVar36 = puStack_f0;\n            }\n            else {\n              uStack_168 = (*(code *)(iVar30 + 0x41e4))(&puStack_144,uVar14 + 2);\n              if (uStack_168 != 0) {\n                if (uStack_168 == 0xc) goto LAB_0004dbf8;\n                uVar20 = 0x46c;\n                goto LAB_0004ea9c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x34);\n              uVar14 = uStack_11c;\n              puVar36 = puStack_f0;\n            }" if (parenthesized_expression "((((int)uVar40 < (int)uStack_120) || ((int)puStack_114 <= (int)uStack_120)) &&\n               (((int)uVar40 < (int)puStack_128 || ((int)puStack_114 <= (int)puStack_128))))" ( (binary_expression "(((int)uVar40 < (int)uStack_120) || ((int)puStack_114 <= (int)uStack_120)) &&\n               (((int)uVar40 < (int)puStack_128 || ((int)puStack_114 <= (int)puStack_128)))" (parenthesized_expression "(((int)uVar40 < (int)uStack_120) || ((int)puStack_114 <= (int)uStack_120))" ( (binary_expression "((int)uVar40 < (int)uStack_120) || ((int)puStack_114 <= (int)uStack_120)" (parenthesized_expression "((int)uVar40 < (int)uStack_120)" ( (binary_expression "(int)uVar40 < (int)uStack_120" (cast_expression "(int)uVar40" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)uStack_120" ( (type_descriptor "int" primitive_type) ) identifier)) )) || (parenthesized_expression "((int)puStack_114 <= (int)uStack_120)" ( (binary_expression "(int)puStack_114 <= (int)uStack_120" (cast_expression "(int)puStack_114" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)uStack_120" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) && (parenthesized_expression "(((int)uVar40 < (int)puStack_128 || ((int)puStack_114 <= (int)puStack_128)))" ( (parenthesized_expression "((int)uVar40 < (int)puStack_128 || ((int)puStack_114 <= (int)puStack_128))" ( (binary_expression "(int)uVar40 < (int)puStack_128 || ((int)puStack_114 <= (int)puStack_128)" (binary_expression "(int)uVar40 < (int)puStack_128" (cast_expression "(int)uVar40" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)puStack_128" ( (type_descriptor "int" primitive_type) ) identifier)) || (parenthesized_expression "((int)puStack_114 <= (int)puStack_128)" ( (binary_expression "(int)puStack_114 <= (int)puStack_128" (cast_expression "(int)puStack_114" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)puStack_128" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) ))) )) (compound_statement "{\n              iVar16 = *(int *)(uVar41 + 0x34);\n              puVar36 = puStack_f0;\n            }" { (expression_statement "iVar16 = *(int *)(uVar41 + 0x34);" (assignment_expression "iVar16 = *(int *)(uVar41 + 0x34)" identifier = (pointer_expression "*(int *)(uVar41 + 0x34)" * (cast_expression "(int *)(uVar41 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar41 + 0x34)" ( (binary_expression "uVar41 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "puVar36 = puStack_f0;" (assignment_expression "puVar36 = puStack_f0" identifier = identifier) ;) }) (else_clause "else {\n              uStack_168 = (*(code *)(iVar30 + 0x41e4))(&puStack_144,uVar14 + 2);\n              if (uStack_168 != 0) {\n                if (uStack_168 == 0xc) goto LAB_0004dbf8;\n                uVar20 = 0x46c;\n                goto LAB_0004ea9c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x34);\n              uVar14 = uStack_11c;\n              puVar36 = puStack_f0;\n            }" else (compound_statement "{\n              uStack_168 = (*(code *)(iVar30 + 0x41e4))(&puStack_144,uVar14 + 2);\n              if (uStack_168 != 0) {\n                if (uStack_168 == 0xc) goto LAB_0004dbf8;\n                uVar20 = 0x46c;\n                goto LAB_0004ea9c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x34);\n              uVar14 = uStack_11c;\n              puVar36 = puStack_f0;\n            }" { (expression_statement "uStack_168 = (*(code *)(iVar30 + 0x41e4))(&puStack_144,uVar14 + 2);" (assignment_expression "uStack_168 = (*(code *)(iVar30 + 0x41e4))(&puStack_144,uVar14 + 2)" identifier = (call_expression "(*(code *)(iVar30 + 0x41e4))(&puStack_144,uVar14 + 2)" (parenthesized_expression "(*(code *)(iVar30 + 0x41e4))" ( (pointer_expression "*(code *)(iVar30 + 0x41e4)" * (cast_expression "(code *)(iVar30 + 0x41e4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar30 + 0x41e4)" ( (binary_expression "iVar30 + 0x41e4" identifier + number_literal) )))) )) (argument_list "(&puStack_144,uVar14 + 2)" ( (pointer_expression "&puStack_144" & identifier) , (binary_expression "uVar14 + 2" identifier + number_literal) )))) ;) (if_statement "if (uStack_168 != 0) {\n                if (uStack_168 == 0xc) goto LAB_0004dbf8;\n                uVar20 = 0x46c;\n                goto LAB_0004ea9c;\n              }" if (parenthesized_expression "(uStack_168 != 0)" ( (binary_expression "uStack_168 != 0" identifier != number_literal) )) (compound_statement "{\n                if (uStack_168 == 0xc) goto LAB_0004dbf8;\n                uVar20 = 0x46c;\n                goto LAB_0004ea9c;\n              }" { (if_statement "if (uStack_168 == 0xc) goto LAB_0004dbf8;" if (parenthesized_expression "(uStack_168 == 0xc)" ( (binary_expression "uStack_168 == 0xc" identifier == number_literal) )) (goto_statement "goto LAB_0004dbf8;" goto statement_identifier ;)) (expression_statement "uVar20 = 0x46c;" (assignment_expression "uVar20 = 0x46c" identifier = number_literal) ;) (goto_statement "goto LAB_0004ea9c;" goto statement_identifier ;) })) (expression_statement "iVar16 = *(int *)(uVar41 + 0x34);" (assignment_expression "iVar16 = *(int *)(uVar41 + 0x34)" identifier = (pointer_expression "*(int *)(uVar41 + 0x34)" * (cast_expression "(int *)(uVar41 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar41 + 0x34)" ( (binary_expression "uVar41 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "uVar14 = uStack_11c;" (assignment_expression "uVar14 = uStack_11c" identifier = identifier) ;) (expression_statement "puVar36 = puStack_f0;" (assignment_expression "puVar36 = puStack_f0" identifier = identifier) ;) }))) (expression_statement "puStack_f0 = puVar36;" (assignment_expression "puStack_f0 = puVar36" identifier = identifier) ;) (if_statement "if (iVar16 << 5 < 0) {\n              iVar16 = *(int *)(uVar41 + 8);\n              if (0 < iVar16) {\n                param_4 = (uint *)0x0;\n                iVar18 = *(int *)(puVar46 + 0x28244);\n                pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7ab0);\n                do {\n                  uVar42 = *puVar36;\n                  iVar44 = *(int *)(*(int *)(uVar41 + 0xc) + (int)param_4 * 4);\n                  uVar37 = *(uint *)(uVar42 + iVar44 * 8 + 4);\n                  if ((uVar37 & 0x800) != 0) {\n                    if ((uVar37 & 0xffc000) != 0) {\n                      uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec);\n                      uVar37 = (uVar37 << 8) >> 0x16;\n                      if ((uVar37 & 4) == 0) {\n                        uVar27 = uVar19 & 1;\n                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    iVar16 = (*(code *)(iVar15 + -0x4eb0))\n                                       (uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14);\n                    if (iVar16 != 0) {\n                      if (iStack_cc < iVar16) {\n                        iStack_cc = iVar16;\n                      }\n                      iVar16 = iVar16 + uStack_11c;\n                      uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16);\n                      uVar14 = uStack_164;\n                      if (uStack_164 != 0) goto joined_r0x0004e770;\n                      piVar33 = piStack_e0 + iVar16;\n                      iVar28 = *piVar33;\n                      piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc);\n                      if (iVar28 == 0) {\n                        piStack_160 = (int *)*piVar17;\n                        piStack_15c = (int *)piVar17[1];\n                        iStack_158 = piVar17[2];\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        *piVar33 = iVar44;\n                      }\n                      else {\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }\n                      if ((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar16 = *(int *)(uVar41 + 8);\n                    uVar14 = uStack_11c;\n                  }\nLAB_0004e670:\n                  param_4 = (uint *)((int)param_4 + 1);\n                } while ((int)param_4 < iVar16);\n              }\n              uStack_168 = 0;\n            }" if (parenthesized_expression "(iVar16 << 5 < 0)" ( (binary_expression "iVar16 << 5 < 0" (binary_expression "iVar16 << 5" identifier << number_literal) < number_literal) )) (compound_statement "{\n              iVar16 = *(int *)(uVar41 + 8);\n              if (0 < iVar16) {\n                param_4 = (uint *)0x0;\n                iVar18 = *(int *)(puVar46 + 0x28244);\n                pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7ab0);\n                do {\n                  uVar42 = *puVar36;\n                  iVar44 = *(int *)(*(int *)(uVar41 + 0xc) + (int)param_4 * 4);\n                  uVar37 = *(uint *)(uVar42 + iVar44 * 8 + 4);\n                  if ((uVar37 & 0x800) != 0) {\n                    if ((uVar37 & 0xffc000) != 0) {\n                      uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec);\n                      uVar37 = (uVar37 << 8) >> 0x16;\n                      if ((uVar37 & 4) == 0) {\n                        uVar27 = uVar19 & 1;\n                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    iVar16 = (*(code *)(iVar15 + -0x4eb0))\n                                       (uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14);\n                    if (iVar16 != 0) {\n                      if (iStack_cc < iVar16) {\n                        iStack_cc = iVar16;\n                      }\n                      iVar16 = iVar16 + uStack_11c;\n                      uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16);\n                      uVar14 = uStack_164;\n                      if (uStack_164 != 0) goto joined_r0x0004e770;\n                      piVar33 = piStack_e0 + iVar16;\n                      iVar28 = *piVar33;\n                      piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc);\n                      if (iVar28 == 0) {\n                        piStack_160 = (int *)*piVar17;\n                        piStack_15c = (int *)piVar17[1];\n                        iStack_158 = piVar17[2];\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        *piVar33 = iVar44;\n                      }\n                      else {\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }\n                      if ((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar16 = *(int *)(uVar41 + 8);\n                    uVar14 = uStack_11c;\n                  }\nLAB_0004e670:\n                  param_4 = (uint *)((int)param_4 + 1);\n                } while ((int)param_4 < iVar16);\n              }\n              uStack_168 = 0;\n            }" { (expression_statement "iVar16 = *(int *)(uVar41 + 8);" (assignment_expression "iVar16 = *(int *)(uVar41 + 8)" identifier = (pointer_expression "*(int *)(uVar41 + 8)" * (cast_expression "(int *)(uVar41 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar41 + 8)" ( (binary_expression "uVar41 + 8" identifier + number_literal) ))))) ;) (if_statement "if (0 < iVar16) {\n                param_4 = (uint *)0x0;\n                iVar18 = *(int *)(puVar46 + 0x28244);\n                pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7ab0);\n                do {\n                  uVar42 = *puVar36;\n                  iVar44 = *(int *)(*(int *)(uVar41 + 0xc) + (int)param_4 * 4);\n                  uVar37 = *(uint *)(uVar42 + iVar44 * 8 + 4);\n                  if ((uVar37 & 0x800) != 0) {\n                    if ((uVar37 & 0xffc000) != 0) {\n                      uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec);\n                      uVar37 = (uVar37 << 8) >> 0x16;\n                      if ((uVar37 & 4) == 0) {\n                        uVar27 = uVar19 & 1;\n                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    iVar16 = (*(code *)(iVar15 + -0x4eb0))\n                                       (uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14);\n                    if (iVar16 != 0) {\n                      if (iStack_cc < iVar16) {\n                        iStack_cc = iVar16;\n                      }\n                      iVar16 = iVar16 + uStack_11c;\n                      uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16);\n                      uVar14 = uStack_164;\n                      if (uStack_164 != 0) goto joined_r0x0004e770;\n                      piVar33 = piStack_e0 + iVar16;\n                      iVar28 = *piVar33;\n                      piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc);\n                      if (iVar28 == 0) {\n                        piStack_160 = (int *)*piVar17;\n                        piStack_15c = (int *)piVar17[1];\n                        iStack_158 = piVar17[2];\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        *piVar33 = iVar44;\n                      }\n                      else {\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }\n                      if ((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar16 = *(int *)(uVar41 + 8);\n                    uVar14 = uStack_11c;\n                  }\nLAB_0004e670:\n                  param_4 = (uint *)((int)param_4 + 1);\n                } while ((int)param_4 < iVar16);\n              }" if (parenthesized_expression "(0 < iVar16)" ( (binary_expression "0 < iVar16" number_literal < identifier) )) (compound_statement "{\n                param_4 = (uint *)0x0;\n                iVar18 = *(int *)(puVar46 + 0x28244);\n                pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7ab0);\n                do {\n                  uVar42 = *puVar36;\n                  iVar44 = *(int *)(*(int *)(uVar41 + 0xc) + (int)param_4 * 4);\n                  uVar37 = *(uint *)(uVar42 + iVar44 * 8 + 4);\n                  if ((uVar37 & 0x800) != 0) {\n                    if ((uVar37 & 0xffc000) != 0) {\n                      uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec);\n                      uVar37 = (uVar37 << 8) >> 0x16;\n                      if ((uVar37 & 4) == 0) {\n                        uVar27 = uVar19 & 1;\n                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    iVar16 = (*(code *)(iVar15 + -0x4eb0))\n                                       (uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14);\n                    if (iVar16 != 0) {\n                      if (iStack_cc < iVar16) {\n                        iStack_cc = iVar16;\n                      }\n                      iVar16 = iVar16 + uStack_11c;\n                      uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16);\n                      uVar14 = uStack_164;\n                      if (uStack_164 != 0) goto joined_r0x0004e770;\n                      piVar33 = piStack_e0 + iVar16;\n                      iVar28 = *piVar33;\n                      piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc);\n                      if (iVar28 == 0) {\n                        piStack_160 = (int *)*piVar17;\n                        piStack_15c = (int *)piVar17[1];\n                        iStack_158 = piVar17[2];\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        *piVar33 = iVar44;\n                      }\n                      else {\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }\n                      if ((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar16 = *(int *)(uVar41 + 8);\n                    uVar14 = uStack_11c;\n                  }\nLAB_0004e670:\n                  param_4 = (uint *)((int)param_4 + 1);\n                } while ((int)param_4 < iVar16);\n              }" { (expression_statement "param_4 = (uint *)0x0;" (assignment_expression "param_4 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar18 = *(int *)(puVar46 + 0x28244);" (assignment_expression "iVar18 = *(int *)(puVar46 + 0x28244)" identifier = (pointer_expression "*(int *)(puVar46 + 0x28244)" * (cast_expression "(int *)(puVar46 + 0x28244)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar46 + 0x28244)" ( (binary_expression "puVar46 + 0x28244" identifier + number_literal) ))))) ;) (expression_statement "pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7ab0);" (assignment_expression "pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7ab0)" identifier = (cast_expression "(code *)(*(int *)(puVar46 + 0x28244) + 0x7ab0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar46 + 0x28244) + 0x7ab0)" ( (binary_expression "*(int *)(puVar46 + 0x28244) + 0x7ab0" (pointer_expression "*(int *)(puVar46 + 0x28244)" * (cast_expression "(int *)(puVar46 + 0x28244)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar46 + 0x28244)" ( (binary_expression "puVar46 + 0x28244" identifier + number_literal) )))) + number_literal) )))) ;) (do_statement "do {\n                  uVar42 = *puVar36;\n                  iVar44 = *(int *)(*(int *)(uVar41 + 0xc) + (int)param_4 * 4);\n                  uVar37 = *(uint *)(uVar42 + iVar44 * 8 + 4);\n                  if ((uVar37 & 0x800) != 0) {\n                    if ((uVar37 & 0xffc000) != 0) {\n                      uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec);\n                      uVar37 = (uVar37 << 8) >> 0x16;\n                      if ((uVar37 & 4) == 0) {\n                        uVar27 = uVar19 & 1;\n                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    iVar16 = (*(code *)(iVar15 + -0x4eb0))\n                                       (uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14);\n                    if (iVar16 != 0) {\n                      if (iStack_cc < iVar16) {\n                        iStack_cc = iVar16;\n                      }\n                      iVar16 = iVar16 + uStack_11c;\n                      uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16);\n                      uVar14 = uStack_164;\n                      if (uStack_164 != 0) goto joined_r0x0004e770;\n                      piVar33 = piStack_e0 + iVar16;\n                      iVar28 = *piVar33;\n                      piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc);\n                      if (iVar28 == 0) {\n                        piStack_160 = (int *)*piVar17;\n                        piStack_15c = (int *)piVar17[1];\n                        iStack_158 = piVar17[2];\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        *piVar33 = iVar44;\n                      }\n                      else {\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }\n                      if ((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar16 = *(int *)(uVar41 + 8);\n                    uVar14 = uStack_11c;\n                  }\nLAB_0004e670:\n                  param_4 = (uint *)((int)param_4 + 1);\n                } while ((int)param_4 < iVar16);" do (compound_statement "{\n                  uVar42 = *puVar36;\n                  iVar44 = *(int *)(*(int *)(uVar41 + 0xc) + (int)param_4 * 4);\n                  uVar37 = *(uint *)(uVar42 + iVar44 * 8 + 4);\n                  if ((uVar37 & 0x800) != 0) {\n                    if ((uVar37 & 0xffc000) != 0) {\n                      uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec);\n                      uVar37 = (uVar37 << 8) >> 0x16;\n                      if ((uVar37 & 4) == 0) {\n                        uVar27 = uVar19 & 1;\n                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    iVar16 = (*(code *)(iVar15 + -0x4eb0))\n                                       (uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14);\n                    if (iVar16 != 0) {\n                      if (iStack_cc < iVar16) {\n                        iStack_cc = iVar16;\n                      }\n                      iVar16 = iVar16 + uStack_11c;\n                      uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16);\n                      uVar14 = uStack_164;\n                      if (uStack_164 != 0) goto joined_r0x0004e770;\n                      piVar33 = piStack_e0 + iVar16;\n                      iVar28 = *piVar33;\n                      piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc);\n                      if (iVar28 == 0) {\n                        piStack_160 = (int *)*piVar17;\n                        piStack_15c = (int *)piVar17[1];\n                        iStack_158 = piVar17[2];\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        *piVar33 = iVar44;\n                      }\n                      else {\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }\n                      if ((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar16 = *(int *)(uVar41 + 8);\n                    uVar14 = uStack_11c;\n                  }\nLAB_0004e670:\n                  param_4 = (uint *)((int)param_4 + 1);\n                }" { (expression_statement "uVar42 = *puVar36;" (assignment_expression "uVar42 = *puVar36" identifier = (pointer_expression "*puVar36" * identifier)) ;) (expression_statement "iVar44 = *(int *)(*(int *)(uVar41 + 0xc) + (int)param_4 * 4);" (assignment_expression "iVar44 = *(int *)(*(int *)(uVar41 + 0xc) + (int)param_4 * 4)" identifier = (pointer_expression "*(int *)(*(int *)(uVar41 + 0xc) + (int)param_4 * 4)" * (cast_expression "(int *)(*(int *)(uVar41 + 0xc) + (int)param_4 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(uVar41 + 0xc) + (int)param_4 * 4)" ( (binary_expression "*(int *)(uVar41 + 0xc) + (int)param_4 * 4" (pointer_expression "*(int *)(uVar41 + 0xc)" * (cast_expression "(int *)(uVar41 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar41 + 0xc)" ( (binary_expression "uVar41 + 0xc" identifier + number_literal) )))) + (binary_expression "(int)param_4 * 4" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))))) ;) (expression_statement "uVar37 = *(uint *)(uVar42 + iVar44 * 8 + 4);" (assignment_expression "uVar37 = *(uint *)(uVar42 + iVar44 * 8 + 4)" identifier = (pointer_expression "*(uint *)(uVar42 + iVar44 * 8 + 4)" * (cast_expression "(uint *)(uVar42 + iVar44 * 8 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar42 + iVar44 * 8 + 4)" ( (binary_expression "uVar42 + iVar44 * 8 + 4" (binary_expression "uVar42 + iVar44 * 8" identifier + (binary_expression "iVar44 * 8" identifier * number_literal)) + number_literal) ))))) ;) (if_statement "if ((uVar37 & 0x800) != 0) {\n                    if ((uVar37 & 0xffc000) != 0) {\n                      uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec);\n                      uVar37 = (uVar37 << 8) >> 0x16;\n                      if ((uVar37 & 4) == 0) {\n                        uVar27 = uVar19 & 1;\n                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    iVar16 = (*(code *)(iVar15 + -0x4eb0))\n                                       (uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14);\n                    if (iVar16 != 0) {\n                      if (iStack_cc < iVar16) {\n                        iStack_cc = iVar16;\n                      }\n                      iVar16 = iVar16 + uStack_11c;\n                      uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16);\n                      uVar14 = uStack_164;\n                      if (uStack_164 != 0) goto joined_r0x0004e770;\n                      piVar33 = piStack_e0 + iVar16;\n                      iVar28 = *piVar33;\n                      piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc);\n                      if (iVar28 == 0) {\n                        piStack_160 = (int *)*piVar17;\n                        piStack_15c = (int *)piVar17[1];\n                        iStack_158 = piVar17[2];\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        *piVar33 = iVar44;\n                      }\n                      else {\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }\n                      if ((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar16 = *(int *)(uVar41 + 8);\n                    uVar14 = uStack_11c;\n                  }" if (parenthesized_expression "((uVar37 & 0x800) != 0)" ( (binary_expression "(uVar37 & 0x800) != 0" (parenthesized_expression "(uVar37 & 0x800)" ( (binary_expression "uVar37 & 0x800" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                    if ((uVar37 & 0xffc000) != 0) {\n                      uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec);\n                      uVar37 = (uVar37 << 8) >> 0x16;\n                      if ((uVar37 & 4) == 0) {\n                        uVar27 = uVar19 & 1;\n                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    iVar16 = (*(code *)(iVar15 + -0x4eb0))\n                                       (uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14);\n                    if (iVar16 != 0) {\n                      if (iStack_cc < iVar16) {\n                        iStack_cc = iVar16;\n                      }\n                      iVar16 = iVar16 + uStack_11c;\n                      uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16);\n                      uVar14 = uStack_164;\n                      if (uStack_164 != 0) goto joined_r0x0004e770;\n                      piVar33 = piStack_e0 + iVar16;\n                      iVar28 = *piVar33;\n                      piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc);\n                      if (iVar28 == 0) {\n                        piStack_160 = (int *)*piVar17;\n                        piStack_15c = (int *)piVar17[1];\n                        iStack_158 = piVar17[2];\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        *piVar33 = iVar44;\n                      }\n                      else {\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }\n                      if ((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar16 = *(int *)(uVar41 + 8);\n                    uVar14 = uStack_11c;\n                  }" { (if_statement "if ((uVar37 & 0xffc000) != 0) {\n                      uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec);\n                      uVar37 = (uVar37 << 8) >> 0x16;\n                      if ((uVar37 & 4) == 0) {\n                        uVar27 = uVar19 & 1;\n                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))) goto LAB_0004e670;\n                    }" if (parenthesized_expression "((uVar37 & 0xffc000) != 0)" ( (binary_expression "(uVar37 & 0xffc000) != 0" (parenthesized_expression "(uVar37 & 0xffc000)" ( (binary_expression "uVar37 & 0xffc000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                      uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec);\n                      uVar37 = (uVar37 << 8) >> 0x16;\n                      if ((uVar37 & 4) == 0) {\n                        uVar27 = uVar19 & 1;\n                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))) goto LAB_0004e670;\n                    }" { (expression_statement "uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec);" (assignment_expression "uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec)" identifier = (call_expression "(*pcVar45)(&puStack_144,uVar14,puStack_ec)" (parenthesized_expression "(*pcVar45)" ( (pointer_expression "*pcVar45" * identifier) )) (argument_list "(&puStack_144,uVar14,puStack_ec)" ( (pointer_expression "&puStack_144" & identifier) , identifier , identifier )))) ;) (expression_statement "uVar37 = (uVar37 << 8) >> 0x16;" (assignment_expression "uVar37 = (uVar37 << 8) >> 0x16" identifier = (binary_expression "(uVar37 << 8) >> 0x16" (parenthesized_expression "(uVar37 << 8)" ( (binary_expression "uVar37 << 8" identifier << number_literal) )) >> number_literal)) ;) (if_statement "if ((uVar37 & 4) == 0) {\n                        uVar27 = uVar19 & 1;\n                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }" if (parenthesized_expression "((uVar37 & 4) == 0)" ( (binary_expression "(uVar37 & 4) == 0" (parenthesized_expression "(uVar37 & 4)" ( (binary_expression "uVar37 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                        uVar27 = uVar19 & 1;\n                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;\n                      }" { (expression_statement "uVar27 = uVar19 & 1;" (assignment_expression "uVar27 = uVar19 & 1" identifier = (binary_expression "uVar19 & 1" identifier & number_literal)) ;) (if_statement "if ((uVar37 & 8) != 0) goto joined_r0x0004e514;" if (parenthesized_expression "((uVar37 & 8) != 0)" ( (binary_expression "(uVar37 & 8) != 0" (parenthesized_expression "(uVar37 & 8)" ( (binary_expression "uVar37 & 8" identifier & number_literal) )) != number_literal) )) (goto_statement "goto joined_r0x0004e514;" goto statement_identifier ;)) }) (else_clause "else {\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }" else (compound_statement "{\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }" { (expression_statement "uVar27 = uVar37 & 8;" (assignment_expression "uVar27 = uVar37 & 8" identifier = (binary_expression "uVar37 & 8" identifier & number_literal)) ;) (if_statement "if ((uVar19 & 1) == 0) goto LAB_0004e670;" if (parenthesized_expression "((uVar19 & 1) == 0)" ( (binary_expression "(uVar19 & 1) == 0" (parenthesized_expression "(uVar19 & 1)" ( (binary_expression "uVar19 & 1" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0004e670;" goto statement_identifier ;)) (labeled_statement "joined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;" statement_identifier : (if_statement "if (uVar27 != 0) goto LAB_0004e670;" if (parenthesized_expression "(uVar27 != 0)" ( (binary_expression "uVar27 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0004e670;" goto statement_identifier ;))) }))) (if_statement "if ((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))) goto LAB_0004e670;" if (parenthesized_expression "((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0))))" ( (binary_expression "(((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))" (parenthesized_expression "(((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0))" ( (binary_expression "((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)" (parenthesized_expression "((uVar37 & 0x20) != 0)" ( (binary_expression "(uVar37 & 0x20) != 0" (parenthesized_expression "(uVar37 & 0x20)" ( (binary_expression "uVar37 & 0x20" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "((uVar19 & 2) == 0)" ( (binary_expression "(uVar19 & 2) == 0" (parenthesized_expression "(uVar19 & 2)" ( (binary_expression "uVar19 & 2" identifier & number_literal) )) == number_literal) ))) )) || (parenthesized_expression "(((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))" ( (parenthesized_expression "((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0))" ( (binary_expression "(uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)" (binary_expression "(uVar37 & 0x80) != 0" (parenthesized_expression "(uVar37 & 0x80)" ( (binary_expression "uVar37 & 0x80" identifier & number_literal) )) != number_literal) && (parenthesized_expression "((uVar19 & 8) == 0)" ( (binary_expression "(uVar19 & 8) == 0" (parenthesized_expression "(uVar19 & 8)" ( (binary_expression "uVar19 & 8" identifier & number_literal) )) == number_literal) ))) )) ))) )) (goto_statement "goto LAB_0004e670;" goto statement_identifier ;)) })) (expression_statement "iVar16 = (*(code *)(iVar15 + -0x4eb0))\n                                       (uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14);" (assignment_expression "iVar16 = (*(code *)(iVar15 + -0x4eb0))\n                                       (uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14)" identifier = (call_expression "(*(code *)(iVar15 + -0x4eb0))\n                                       (uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14)" (parenthesized_expression "(*(code *)(iVar15 + -0x4eb0))" ( (pointer_expression "*(code *)(iVar15 + -0x4eb0)" * (cast_expression "(code *)(iVar15 + -0x4eb0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + -0x4eb0)" ( (binary_expression "iVar15 + -0x4eb0" identifier + number_literal) )))) )) (argument_list "(uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14)" ( identifier , (binary_expression "puVar36 + 0x20" identifier + number_literal) , identifier , (pointer_expression "&puStack_144" & identifier) , identifier )))) ;) (if_statement "if (iVar16 != 0) {\n                      if (iStack_cc < iVar16) {\n                        iStack_cc = iVar16;\n                      }\n                      iVar16 = iVar16 + uStack_11c;\n                      uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16);\n                      uVar14 = uStack_164;\n                      if (uStack_164 != 0) goto joined_r0x0004e770;\n                      piVar33 = piStack_e0 + iVar16;\n                      iVar28 = *piVar33;\n                      piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc);\n                      if (iVar28 == 0) {\n                        piStack_160 = (int *)*piVar17;\n                        piStack_15c = (int *)piVar17[1];\n                        iStack_158 = piVar17[2];\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        *piVar33 = iVar44;\n                      }\n                      else {\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }\n                      if ((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))\n                      goto joined_r0x0004e770;\n                    }" if (parenthesized_expression "(iVar16 != 0)" ( (binary_expression "iVar16 != 0" identifier != number_literal) )) (compound_statement "{\n                      if (iStack_cc < iVar16) {\n                        iStack_cc = iVar16;\n                      }\n                      iVar16 = iVar16 + uStack_11c;\n                      uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16);\n                      uVar14 = uStack_164;\n                      if (uStack_164 != 0) goto joined_r0x0004e770;\n                      piVar33 = piStack_e0 + iVar16;\n                      iVar28 = *piVar33;\n                      piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc);\n                      if (iVar28 == 0) {\n                        piStack_160 = (int *)*piVar17;\n                        piStack_15c = (int *)piVar17[1];\n                        iStack_158 = piVar17[2];\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        *piVar33 = iVar44;\n                      }\n                      else {\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }\n                      if ((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))\n                      goto joined_r0x0004e770;\n                    }" { (if_statement "if (iStack_cc < iVar16) {\n                        iStack_cc = iVar16;\n                      }" if (parenthesized_expression "(iStack_cc < iVar16)" ( (binary_expression "iStack_cc < iVar16" identifier < identifier) )) (compound_statement "{\n                        iStack_cc = iVar16;\n                      }" { (expression_statement "iStack_cc = iVar16;" (assignment_expression "iStack_cc = iVar16" identifier = identifier) ;) })) (expression_statement "iVar16 = iVar16 + uStack_11c;" (assignment_expression "iVar16 = iVar16 + uStack_11c" identifier = (binary_expression "iVar16 + uStack_11c" identifier + identifier)) ;) (expression_statement "uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16);" (assignment_expression "uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16)" identifier = (call_expression "(*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16)" (parenthesized_expression "(*(code *)(iVar18 + 0x43b0))" ( (pointer_expression "*(code *)(iVar18 + 0x43b0)" * (cast_expression "(code *)(iVar18 + 0x43b0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x43b0)" ( (binary_expression "iVar18 + 0x43b0" identifier + number_literal) )))) )) (argument_list "(&puStack_144,iVar16)" ( (pointer_expression "&puStack_144" & identifier) , identifier )))) ;) (expression_statement "uVar14 = uStack_164;" (assignment_expression "uVar14 = uStack_164" identifier = identifier) ;) (if_statement "if (uStack_164 != 0) goto joined_r0x0004e770;" if (parenthesized_expression "(uStack_164 != 0)" ( (binary_expression "uStack_164 != 0" identifier != number_literal) )) (goto_statement "goto joined_r0x0004e770;" goto statement_identifier ;)) (expression_statement "piVar33 = piStack_e0 + iVar16;" (assignment_expression "piVar33 = piStack_e0 + iVar16" identifier = (binary_expression "piStack_e0 + iVar16" identifier + identifier)) ;) (expression_statement "iVar28 = *piVar33;" (assignment_expression "iVar28 = *piVar33" identifier = (pointer_expression "*piVar33" * identifier)) ;) (expression_statement "piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc);" (assignment_expression "piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc)" identifier = (cast_expression "(int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc)" ( (binary_expression "puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc" (subscript_expression "puVar36[6]" identifier [ number_literal ]) + (binary_expression "*(int *)(puVar36[3] + iVar44 * 4) * 0xc" (pointer_expression "*(int *)(puVar36[3] + iVar44 * 4)" * (cast_expression "(int *)(puVar36[3] + iVar44 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36[3] + iVar44 * 4)" ( (binary_expression "puVar36[3] + iVar44 * 4" (subscript_expression "puVar36[3]" identifier [ number_literal ]) + (binary_expression "iVar44 * 4" identifier * number_literal)) )))) * number_literal)) )))) ;) (if_statement "if (iVar28 == 0) {\n                        piStack_160 = (int *)*piVar17;\n                        piStack_15c = (int *)piVar17[1];\n                        iStack_158 = piVar17[2];\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        *piVar33 = iVar44;\n                      }\n                      else {\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }" if (parenthesized_expression "(iVar28 == 0)" ( (binary_expression "iVar28 == 0" identifier == number_literal) )) (compound_statement "{\n                        piStack_160 = (int *)*piVar17;\n                        piStack_15c = (int *)piVar17[1];\n                        iStack_158 = piVar17[2];\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        *piVar33 = iVar44;\n                      }" { (expression_statement "piStack_160 = (int *)*piVar17;" (assignment_expression "piStack_160 = (int *)*piVar17" identifier = (cast_expression "(int *)*piVar17" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar17" * identifier))) ;) (expression_statement "piStack_15c = (int *)piVar17[1];" (assignment_expression "piStack_15c = (int *)piVar17[1]" identifier = (cast_expression "(int *)piVar17[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar17[1]" identifier [ number_literal ]))) ;) (expression_statement "iStack_158 = piVar17[2];" (assignment_expression "iStack_158 = piVar17[2]" identifier = (subscript_expression "piVar17[2]" identifier [ number_literal ])) ;) (expression_statement "uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);" (assignment_expression "uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec)" identifier = (call_expression "(*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec)" (parenthesized_expression "(*pcVar45)" ( (pointer_expression "*pcVar45" * identifier) )) (argument_list "(&puStack_144,iVar16 + -1,puStack_ec)" ( (pointer_expression "&puStack_144" & identifier) , (binary_expression "iVar16 + -1" identifier + number_literal) , identifier )))) ;) (expression_statement "iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);" (assignment_expression "iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20)" identifier = (call_expression "FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20)" identifier (argument_list "(&uStack_164,puVar36,&piStack_160,uVar20)" ( (pointer_expression "&uStack_164" & identifier) , identifier , (pointer_expression "&piStack_160" & identifier) , identifier )))) ;) (expression_statement "*piVar33 = iVar44;" (assignment_expression "*piVar33 = iVar44" (pointer_expression "*piVar33" * identifier) = identifier) ;) }) (else_clause "else {\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }" else (compound_statement "{\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }" { (expression_statement "uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));" (assignment_expression "uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28))" identifier = (call_expression "FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28))" identifier (argument_list "(&piStack_160,*(undefined4 *)(iVar28 + 0x28))" ( (pointer_expression "&piStack_160" & identifier) , (pointer_expression "*(undefined4 *)(iVar28 + 0x28)" * (cast_expression "(undefined4 *)(iVar28 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar28 + 0x28)" ( (binary_expression "iVar28 + 0x28" identifier + number_literal) )))) )))) ;) (expression_statement "uVar14 = uStack_164;" (assignment_expression "uVar14 = uStack_164" identifier = identifier) ;) (if_statement "if (uStack_164 != 0) goto joined_r0x0004e770;" if (parenthesized_expression "(uStack_164 != 0)" ( (binary_expression "uStack_164 != 0" identifier != number_literal) )) (goto_statement "goto joined_r0x0004e770;" goto statement_identifier ;)) (expression_statement "uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);" (assignment_expression "uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec)" identifier = (call_expression "(*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec)" (parenthesized_expression "(*pcVar45)" ( (pointer_expression "*pcVar45" * identifier) )) (argument_list "(&puStack_144,iVar16 + -1,puStack_ec)" ( (pointer_expression "&puStack_144" & identifier) , (binary_expression "iVar16 + -1" identifier + number_literal) , identifier )))) ;) (expression_statement "piVar17 = piStack_e0 + iVar16;" (assignment_expression "piVar17 = piStack_e0 + iVar16" identifier = (binary_expression "piStack_e0 + iVar16" identifier + identifier)) ;) (expression_statement "iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);" (assignment_expression "iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20)" identifier = (call_expression "FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20)" identifier (argument_list "(&uStack_164,puVar36,&piStack_160,uVar20)" ( (pointer_expression "&uStack_164" & identifier) , identifier , (pointer_expression "&piStack_160" & identifier) , identifier )))) ;) (expression_statement "pcVar7 = *(code **)(puVar46 + 0x28520);" (assignment_expression "pcVar7 = *(code **)(puVar46 + 0x28520)" identifier = (pointer_expression "*(code **)(puVar46 + 0x28520)" * (cast_expression "(code **)(puVar46 + 0x28520)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar46 + 0x28520)" ( (binary_expression "puVar46 + 0x28520" identifier + number_literal) ))))) ;) (expression_statement "*piVar17 = iVar44;" (assignment_expression "*piVar17 = iVar44" (pointer_expression "*piVar17" * identifier) = identifier) ;) (expression_statement "(*pcVar7)(iStack_158);" (call_expression "(*pcVar7)(iStack_158)" (parenthesized_expression "(*pcVar7)" ( (pointer_expression "*pcVar7" * identifier) )) (argument_list "(iStack_158)" ( identifier ))) ;) }))) (if_statement "if ((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))\n                      goto joined_r0x0004e770;" if (parenthesized_expression "((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))" ( (binary_expression "(piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0)" (parenthesized_expression "(piStack_e0[iVar16] == 0)" ( (binary_expression "piStack_e0[iVar16] == 0" (subscript_expression "piStack_e0[iVar16]" identifier [ identifier ]) == number_literal) )) && (parenthesized_expression "(uVar14 = uStack_164, uStack_164 != 0)" ( (comma_expression "uVar14 = uStack_164, uStack_164 != 0" (assignment_expression "uVar14 = uStack_164" identifier = identifier) , (binary_expression "uStack_164 != 0" identifier != number_literal)) ))) )) (goto_statement "goto joined_r0x0004e770;" goto statement_identifier ;)) })) (expression_statement "iVar16 = *(int *)(uVar41 + 8);" (assignment_expression "iVar16 = *(int *)(uVar41 + 8)" identifier = (pointer_expression "*(int *)(uVar41 + 8)" * (cast_expression "(int *)(uVar41 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar41 + 8)" ( (binary_expression "uVar41 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar14 = uStack_11c;" (assignment_expression "uVar14 = uStack_11c" identifier = identifier) ;) })) (labeled_statement "LAB_0004e670:\n                  param_4 = (uint *)((int)param_4 + 1);" statement_identifier : (expression_statement "param_4 = (uint *)((int)param_4 + 1);" (assignment_expression "param_4 = (uint *)((int)param_4 + 1)" identifier = (cast_expression "(uint *)((int)param_4 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_4 + 1)" ( (binary_expression "(int)param_4 + 1" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;)) }) while (parenthesized_expression "((int)param_4 < iVar16)" ( (binary_expression "(int)param_4 < iVar16" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) )) ;) })) (expression_statement "uStack_168 = 0;" (assignment_expression "uStack_168 = 0" identifier = number_literal) ;) })) (expression_statement "uStack_11c = uVar14 + 1;" (assignment_expression "uStack_11c = uVar14 + 1" identifier = (binary_expression "uVar14 + 1" identifier + number_literal)) ;) (expression_statement "uVar14 = (uint)*(byte *)((int)puStack_140 + uVar14);" (assignment_expression "uVar14 = (uint)*(byte *)((int)puStack_140 + uVar14)" identifier = (binary_expression "(uint)*(byte *)((int)puStack_140 + uVar14)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)((int)puStack_140 + uVar14)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puStack_140 + uVar14)" ( (binary_expression "(int)puStack_140 + uVar14" (cast_expression "(int)puStack_140" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))))) ;) (do_statement "do {\n              if (*(int *)(uVar41 + 0x2c) != 0) {\n                uVar37 = *(uint *)(*(int *)(uVar41 + 0x2c) + uVar14 * 4);\nLAB_0004ddf0:\n                if (piStack_e0 != (int *)0x0) goto LAB_0004ddfc;\n                goto LAB_0004de1c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x30);\n              if (iVar16 != 0) {\n                uVar37 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n                if ((uVar37 & 1) == 0) {\n                  uVar37 = *(uint *)(iVar16 + uVar14 * 4);\n                }\n                else {\n                  uVar37 = *(uint *)(iVar16 + (uVar14 + 0x100) * 4);\n                }\n                goto LAB_0004ddf0;\n              }\n              iVar16 = (*(code *)(iVar26 + -0x7510))(puStack_f0,uVar41);\n            } while (iVar16 != 0);" do (compound_statement "{\n              if (*(int *)(uVar41 + 0x2c) != 0) {\n                uVar37 = *(uint *)(*(int *)(uVar41 + 0x2c) + uVar14 * 4);\nLAB_0004ddf0:\n                if (piStack_e0 != (int *)0x0) goto LAB_0004ddfc;\n                goto LAB_0004de1c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x30);\n              if (iVar16 != 0) {\n                uVar37 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n                if ((uVar37 & 1) == 0) {\n                  uVar37 = *(uint *)(iVar16 + uVar14 * 4);\n                }\n                else {\n                  uVar37 = *(uint *)(iVar16 + (uVar14 + 0x100) * 4);\n                }\n                goto LAB_0004ddf0;\n              }\n              iVar16 = (*(code *)(iVar26 + -0x7510))(puStack_f0,uVar41);\n            }" { (if_statement "if (*(int *)(uVar41 + 0x2c) != 0) {\n                uVar37 = *(uint *)(*(int *)(uVar41 + 0x2c) + uVar14 * 4);\nLAB_0004ddf0:\n                if (piStack_e0 != (int *)0x0) goto LAB_0004ddfc;\n                goto LAB_0004de1c;\n              }" if (parenthesized_expression "(*(int *)(uVar41 + 0x2c) != 0)" ( (binary_expression "*(int *)(uVar41 + 0x2c) != 0" (pointer_expression "*(int *)(uVar41 + 0x2c)" * (cast_expression "(int *)(uVar41 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar41 + 0x2c)" ( (binary_expression "uVar41 + 0x2c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                uVar37 = *(uint *)(*(int *)(uVar41 + 0x2c) + uVar14 * 4);\nLAB_0004ddf0:\n                if (piStack_e0 != (int *)0x0) goto LAB_0004ddfc;\n                goto LAB_0004de1c;\n              }" { (expression_statement "uVar37 = *(uint *)(*(int *)(uVar41 + 0x2c) + uVar14 * 4);" (assignment_expression "uVar37 = *(uint *)(*(int *)(uVar41 + 0x2c) + uVar14 * 4)" identifier = (pointer_expression "*(uint *)(*(int *)(uVar41 + 0x2c) + uVar14 * 4)" * (cast_expression "(uint *)(*(int *)(uVar41 + 0x2c) + uVar14 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(uVar41 + 0x2c) + uVar14 * 4)" ( (binary_expression "*(int *)(uVar41 + 0x2c) + uVar14 * 4" (pointer_expression "*(int *)(uVar41 + 0x2c)" * (cast_expression "(int *)(uVar41 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar41 + 0x2c)" ( (binary_expression "uVar41 + 0x2c" identifier + number_literal) )))) + (binary_expression "uVar14 * 4" identifier * number_literal)) ))))) ;) (labeled_statement "LAB_0004ddf0:\n                if (piStack_e0 != (int *)0x0) goto LAB_0004ddfc;" statement_identifier : (if_statement "if (piStack_e0 != (int *)0x0) goto LAB_0004ddfc;" if (parenthesized_expression "(piStack_e0 != (int *)0x0)" ( (binary_expression "piStack_e0 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004ddfc;" goto statement_identifier ;))) (goto_statement "goto LAB_0004de1c;" goto statement_identifier ;) })) (expression_statement "iVar16 = *(int *)(uVar41 + 0x30);" (assignment_expression "iVar16 = *(int *)(uVar41 + 0x30)" identifier = (pointer_expression "*(int *)(uVar41 + 0x30)" * (cast_expression "(int *)(uVar41 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar41 + 0x30)" ( (binary_expression "uVar41 + 0x30" identifier + number_literal) ))))) ;) (if_statement "if (iVar16 != 0) {\n                uVar37 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n                if ((uVar37 & 1) == 0) {\n                  uVar37 = *(uint *)(iVar16 + uVar14 * 4);\n                }\n                else {\n                  uVar37 = *(uint *)(iVar16 + (uVar14 + 0x100) * 4);\n                }\n                goto LAB_0004ddf0;\n              }" if (parenthesized_expression "(iVar16 != 0)" ( (binary_expression "iVar16 != 0" identifier != number_literal) )) (compound_statement "{\n                uVar37 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n                if ((uVar37 & 1) == 0) {\n                  uVar37 = *(uint *)(iVar16 + uVar14 * 4);\n                }\n                else {\n                  uVar37 = *(uint *)(iVar16 + (uVar14 + 0x100) * 4);\n                }\n                goto LAB_0004ddf0;\n              }" { (expression_statement "uVar37 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);" (assignment_expression "uVar37 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec)" identifier = (call_expression "FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec)" identifier (argument_list "(&puStack_144,uStack_11c - 1,puStack_ec)" ( (pointer_expression "&puStack_144" & identifier) , (binary_expression "uStack_11c - 1" identifier - number_literal) , identifier )))) ;) (if_statement "if ((uVar37 & 1) == 0) {\n                  uVar37 = *(uint *)(iVar16 + uVar14 * 4);\n                }\n                else {\n                  uVar37 = *(uint *)(iVar16 + (uVar14 + 0x100) * 4);\n                }" if (parenthesized_expression "((uVar37 & 1) == 0)" ( (binary_expression "(uVar37 & 1) == 0" (parenthesized_expression "(uVar37 & 1)" ( (binary_expression "uVar37 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                  uVar37 = *(uint *)(iVar16 + uVar14 * 4);\n                }" { (expression_statement "uVar37 = *(uint *)(iVar16 + uVar14 * 4);" (assignment_expression "uVar37 = *(uint *)(iVar16 + uVar14 * 4)" identifier = (pointer_expression "*(uint *)(iVar16 + uVar14 * 4)" * (cast_expression "(uint *)(iVar16 + uVar14 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + uVar14 * 4)" ( (binary_expression "iVar16 + uVar14 * 4" identifier + (binary_expression "uVar14 * 4" identifier * number_literal)) ))))) ;) }) (else_clause "else {\n                  uVar37 = *(uint *)(iVar16 + (uVar14 + 0x100) * 4);\n                }" else (compound_statement "{\n                  uVar37 = *(uint *)(iVar16 + (uVar14 + 0x100) * 4);\n                }" { (expression_statement "uVar37 = *(uint *)(iVar16 + (uVar14 + 0x100) * 4);" (assignment_expression "uVar37 = *(uint *)(iVar16 + (uVar14 + 0x100) * 4)" identifier = (pointer_expression "*(uint *)(iVar16 + (uVar14 + 0x100) * 4)" * (cast_expression "(uint *)(iVar16 + (uVar14 + 0x100) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + (uVar14 + 0x100) * 4)" ( (binary_expression "iVar16 + (uVar14 + 0x100) * 4" identifier + (binary_expression "(uVar14 + 0x100) * 4" (parenthesized_expression "(uVar14 + 0x100)" ( (binary_expression "uVar14 + 0x100" identifier + number_literal) )) * number_literal)) ))))) ;) }))) (goto_statement "goto LAB_0004ddf0;" goto statement_identifier ;) })) (expression_statement "iVar16 = (*(code *)(iVar26 + -0x7510))(puStack_f0,uVar41);" (assignment_expression "iVar16 = (*(code *)(iVar26 + -0x7510))(puStack_f0,uVar41)" identifier = (call_expression "(*(code *)(iVar26 + -0x7510))(puStack_f0,uVar41)" (parenthesized_expression "(*(code *)(iVar26 + -0x7510))" ( (pointer_expression "*(code *)(iVar26 + -0x7510)" * (cast_expression "(code *)(iVar26 + -0x7510)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + -0x7510)" ( (binary_expression "iVar26 + -0x7510" identifier + number_literal) )))) )) (argument_list "(puStack_f0,uVar41)" ( identifier , identifier )))) ;) }) while (parenthesized_expression "(iVar16 != 0)" ( (binary_expression "iVar16 != 0" identifier != number_literal) )) ;) (expression_statement "uStack_168 = 0xc;" (assignment_expression "uStack_168 = 0xc" identifier = number_literal) ;) (expression_statement "uVar14 = uStack_168;" (assignment_expression "uVar14 = uStack_168" identifier = identifier) ;) (labeled_statement "joined_r0x0004e770:\n            uStack_168 = uVar14;" statement_identifier : (expression_statement "uStack_168 = uVar14;" (assignment_expression "uStack_168 = uVar14" identifier = identifier) ;)) (if_statement "if (piStack_e0 == (int *)0x0) {\n              piVar17 = (int *)0x0;\n              goto LAB_0004dbb4;\n            }" if (parenthesized_expression "(piStack_e0 == (int *)0x0)" ( (binary_expression "piStack_e0 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              piVar17 = (int *)0x0;\n              goto LAB_0004dbb4;\n            }" { (expression_statement "piVar17 = (int *)0x0;" (assignment_expression "piVar17 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0004dbb4;" goto statement_identifier ;) })) (expression_statement "uVar37 = 0;" (assignment_expression "uVar37 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0004ddfc:\n            uVar37 = FUN_0004d0a8(&uStack_168,&puStack_144,uVar37);" statement_identifier : (expression_statement "uVar37 = FUN_0004d0a8(&uStack_168,&puStack_144,uVar37);" (assignment_expression "uVar37 = FUN_0004d0a8(&uStack_168,&puStack_144,uVar37)" identifier = (call_expression "FUN_0004d0a8(&uStack_168,&puStack_144,uVar37)" identifier (argument_list "(&uStack_168,&puStack_144,uVar37)" ( (pointer_expression "&uStack_168" & identifier) , (pointer_expression "&puStack_144" & identifier) , identifier )))) ;)) (labeled_statement "LAB_0004de1c:\n            uVar14 = uStack_11c;" statement_identifier : (expression_statement "uVar14 = uStack_11c;" (assignment_expression "uVar14 = uStack_11c" identifier = identifier) ;)) (if_statement "if (uVar37 == 0) {\n              piVar17 = piStack_e0;\n              if (uStack_168 != 0) goto LAB_0004dbb4;\n              if ((piStack_e0 == (int *)0x0) || ((bVar5 && (!bVar22)))) break;\n              param_4 = &uStack_168;\n              do {\n                bVar2 = false;\n                piVar17 = piStack_e0 + uStack_11c;\n                uVar14 = uStack_11c;\n                do {\n                  uVar37 = uVar14 + 1;\n                  piVar17 = piVar17 + 1;\n                  if (iStack_dc < (int)uVar37) {\n                    if (bVar2) {\n                      uStack_11c = uVar14;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar2 = true;\n                  uVar14 = uVar37;\n                } while (*piVar17 == 0);\n                uStack_11c = uVar37;\n                uVar37 = FUN_0004d0a8(param_4,&puStack_144,0);\n                uVar14 = uStack_11c;\n                if (uStack_168 != 0) {\n                  if (uVar37 == 0) goto LAB_0004e0cc;\n                  break;\n                }\n              } while (uVar37 == 0);\n            }" if (parenthesized_expression "(uVar37 == 0)" ( (binary_expression "uVar37 == 0" identifier == number_literal) )) (compound_statement "{\n              piVar17 = piStack_e0;\n              if (uStack_168 != 0) goto LAB_0004dbb4;\n              if ((piStack_e0 == (int *)0x0) || ((bVar5 && (!bVar22)))) break;\n              param_4 = &uStack_168;\n              do {\n                bVar2 = false;\n                piVar17 = piStack_e0 + uStack_11c;\n                uVar14 = uStack_11c;\n                do {\n                  uVar37 = uVar14 + 1;\n                  piVar17 = piVar17 + 1;\n                  if (iStack_dc < (int)uVar37) {\n                    if (bVar2) {\n                      uStack_11c = uVar14;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar2 = true;\n                  uVar14 = uVar37;\n                } while (*piVar17 == 0);\n                uStack_11c = uVar37;\n                uVar37 = FUN_0004d0a8(param_4,&puStack_144,0);\n                uVar14 = uStack_11c;\n                if (uStack_168 != 0) {\n                  if (uVar37 == 0) goto LAB_0004e0cc;\n                  break;\n                }\n              } while (uVar37 == 0);\n            }" { (expression_statement "piVar17 = piStack_e0;" (assignment_expression "piVar17 = piStack_e0" identifier = identifier) ;) (if_statement "if (uStack_168 != 0) goto LAB_0004dbb4;" if (parenthesized_expression "(uStack_168 != 0)" ( (binary_expression "uStack_168 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0004dbb4;" goto statement_identifier ;)) (if_statement "if ((piStack_e0 == (int *)0x0) || ((bVar5 && (!bVar22)))) break;" if (parenthesized_expression "((piStack_e0 == (int *)0x0) || ((bVar5 && (!bVar22))))" ( (binary_expression "(piStack_e0 == (int *)0x0) || ((bVar5 && (!bVar22)))" (parenthesized_expression "(piStack_e0 == (int *)0x0)" ( (binary_expression "piStack_e0 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "((bVar5 && (!bVar22)))" ( (parenthesized_expression "(bVar5 && (!bVar22))" ( (binary_expression "bVar5 && (!bVar22)" identifier && (parenthesized_expression "(!bVar22)" ( (unary_expression "!bVar22" ! identifier) ))) )) ))) )) (break_statement "break;" break ;)) (expression_statement "param_4 = &uStack_168;" (assignment_expression "param_4 = &uStack_168" identifier = (pointer_expression "&uStack_168" & identifier)) ;) (do_statement "do {\n                bVar2 = false;\n                piVar17 = piStack_e0 + uStack_11c;\n                uVar14 = uStack_11c;\n                do {\n                  uVar37 = uVar14 + 1;\n                  piVar17 = piVar17 + 1;\n                  if (iStack_dc < (int)uVar37) {\n                    if (bVar2) {\n                      uStack_11c = uVar14;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar2 = true;\n                  uVar14 = uVar37;\n                } while (*piVar17 == 0);\n                uStack_11c = uVar37;\n                uVar37 = FUN_0004d0a8(param_4,&puStack_144,0);\n                uVar14 = uStack_11c;\n                if (uStack_168 != 0) {\n                  if (uVar37 == 0) goto LAB_0004e0cc;\n                  break;\n                }\n              } while (uVar37 == 0);" do (compound_statement "{\n                bVar2 = false;\n                piVar17 = piStack_e0 + uStack_11c;\n                uVar14 = uStack_11c;\n                do {\n                  uVar37 = uVar14 + 1;\n                  piVar17 = piVar17 + 1;\n                  if (iStack_dc < (int)uVar37) {\n                    if (bVar2) {\n                      uStack_11c = uVar14;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar2 = true;\n                  uVar14 = uVar37;\n                } while (*piVar17 == 0);\n                uStack_11c = uVar37;\n                uVar37 = FUN_0004d0a8(param_4,&puStack_144,0);\n                uVar14 = uStack_11c;\n                if (uStack_168 != 0) {\n                  if (uVar37 == 0) goto LAB_0004e0cc;\n                  break;\n                }\n              }" { (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (expression_statement "piVar17 = piStack_e0 + uStack_11c;" (assignment_expression "piVar17 = piStack_e0 + uStack_11c" identifier = (binary_expression "piStack_e0 + uStack_11c" identifier + identifier)) ;) (expression_statement "uVar14 = uStack_11c;" (assignment_expression "uVar14 = uStack_11c" identifier = identifier) ;) (do_statement "do {\n                  uVar37 = uVar14 + 1;\n                  piVar17 = piVar17 + 1;\n                  if (iStack_dc < (int)uVar37) {\n                    if (bVar2) {\n                      uStack_11c = uVar14;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar2 = true;\n                  uVar14 = uVar37;\n                } while (*piVar17 == 0);" do (compound_statement "{\n                  uVar37 = uVar14 + 1;\n                  piVar17 = piVar17 + 1;\n                  if (iStack_dc < (int)uVar37) {\n                    if (bVar2) {\n                      uStack_11c = uVar14;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar2 = true;\n                  uVar14 = uVar37;\n                }" { (expression_statement "uVar37 = uVar14 + 1;" (assignment_expression "uVar37 = uVar14 + 1" identifier = (binary_expression "uVar14 + 1" identifier + number_literal)) ;) (expression_statement "piVar17 = piVar17 + 1;" (assignment_expression "piVar17 = piVar17 + 1" identifier = (binary_expression "piVar17 + 1" identifier + number_literal)) ;) (if_statement "if (iStack_dc < (int)uVar37) {\n                    if (bVar2) {\n                      uStack_11c = uVar14;\n                    }\n                    goto LAB_0004e0cc;\n                  }" if (parenthesized_expression "(iStack_dc < (int)uVar37)" ( (binary_expression "iStack_dc < (int)uVar37" identifier < (cast_expression "(int)uVar37" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                    if (bVar2) {\n                      uStack_11c = uVar14;\n                    }\n                    goto LAB_0004e0cc;\n                  }" { (if_statement "if (bVar2) {\n                      uStack_11c = uVar14;\n                    }" if (parenthesized_expression "(bVar2)" ( identifier )) (compound_statement "{\n                      uStack_11c = uVar14;\n                    }" { (expression_statement "uStack_11c = uVar14;" (assignment_expression "uStack_11c = uVar14" identifier = identifier) ;) })) (goto_statement "goto LAB_0004e0cc;" goto statement_identifier ;) })) (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) (expression_statement "uVar14 = uVar37;" (assignment_expression "uVar14 = uVar37" identifier = identifier) ;) }) while (parenthesized_expression "(*piVar17 == 0)" ( (binary_expression "*piVar17 == 0" (pointer_expression "*piVar17" * identifier) == number_literal) )) ;) (expression_statement "uStack_11c = uVar37;" (assignment_expression "uStack_11c = uVar37" identifier = identifier) ;) (expression_statement "uVar37 = FUN_0004d0a8(param_4,&puStack_144,0);" (assignment_expression "uVar37 = FUN_0004d0a8(param_4,&puStack_144,0)" identifier = (call_expression "FUN_0004d0a8(param_4,&puStack_144,0)" identifier (argument_list "(param_4,&puStack_144,0)" ( identifier , (pointer_expression "&puStack_144" & identifier) , number_literal )))) ;) (expression_statement "uVar14 = uStack_11c;" (assignment_expression "uVar14 = uStack_11c" identifier = identifier) ;) (if_statement "if (uStack_168 != 0) {\n                  if (uVar37 == 0) goto LAB_0004e0cc;\n                  break;\n                }" if (parenthesized_expression "(uStack_168 != 0)" ( (binary_expression "uStack_168 != 0" identifier != number_literal) )) (compound_statement "{\n                  if (uVar37 == 0) goto LAB_0004e0cc;\n                  break;\n                }" { (if_statement "if (uVar37 == 0) goto LAB_0004e0cc;" if (parenthesized_expression "(uVar37 == 0)" ( (binary_expression "uVar37 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0004e0cc;" goto statement_identifier ;)) (break_statement "break;" break ;) })) }) while (parenthesized_expression "(uVar37 == 0)" ( (binary_expression "uVar37 == 0" identifier == number_literal) )) ;) })) (expression_statement "uVar42 = uStack_1d0;" (assignment_expression "uVar42 = uStack_1d0" identifier = identifier) ;) (if_statement "if ((bVar4) && (uVar42 = uVar40, uVar41 != uVar37)) {\n              bVar4 = false;\n              uVar42 = uStack_1d0;\n            }" if (parenthesized_expression "((bVar4) && (uVar42 = uVar40, uVar41 != uVar37))" ( (binary_expression "(bVar4) && (uVar42 = uVar40, uVar41 != uVar37)" (parenthesized_expression "(bVar4)" ( identifier )) && (parenthesized_expression "(uVar42 = uVar40, uVar41 != uVar37)" ( (comma_expression "uVar42 = uVar40, uVar41 != uVar37" (assignment_expression "uVar42 = uVar40" identifier = identifier) , (binary_expression "uVar41 != uVar37" identifier != identifier)) ))) )) (compound_statement "{\n              bVar4 = false;\n              uVar42 = uStack_1d0;\n            }" { (expression_statement "bVar4 = false;" (assignment_expression "bVar4 = false" identifier = false) ;) (expression_statement "uVar42 = uStack_1d0;" (assignment_expression "uVar42 = uStack_1d0" identifier = identifier) ;) })) (expression_statement "uStack_1d0 = uVar42;" (assignment_expression "uStack_1d0 = uVar42" identifier = identifier) ;) (expression_statement "uVar41 = uVar37;" (assignment_expression "uVar41 = uVar37" identifier = identifier) ;) (expression_statement "uStack_11c = uVar14;" (assignment_expression "uStack_11c = uVar14" identifier = identifier) ;) (if_statement "if (((*(byte *)(uVar37 + 0x34) & 8) != 0) &&\n               (((*(byte *)(uVar37 + 0x34) & 1) == 0 ||\n                (iVar16 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar37 + 8),uVar37 + 0xc,uVar14)\n                , iVar16 != 0)))) {\n              if (!bVar22) goto LAB_0004e0e4;\n              ppuStack_1dc = (uint **)0x0;\n              uVar6 = uVar14;\n              bVar5 = bVar22;\n            }" if (parenthesized_expression "(((*(byte *)(uVar37 + 0x34) & 8) != 0) &&\n               (((*(byte *)(uVar37 + 0x34) & 1) == 0 ||\n                (iVar16 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar37 + 8),uVar37 + 0xc,uVar14)\n                , iVar16 != 0))))" ( (binary_expression "((*(byte *)(uVar37 + 0x34) & 8) != 0) &&\n               (((*(byte *)(uVar37 + 0x34) & 1) == 0 ||\n                (iVar16 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar37 + 8),uVar37 + 0xc,uVar14)\n                , iVar16 != 0)))" (parenthesized_expression "((*(byte *)(uVar37 + 0x34) & 8) != 0)" ( (binary_expression "(*(byte *)(uVar37 + 0x34) & 8) != 0" (parenthesized_expression "(*(byte *)(uVar37 + 0x34) & 8)" ( (binary_expression "*(byte *)(uVar37 + 0x34) & 8" (pointer_expression "*(byte *)(uVar37 + 0x34)" * (cast_expression "(byte *)(uVar37 + 0x34)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar37 + 0x34)" ( (binary_expression "uVar37 + 0x34" identifier + number_literal) )))) & number_literal) )) != number_literal) )) && (parenthesized_expression "(((*(byte *)(uVar37 + 0x34) & 1) == 0 ||\n                (iVar16 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar37 + 8),uVar37 + 0xc,uVar14)\n                , iVar16 != 0)))" ( (parenthesized_expression "((*(byte *)(uVar37 + 0x34) & 1) == 0 ||\n                (iVar16 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar37 + 8),uVar37 + 0xc,uVar14)\n                , iVar16 != 0))" ( (binary_expression "(*(byte *)(uVar37 + 0x34) & 1) == 0 ||\n                (iVar16 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar37 + 8),uVar37 + 0xc,uVar14)\n                , iVar16 != 0)" (binary_expression "(*(byte *)(uVar37 + 0x34) & 1) == 0" (parenthesized_expression "(*(byte *)(uVar37 + 0x34) & 1)" ( (binary_expression "*(byte *)(uVar37 + 0x34) & 1" (pointer_expression "*(byte *)(uVar37 + 0x34)" * (cast_expression "(byte *)(uVar37 + 0x34)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar37 + 0x34)" ( (binary_expression "uVar37 + 0x34" identifier + number_literal) )))) & number_literal) )) == number_literal) || (parenthesized_expression "(iVar16 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar37 + 8),uVar37 + 0xc,uVar14)\n                , iVar16 != 0)" ( (comma_expression "iVar16 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar37 + 8),uVar37 + 0xc,uVar14)\n                , iVar16 != 0" (assignment_expression "iVar16 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar37 + 8),uVar37 + 0xc,uVar14)" identifier = (call_expression "FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar37 + 8),uVar37 + 0xc,uVar14)" identifier (argument_list "(&puStack_144,*(undefined4 *)(uVar37 + 8),uVar37 + 0xc,uVar14)" ( (pointer_expression "&puStack_144" & identifier) , (pointer_expression "*(undefined4 *)(uVar37 + 8)" * (cast_expression "(undefined4 *)(uVar37 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar37 + 8)" ( (binary_expression "uVar37 + 8" identifier + number_literal) )))) , (binary_expression "uVar37 + 0xc" identifier + number_literal) , identifier )))) , (binary_expression "iVar16 != 0" identifier != number_literal)) ))) )) ))) )) (compound_statement "{\n              if (!bVar22) goto LAB_0004e0e4;\n              ppuStack_1dc = (uint **)0x0;\n              uVar6 = uVar14;\n              bVar5 = bVar22;\n            }" { (if_statement "if (!bVar22) goto LAB_0004e0e4;" if (parenthesized_expression "(!bVar22)" ( (unary_expression "!bVar22" ! identifier) )) (goto_statement "goto LAB_0004e0e4;" goto statement_identifier ;)) (expression_statement "ppuStack_1dc = (uint **)0x0;" (assignment_expression "ppuStack_1dc = (uint **)0x0" identifier = (cast_expression "(uint **)0x0" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "uVar6 = uVar14;" (assignment_expression "uVar6 = uVar14" identifier = identifier) ;) (expression_statement "bVar5 = bVar22;" (assignment_expression "bVar5 = bVar22" identifier = identifier) ;) })) })) (labeled_statement "LAB_0004e0cc:\n          uVar14 = uVar6;" statement_identifier : (expression_statement "uVar14 = uVar6;" (assignment_expression "uVar14 = uVar6" identifier = identifier) ;)) (if_statement "if (ppuStack_1dc != (uint **)0x0) {\n            *ppuStack_1dc = (uint *)((int)*ppuStack_1dc + uStack_1d0);\n          }" if (parenthesized_expression "(ppuStack_1dc != (uint **)0x0)" ( (binary_expression "ppuStack_1dc != (uint **)0x0" identifier != (cast_expression "(uint **)0x0" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n            *ppuStack_1dc = (uint *)((int)*ppuStack_1dc + uStack_1d0);\n          }" { (expression_statement "*ppuStack_1dc = (uint *)((int)*ppuStack_1dc + uStack_1d0);" (assignment_expression "*ppuStack_1dc = (uint *)((int)*ppuStack_1dc + uStack_1d0)" (pointer_expression "*ppuStack_1dc" * identifier) = (cast_expression "(uint *)((int)*ppuStack_1dc + uStack_1d0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)*ppuStack_1dc + uStack_1d0)" ( (binary_expression "(int)*ppuStack_1dc + uStack_1d0" (cast_expression "(int)*ppuStack_1dc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*ppuStack_1dc" * identifier)) + identifier) )))) ;) })) }) (else_clause "else {\n          uVar14 = FUN_00047924(&puStack_144,uVar41 + 8,uVar41 + 0xc,0);\n          uStack_168 = uVar14;\n          if (uVar14 == 0) {\n            if ((*(byte *)(uVar41 + 0x34) & 2) == 0) {\n              bVar4 = false;\n            }\n            else {\n              uVar14 = FUN_0004c6a8(&puStack_144,uVar41 + 8,uVar41 + 0xc);\n              uStack_168 = uVar14;\n              if (uVar14 != 0) goto LAB_0004e0e4;\n              bVar4 = false;\n            }\n            goto LAB_0004dd48;\n          }\n        }" else (compound_statement "{\n          uVar14 = FUN_00047924(&puStack_144,uVar41 + 8,uVar41 + 0xc,0);\n          uStack_168 = uVar14;\n          if (uVar14 == 0) {\n            if ((*(byte *)(uVar41 + 0x34) & 2) == 0) {\n              bVar4 = false;\n            }\n            else {\n              uVar14 = FUN_0004c6a8(&puStack_144,uVar41 + 8,uVar41 + 0xc);\n              uStack_168 = uVar14;\n              if (uVar14 != 0) goto LAB_0004e0e4;\n              bVar4 = false;\n            }\n            goto LAB_0004dd48;\n          }\n        }" { (expression_statement "uVar14 = FUN_00047924(&puStack_144,uVar41 + 8,uVar41 + 0xc,0);" (assignment_expression "uVar14 = FUN_00047924(&puStack_144,uVar41 + 8,uVar41 + 0xc,0)" identifier = (call_expression "FUN_00047924(&puStack_144,uVar41 + 8,uVar41 + 0xc,0)" identifier (argument_list "(&puStack_144,uVar41 + 8,uVar41 + 0xc,0)" ( (pointer_expression "&puStack_144" & identifier) , (binary_expression "uVar41 + 8" identifier + number_literal) , (binary_expression "uVar41 + 0xc" identifier + number_literal) , number_literal )))) ;) (expression_statement "uStack_168 = uVar14;" (assignment_expression "uStack_168 = uVar14" identifier = identifier) ;) (if_statement "if (uVar14 == 0) {\n            if ((*(byte *)(uVar41 + 0x34) & 2) == 0) {\n              bVar4 = false;\n            }\n            else {\n              uVar14 = FUN_0004c6a8(&puStack_144,uVar41 + 8,uVar41 + 0xc);\n              uStack_168 = uVar14;\n              if (uVar14 != 0) goto LAB_0004e0e4;\n              bVar4 = false;\n            }\n            goto LAB_0004dd48;\n          }" if (parenthesized_expression "(uVar14 == 0)" ( (binary_expression "uVar14 == 0" identifier == number_literal) )) (compound_statement "{\n            if ((*(byte *)(uVar41 + 0x34) & 2) == 0) {\n              bVar4 = false;\n            }\n            else {\n              uVar14 = FUN_0004c6a8(&puStack_144,uVar41 + 8,uVar41 + 0xc);\n              uStack_168 = uVar14;\n              if (uVar14 != 0) goto LAB_0004e0e4;\n              bVar4 = false;\n            }\n            goto LAB_0004dd48;\n          }" { (if_statement "if ((*(byte *)(uVar41 + 0x34) & 2) == 0) {\n              bVar4 = false;\n            }\n            else {\n              uVar14 = FUN_0004c6a8(&puStack_144,uVar41 + 8,uVar41 + 0xc);\n              uStack_168 = uVar14;\n              if (uVar14 != 0) goto LAB_0004e0e4;\n              bVar4 = false;\n            }" if (parenthesized_expression "((*(byte *)(uVar41 + 0x34) & 2) == 0)" ( (binary_expression "(*(byte *)(uVar41 + 0x34) & 2) == 0" (parenthesized_expression "(*(byte *)(uVar41 + 0x34) & 2)" ( (binary_expression "*(byte *)(uVar41 + 0x34) & 2" (pointer_expression "*(byte *)(uVar41 + 0x34)" * (cast_expression "(byte *)(uVar41 + 0x34)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar41 + 0x34)" ( (binary_expression "uVar41 + 0x34" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n              bVar4 = false;\n            }" { (expression_statement "bVar4 = false;" (assignment_expression "bVar4 = false" identifier = false) ;) }) (else_clause "else {\n              uVar14 = FUN_0004c6a8(&puStack_144,uVar41 + 8,uVar41 + 0xc);\n              uStack_168 = uVar14;\n              if (uVar14 != 0) goto LAB_0004e0e4;\n              bVar4 = false;\n            }" else (compound_statement "{\n              uVar14 = FUN_0004c6a8(&puStack_144,uVar41 + 8,uVar41 + 0xc);\n              uStack_168 = uVar14;\n              if (uVar14 != 0) goto LAB_0004e0e4;\n              bVar4 = false;\n            }" { (expression_statement "uVar14 = FUN_0004c6a8(&puStack_144,uVar41 + 8,uVar41 + 0xc);" (assignment_expression "uVar14 = FUN_0004c6a8(&puStack_144,uVar41 + 8,uVar41 + 0xc)" identifier = (call_expression "FUN_0004c6a8(&puStack_144,uVar41 + 8,uVar41 + 0xc)" identifier (argument_list "(&puStack_144,uVar41 + 8,uVar41 + 0xc)" ( (pointer_expression "&puStack_144" & identifier) , (binary_expression "uVar41 + 8" identifier + number_literal) , (binary_expression "uVar41 + 0xc" identifier + number_literal) )))) ;) (expression_statement "uStack_168 = uVar14;" (assignment_expression "uStack_168 = uVar14" identifier = identifier) ;) (if_statement "if (uVar14 != 0) goto LAB_0004e0e4;" if (parenthesized_expression "(uVar14 != 0)" ( (binary_expression "uVar14 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0004e0e4;" goto statement_identifier ;)) (expression_statement "bVar4 = false;" (assignment_expression "bVar4 = false" identifier = false) ;) }))) (goto_statement "goto LAB_0004dd48;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_0004e0e4:\n        piVar17 = piStack_e0;" statement_identifier : (expression_statement "piVar17 = piStack_e0;" (assignment_expression "piVar17 = piStack_e0" identifier = identifier) ;)) (if_statement "if (uVar14 != 0xffffffff) {\n          if (uVar14 == 0xfffffffe) goto LAB_0004dbf8;\n          uStack_e8 = uVar14;\n          if (((uint)ppuVar24[7] & 0x8000000) == 0) {\n            if (!bVar1) {\n              uVar6 = puVar43[0x13];\n              goto joined_r0x0004e94c;\n            }\n            pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n            iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                     piStack_e0[uVar14] + 0xc,uVar14);\n            if ((*(char *)(puVar43 + 0x16) < '\0') || (puVar43[0x13] != 0)) goto LAB_0004e170;\n          }\n          else {\n            uVar6 = puVar43[0x13];\njoined_r0x0004e94c:\n            if (uVar6 != 0) {\n              pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n              iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                       piStack_e0[uVar14] + 0xc,uVar14);\nLAB_0004e170:\n              iVar30 = iStack_e4;\n              puVar36 = puStack_f0;\n              if (uVar14 < 0x3fffffff) {\n                uStack_1f0 = uVar14 + 1;\n                piVar17 = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                if (piVar17 == (int *)0x0) goto LAB_0004dbf8;\n                if (puVar36[0x13] == 0) {\n                  piStack_15c = (int *)0x0;\n                  uStack_150 = 0;\n                  uStack_14c = 0;\n                  uStack_148 = 0;\n                  piStack_160 = piVar17;\n                  iStack_158 = iVar30;\n                  uStack_154 = uVar14;\n                  uStack_1e4 = FUN_0004d30c(&puStack_144,&piStack_160);\n                  (**(code **)(puVar46 + 0x28520))(uStack_148);\n                  if (uStack_1e4 == 0) {\n                    if (*piVar17 == 0) {\n                      (**(code **)(puVar46 + 0x28520))(piVar17);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar46 + 0x28520))(piStack_e0);\n                    uStack_e8 = uVar14;\n                    iStack_e4 = iVar30;\n                    piStack_e0 = piVar17;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  piStack_1ec = (int *)0x0;\n                }\n                else {\n                  piStack_1ec = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                  if (piStack_1ec == (int *)0x0) {\n                    (**(code **)(puVar46 + 0x28520))(piVar17);\n                    uStack_1e4 = 0xc;\n                    piVar17 = piStack_e0;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar15 = *(int *)(puVar46 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);\n                    uStack_150 = 0;\n                    uStack_14c = 0;\n                    uStack_148 = 0;\n                    piStack_160 = piVar17;\n                    piStack_15c = piStack_1ec;\n                    iStack_158 = iVar30;\n                    uStack_154 = uVar14;\n                    uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);\n                    (**(code **)(puVar46 + 0x28520))(uStack_148);\n                    if (uStack_1e4 != 0) break;\n                    if ((*piVar17 != 0) || (*piStack_1ec != 0)) {\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    piVar33 = piStack_e0 + (uStack_1f0 - 1);\n                    uStack_1f0 = uVar14;\n                    while( true ) {\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }\n                    iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       );\n                  }\n                }\n                (**(code **)(puVar46 + 0x28520))(piVar17);\n                (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                piVar17 = piStack_e0;\n                if (uStack_1e4 == 1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }\n              uStack_1e4 = 0xc;\n              goto LAB_0004dbbc;\n            }\n          }\nLAB_0004e7e0:\n          piVar17 = piStack_e0;\n          uStack_1e4 = uVar11;\n          if (local_78 == (uint *)0x0) goto LAB_0004dbbc;\n          puVar23 = ppuVar24[7];\n          if (bVar1) {\n            piVar17 = piStack_74 + 2;\n            do {\n              piVar17[1] = -1;\n              piVar33 = piVar17 + 2;\n              *piVar17 = -1;\n              piVar17 = piVar33;\n            } while (piStack_74 + (int)local_78 * 2 != piVar33);\n            *piStack_74 = 0;\n            piStack_74[1] = uStack_e8;\n            if (((uint)puVar23 & 0x8000000) == 0) {\n              if (*(char *)(puVar43 + 0x16) < '\0') {\n                bVar22 = 0 < (int)puVar43[0x13];\n              }\n              else {\n                bVar22 = false;\n              }\n              uStack_1e4 = FUN_0004bc00(ppuVar24,&puStack_144,local_78,piStack_74,bVar22);\n              piVar17 = piStack_e0;\n              if (uStack_1e4 != 0) goto LAB_0004dbbc;\n              puVar23 = (uint *)*piStack_74;\n            }\n            else {\nLAB_0004e838:\n              puVar23 = (uint *)0x0;\n            }\n            puVar36 = (uint *)0x0;\n            piVar17 = piStack_74;\n            while( true ) {\n              if (puVar23 != (uint *)0xffffffff) {\n                puVar32 = (uint *)piVar17[1];\n                puVar39 = puVar23;\n                puVar38 = puVar32;\n                if (cStack_f8 != '\0') {\n                  puVar39 = puStack_124;\n                  if (puStack_128 != puVar23) {\n                    puVar39 = *(uint **)(iStack_138 + (int)puVar23 * 4);\n                  }\n                  *piVar17 = (int)puVar39;\n                  puVar38 = puStack_124;\n                  if (puStack_128 != puVar32) {\n                    puVar38 = *(uint **)(iStack_138 + (int)puVar32 * 4);\n                  }\n                }\n                *piVar17 = (int)puStack_16c + (int)puVar39;\n                piVar17[1] = (int)puStack_16c + (int)puVar38;\n              }\n              puVar36 = (uint *)((int)puVar36 + 1);\n              piVar17 = piVar17 + 2;\n              if (puVar36 == local_78) break;\n              puVar23 = (uint *)*piVar17;\n            }\n            if (0 < iStack_180) {\n              piVar17 = piStack_74 + (int)local_78 * 2;\n              do {\n                *piVar17 = -1;\n                piVar33 = piVar17 + 2;\n                piVar17[1] = -1;\n                piVar17 = piVar33;\n              } while (piStack_74 + (iStack_180 + (int)local_78) * 2 != piVar33);\n            }\n            piVar33 = (int *)puVar43[0x21];\n            piVar17 = piStack_e0;\n            uStack_1e4 = uVar11;\n            if (piVar33 != (int *)0x0) {\n              iVar29 = 0;\n              piVar3 = piStack_74;\n              do {\n                pcVar45 = *(code **)(puVar46 + 0x28520);\n                if (iVar29 == (int)local_78 + -1) goto LAB_0004dbc0;\n                if (*piVar33 != iVar29) {\n                  piVar3[2] = piStack_74[(*piVar33 + 1) * 2];\n                  piVar3[3] = piStack_74[(*piVar33 + 1) * 2 + 1];\n                }\n                iVar29 = iVar29 + 1;\n                piVar33 = piVar33 + 1;\n                piVar3 = piVar3 + 2;\n              } while( true );\n            }\n            goto LAB_0004dbbc;\n          }\n          *piStack_74 = 0;\n          piStack_74[1] = uStack_e8;\n          goto LAB_0004e838;\n        }" if (parenthesized_expression "(uVar14 != 0xffffffff)" ( (binary_expression "uVar14 != 0xffffffff" identifier != number_literal) )) (compound_statement "{\n          if (uVar14 == 0xfffffffe) goto LAB_0004dbf8;\n          uStack_e8 = uVar14;\n          if (((uint)ppuVar24[7] & 0x8000000) == 0) {\n            if (!bVar1) {\n              uVar6 = puVar43[0x13];\n              goto joined_r0x0004e94c;\n            }\n            pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n            iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                     piStack_e0[uVar14] + 0xc,uVar14);\n            if ((*(char *)(puVar43 + 0x16) < '\0') || (puVar43[0x13] != 0)) goto LAB_0004e170;\n          }\n          else {\n            uVar6 = puVar43[0x13];\njoined_r0x0004e94c:\n            if (uVar6 != 0) {\n              pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n              iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                       piStack_e0[uVar14] + 0xc,uVar14);\nLAB_0004e170:\n              iVar30 = iStack_e4;\n              puVar36 = puStack_f0;\n              if (uVar14 < 0x3fffffff) {\n                uStack_1f0 = uVar14 + 1;\n                piVar17 = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                if (piVar17 == (int *)0x0) goto LAB_0004dbf8;\n                if (puVar36[0x13] == 0) {\n                  piStack_15c = (int *)0x0;\n                  uStack_150 = 0;\n                  uStack_14c = 0;\n                  uStack_148 = 0;\n                  piStack_160 = piVar17;\n                  iStack_158 = iVar30;\n                  uStack_154 = uVar14;\n                  uStack_1e4 = FUN_0004d30c(&puStack_144,&piStack_160);\n                  (**(code **)(puVar46 + 0x28520))(uStack_148);\n                  if (uStack_1e4 == 0) {\n                    if (*piVar17 == 0) {\n                      (**(code **)(puVar46 + 0x28520))(piVar17);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar46 + 0x28520))(piStack_e0);\n                    uStack_e8 = uVar14;\n                    iStack_e4 = iVar30;\n                    piStack_e0 = piVar17;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  piStack_1ec = (int *)0x0;\n                }\n                else {\n                  piStack_1ec = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                  if (piStack_1ec == (int *)0x0) {\n                    (**(code **)(puVar46 + 0x28520))(piVar17);\n                    uStack_1e4 = 0xc;\n                    piVar17 = piStack_e0;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar15 = *(int *)(puVar46 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);\n                    uStack_150 = 0;\n                    uStack_14c = 0;\n                    uStack_148 = 0;\n                    piStack_160 = piVar17;\n                    piStack_15c = piStack_1ec;\n                    iStack_158 = iVar30;\n                    uStack_154 = uVar14;\n                    uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);\n                    (**(code **)(puVar46 + 0x28520))(uStack_148);\n                    if (uStack_1e4 != 0) break;\n                    if ((*piVar17 != 0) || (*piStack_1ec != 0)) {\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    piVar33 = piStack_e0 + (uStack_1f0 - 1);\n                    uStack_1f0 = uVar14;\n                    while( true ) {\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }\n                    iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       );\n                  }\n                }\n                (**(code **)(puVar46 + 0x28520))(piVar17);\n                (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                piVar17 = piStack_e0;\n                if (uStack_1e4 == 1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }\n              uStack_1e4 = 0xc;\n              goto LAB_0004dbbc;\n            }\n          }\nLAB_0004e7e0:\n          piVar17 = piStack_e0;\n          uStack_1e4 = uVar11;\n          if (local_78 == (uint *)0x0) goto LAB_0004dbbc;\n          puVar23 = ppuVar24[7];\n          if (bVar1) {\n            piVar17 = piStack_74 + 2;\n            do {\n              piVar17[1] = -1;\n              piVar33 = piVar17 + 2;\n              *piVar17 = -1;\n              piVar17 = piVar33;\n            } while (piStack_74 + (int)local_78 * 2 != piVar33);\n            *piStack_74 = 0;\n            piStack_74[1] = uStack_e8;\n            if (((uint)puVar23 & 0x8000000) == 0) {\n              if (*(char *)(puVar43 + 0x16) < '\0') {\n                bVar22 = 0 < (int)puVar43[0x13];\n              }\n              else {\n                bVar22 = false;\n              }\n              uStack_1e4 = FUN_0004bc00(ppuVar24,&puStack_144,local_78,piStack_74,bVar22);\n              piVar17 = piStack_e0;\n              if (uStack_1e4 != 0) goto LAB_0004dbbc;\n              puVar23 = (uint *)*piStack_74;\n            }\n            else {\nLAB_0004e838:\n              puVar23 = (uint *)0x0;\n            }\n            puVar36 = (uint *)0x0;\n            piVar17 = piStack_74;\n            while( true ) {\n              if (puVar23 != (uint *)0xffffffff) {\n                puVar32 = (uint *)piVar17[1];\n                puVar39 = puVar23;\n                puVar38 = puVar32;\n                if (cStack_f8 != '\0') {\n                  puVar39 = puStack_124;\n                  if (puStack_128 != puVar23) {\n                    puVar39 = *(uint **)(iStack_138 + (int)puVar23 * 4);\n                  }\n                  *piVar17 = (int)puVar39;\n                  puVar38 = puStack_124;\n                  if (puStack_128 != puVar32) {\n                    puVar38 = *(uint **)(iStack_138 + (int)puVar32 * 4);\n                  }\n                }\n                *piVar17 = (int)puStack_16c + (int)puVar39;\n                piVar17[1] = (int)puStack_16c + (int)puVar38;\n              }\n              puVar36 = (uint *)((int)puVar36 + 1);\n              piVar17 = piVar17 + 2;\n              if (puVar36 == local_78) break;\n              puVar23 = (uint *)*piVar17;\n            }\n            if (0 < iStack_180) {\n              piVar17 = piStack_74 + (int)local_78 * 2;\n              do {\n                *piVar17 = -1;\n                piVar33 = piVar17 + 2;\n                piVar17[1] = -1;\n                piVar17 = piVar33;\n              } while (piStack_74 + (iStack_180 + (int)local_78) * 2 != piVar33);\n            }\n            piVar33 = (int *)puVar43[0x21];\n            piVar17 = piStack_e0;\n            uStack_1e4 = uVar11;\n            if (piVar33 != (int *)0x0) {\n              iVar29 = 0;\n              piVar3 = piStack_74;\n              do {\n                pcVar45 = *(code **)(puVar46 + 0x28520);\n                if (iVar29 == (int)local_78 + -1) goto LAB_0004dbc0;\n                if (*piVar33 != iVar29) {\n                  piVar3[2] = piStack_74[(*piVar33 + 1) * 2];\n                  piVar3[3] = piStack_74[(*piVar33 + 1) * 2 + 1];\n                }\n                iVar29 = iVar29 + 1;\n                piVar33 = piVar33 + 1;\n                piVar3 = piVar3 + 2;\n              } while( true );\n            }\n            goto LAB_0004dbbc;\n          }\n          *piStack_74 = 0;\n          piStack_74[1] = uStack_e8;\n          goto LAB_0004e838;\n        }" { (if_statement "if (uVar14 == 0xfffffffe) goto LAB_0004dbf8;" if (parenthesized_expression "(uVar14 == 0xfffffffe)" ( (binary_expression "uVar14 == 0xfffffffe" identifier == number_literal) )) (goto_statement "goto LAB_0004dbf8;" goto statement_identifier ;)) (expression_statement "uStack_e8 = uVar14;" (assignment_expression "uStack_e8 = uVar14" identifier = identifier) ;) (if_statement "if (((uint)ppuVar24[7] & 0x8000000) == 0) {\n            if (!bVar1) {\n              uVar6 = puVar43[0x13];\n              goto joined_r0x0004e94c;\n            }\n            pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n            iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                     piStack_e0[uVar14] + 0xc,uVar14);\n            if ((*(char *)(puVar43 + 0x16) < '\0') || (puVar43[0x13] != 0)) goto LAB_0004e170;\n          }\n          else {\n            uVar6 = puVar43[0x13];\njoined_r0x0004e94c:\n            if (uVar6 != 0) {\n              pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n              iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                       piStack_e0[uVar14] + 0xc,uVar14);\nLAB_0004e170:\n              iVar30 = iStack_e4;\n              puVar36 = puStack_f0;\n              if (uVar14 < 0x3fffffff) {\n                uStack_1f0 = uVar14 + 1;\n                piVar17 = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                if (piVar17 == (int *)0x0) goto LAB_0004dbf8;\n                if (puVar36[0x13] == 0) {\n                  piStack_15c = (int *)0x0;\n                  uStack_150 = 0;\n                  uStack_14c = 0;\n                  uStack_148 = 0;\n                  piStack_160 = piVar17;\n                  iStack_158 = iVar30;\n                  uStack_154 = uVar14;\n                  uStack_1e4 = FUN_0004d30c(&puStack_144,&piStack_160);\n                  (**(code **)(puVar46 + 0x28520))(uStack_148);\n                  if (uStack_1e4 == 0) {\n                    if (*piVar17 == 0) {\n                      (**(code **)(puVar46 + 0x28520))(piVar17);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar46 + 0x28520))(piStack_e0);\n                    uStack_e8 = uVar14;\n                    iStack_e4 = iVar30;\n                    piStack_e0 = piVar17;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  piStack_1ec = (int *)0x0;\n                }\n                else {\n                  piStack_1ec = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                  if (piStack_1ec == (int *)0x0) {\n                    (**(code **)(puVar46 + 0x28520))(piVar17);\n                    uStack_1e4 = 0xc;\n                    piVar17 = piStack_e0;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar15 = *(int *)(puVar46 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);\n                    uStack_150 = 0;\n                    uStack_14c = 0;\n                    uStack_148 = 0;\n                    piStack_160 = piVar17;\n                    piStack_15c = piStack_1ec;\n                    iStack_158 = iVar30;\n                    uStack_154 = uVar14;\n                    uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);\n                    (**(code **)(puVar46 + 0x28520))(uStack_148);\n                    if (uStack_1e4 != 0) break;\n                    if ((*piVar17 != 0) || (*piStack_1ec != 0)) {\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    piVar33 = piStack_e0 + (uStack_1f0 - 1);\n                    uStack_1f0 = uVar14;\n                    while( true ) {\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }\n                    iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       );\n                  }\n                }\n                (**(code **)(puVar46 + 0x28520))(piVar17);\n                (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                piVar17 = piStack_e0;\n                if (uStack_1e4 == 1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }\n              uStack_1e4 = 0xc;\n              goto LAB_0004dbbc;\n            }\n          }" if (parenthesized_expression "(((uint)ppuVar24[7] & 0x8000000) == 0)" ( (binary_expression "((uint)ppuVar24[7] & 0x8000000) == 0" (parenthesized_expression "((uint)ppuVar24[7] & 0x8000000)" ( (binary_expression "(uint)ppuVar24[7] & 0x8000000" (cast_expression "(uint)ppuVar24[7]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppuVar24[7]" identifier [ number_literal ])) & number_literal) )) == number_literal) )) (compound_statement "{\n            if (!bVar1) {\n              uVar6 = puVar43[0x13];\n              goto joined_r0x0004e94c;\n            }\n            pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n            iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                     piStack_e0[uVar14] + 0xc,uVar14);\n            if ((*(char *)(puVar43 + 0x16) < '\0') || (puVar43[0x13] != 0)) goto LAB_0004e170;\n          }" { (if_statement "if (!bVar1) {\n              uVar6 = puVar43[0x13];\n              goto joined_r0x0004e94c;\n            }" if (parenthesized_expression "(!bVar1)" ( (unary_expression "!bVar1" ! identifier) )) (compound_statement "{\n              uVar6 = puVar43[0x13];\n              goto joined_r0x0004e94c;\n            }" { (expression_statement "uVar6 = puVar43[0x13];" (assignment_expression "uVar6 = puVar43[0x13]" identifier = (subscript_expression "puVar43[0x13]" identifier [ number_literal ])) ;) (goto_statement "goto joined_r0x0004e94c;" goto statement_identifier ;) })) (expression_statement "pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);" (assignment_expression "pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c)" identifier = (cast_expression "(code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar46 + 0x28244) + 0x7d8c)" ( (binary_expression "*(int *)(puVar46 + 0x28244) + 0x7d8c" (pointer_expression "*(int *)(puVar46 + 0x28244)" * (cast_expression "(int *)(puVar46 + 0x28244)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar46 + 0x28244)" ( (binary_expression "puVar46 + 0x28244" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                     piStack_e0[uVar14] + 0xc,uVar14);" (assignment_expression "iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                     piStack_e0[uVar14] + 0xc,uVar14)" identifier = (call_expression "FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                     piStack_e0[uVar14] + 0xc,uVar14)" identifier (argument_list "(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                     piStack_e0[uVar14] + 0xc,uVar14)" ( (pointer_expression "&puStack_144" & identifier) , (pointer_expression "*(undefined4 *)(piStack_e0[uVar14] + 8)" * (cast_expression "(undefined4 *)(piStack_e0[uVar14] + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piStack_e0[uVar14] + 8)" ( (binary_expression "piStack_e0[uVar14] + 8" (subscript_expression "piStack_e0[uVar14]" identifier [ identifier ]) + number_literal) )))) , (binary_expression "piStack_e0[uVar14] + 0xc" (subscript_expression "piStack_e0[uVar14]" identifier [ identifier ]) + number_literal) , identifier )))) ;) (if_statement "if ((*(char *)(puVar43 + 0x16) < '\0') || (puVar43[0x13] != 0)) goto LAB_0004e170;" if (parenthesized_expression "((*(char *)(puVar43 + 0x16) < '\0') || (puVar43[0x13] != 0))" ( (binary_expression "(*(char *)(puVar43 + 0x16) < '\0') || (puVar43[0x13] != 0)" (parenthesized_expression "(*(char *)(puVar43 + 0x16) < '\0')" ( (binary_expression "*(char *)(puVar43 + 0x16) < '\0'" (pointer_expression "*(char *)(puVar43 + 0x16)" * (cast_expression "(char *)(puVar43 + 0x16)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar43 + 0x16)" ( (binary_expression "puVar43 + 0x16" identifier + number_literal) )))) < (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(puVar43[0x13] != 0)" ( (binary_expression "puVar43[0x13] != 0" (subscript_expression "puVar43[0x13]" identifier [ number_literal ]) != number_literal) ))) )) (goto_statement "goto LAB_0004e170;" goto statement_identifier ;)) }) (else_clause "else {\n            uVar6 = puVar43[0x13];\njoined_r0x0004e94c:\n            if (uVar6 != 0) {\n              pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n              iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                       piStack_e0[uVar14] + 0xc,uVar14);\nLAB_0004e170:\n              iVar30 = iStack_e4;\n              puVar36 = puStack_f0;\n              if (uVar14 < 0x3fffffff) {\n                uStack_1f0 = uVar14 + 1;\n                piVar17 = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                if (piVar17 == (int *)0x0) goto LAB_0004dbf8;\n                if (puVar36[0x13] == 0) {\n                  piStack_15c = (int *)0x0;\n                  uStack_150 = 0;\n                  uStack_14c = 0;\n                  uStack_148 = 0;\n                  piStack_160 = piVar17;\n                  iStack_158 = iVar30;\n                  uStack_154 = uVar14;\n                  uStack_1e4 = FUN_0004d30c(&puStack_144,&piStack_160);\n                  (**(code **)(puVar46 + 0x28520))(uStack_148);\n                  if (uStack_1e4 == 0) {\n                    if (*piVar17 == 0) {\n                      (**(code **)(puVar46 + 0x28520))(piVar17);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar46 + 0x28520))(piStack_e0);\n                    uStack_e8 = uVar14;\n                    iStack_e4 = iVar30;\n                    piStack_e0 = piVar17;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  piStack_1ec = (int *)0x0;\n                }\n                else {\n                  piStack_1ec = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                  if (piStack_1ec == (int *)0x0) {\n                    (**(code **)(puVar46 + 0x28520))(piVar17);\n                    uStack_1e4 = 0xc;\n                    piVar17 = piStack_e0;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar15 = *(int *)(puVar46 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);\n                    uStack_150 = 0;\n                    uStack_14c = 0;\n                    uStack_148 = 0;\n                    piStack_160 = piVar17;\n                    piStack_15c = piStack_1ec;\n                    iStack_158 = iVar30;\n                    uStack_154 = uVar14;\n                    uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);\n                    (**(code **)(puVar46 + 0x28520))(uStack_148);\n                    if (uStack_1e4 != 0) break;\n                    if ((*piVar17 != 0) || (*piStack_1ec != 0)) {\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    piVar33 = piStack_e0 + (uStack_1f0 - 1);\n                    uStack_1f0 = uVar14;\n                    while( true ) {\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }\n                    iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       );\n                  }\n                }\n                (**(code **)(puVar46 + 0x28520))(piVar17);\n                (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                piVar17 = piStack_e0;\n                if (uStack_1e4 == 1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }\n              uStack_1e4 = 0xc;\n              goto LAB_0004dbbc;\n            }\n          }" else (compound_statement "{\n            uVar6 = puVar43[0x13];\njoined_r0x0004e94c:\n            if (uVar6 != 0) {\n              pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n              iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                       piStack_e0[uVar14] + 0xc,uVar14);\nLAB_0004e170:\n              iVar30 = iStack_e4;\n              puVar36 = puStack_f0;\n              if (uVar14 < 0x3fffffff) {\n                uStack_1f0 = uVar14 + 1;\n                piVar17 = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                if (piVar17 == (int *)0x0) goto LAB_0004dbf8;\n                if (puVar36[0x13] == 0) {\n                  piStack_15c = (int *)0x0;\n                  uStack_150 = 0;\n                  uStack_14c = 0;\n                  uStack_148 = 0;\n                  piStack_160 = piVar17;\n                  iStack_158 = iVar30;\n                  uStack_154 = uVar14;\n                  uStack_1e4 = FUN_0004d30c(&puStack_144,&piStack_160);\n                  (**(code **)(puVar46 + 0x28520))(uStack_148);\n                  if (uStack_1e4 == 0) {\n                    if (*piVar17 == 0) {\n                      (**(code **)(puVar46 + 0x28520))(piVar17);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar46 + 0x28520))(piStack_e0);\n                    uStack_e8 = uVar14;\n                    iStack_e4 = iVar30;\n                    piStack_e0 = piVar17;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  piStack_1ec = (int *)0x0;\n                }\n                else {\n                  piStack_1ec = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                  if (piStack_1ec == (int *)0x0) {\n                    (**(code **)(puVar46 + 0x28520))(piVar17);\n                    uStack_1e4 = 0xc;\n                    piVar17 = piStack_e0;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar15 = *(int *)(puVar46 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);\n                    uStack_150 = 0;\n                    uStack_14c = 0;\n                    uStack_148 = 0;\n                    piStack_160 = piVar17;\n                    piStack_15c = piStack_1ec;\n                    iStack_158 = iVar30;\n                    uStack_154 = uVar14;\n                    uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);\n                    (**(code **)(puVar46 + 0x28520))(uStack_148);\n                    if (uStack_1e4 != 0) break;\n                    if ((*piVar17 != 0) || (*piStack_1ec != 0)) {\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    piVar33 = piStack_e0 + (uStack_1f0 - 1);\n                    uStack_1f0 = uVar14;\n                    while( true ) {\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }\n                    iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       );\n                  }\n                }\n                (**(code **)(puVar46 + 0x28520))(piVar17);\n                (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                piVar17 = piStack_e0;\n                if (uStack_1e4 == 1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }\n              uStack_1e4 = 0xc;\n              goto LAB_0004dbbc;\n            }\n          }" { (expression_statement "uVar6 = puVar43[0x13];" (assignment_expression "uVar6 = puVar43[0x13]" identifier = (subscript_expression "puVar43[0x13]" identifier [ number_literal ])) ;) (labeled_statement "joined_r0x0004e94c:\n            if (uVar6 != 0) {\n              pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n              iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                       piStack_e0[uVar14] + 0xc,uVar14);\nLAB_0004e170:\n              iVar30 = iStack_e4;\n              puVar36 = puStack_f0;\n              if (uVar14 < 0x3fffffff) {\n                uStack_1f0 = uVar14 + 1;\n                piVar17 = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                if (piVar17 == (int *)0x0) goto LAB_0004dbf8;\n                if (puVar36[0x13] == 0) {\n                  piStack_15c = (int *)0x0;\n                  uStack_150 = 0;\n                  uStack_14c = 0;\n                  uStack_148 = 0;\n                  piStack_160 = piVar17;\n                  iStack_158 = iVar30;\n                  uStack_154 = uVar14;\n                  uStack_1e4 = FUN_0004d30c(&puStack_144,&piStack_160);\n                  (**(code **)(puVar46 + 0x28520))(uStack_148);\n                  if (uStack_1e4 == 0) {\n                    if (*piVar17 == 0) {\n                      (**(code **)(puVar46 + 0x28520))(piVar17);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar46 + 0x28520))(piStack_e0);\n                    uStack_e8 = uVar14;\n                    iStack_e4 = iVar30;\n                    piStack_e0 = piVar17;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  piStack_1ec = (int *)0x0;\n                }\n                else {\n                  piStack_1ec = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                  if (piStack_1ec == (int *)0x0) {\n                    (**(code **)(puVar46 + 0x28520))(piVar17);\n                    uStack_1e4 = 0xc;\n                    piVar17 = piStack_e0;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar15 = *(int *)(puVar46 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);\n                    uStack_150 = 0;\n                    uStack_14c = 0;\n                    uStack_148 = 0;\n                    piStack_160 = piVar17;\n                    piStack_15c = piStack_1ec;\n                    iStack_158 = iVar30;\n                    uStack_154 = uVar14;\n                    uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);\n                    (**(code **)(puVar46 + 0x28520))(uStack_148);\n                    if (uStack_1e4 != 0) break;\n                    if ((*piVar17 != 0) || (*piStack_1ec != 0)) {\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    piVar33 = piStack_e0 + (uStack_1f0 - 1);\n                    uStack_1f0 = uVar14;\n                    while( true ) {\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }\n                    iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       );\n                  }\n                }\n                (**(code **)(puVar46 + 0x28520))(piVar17);\n                (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                piVar17 = piStack_e0;\n                if (uStack_1e4 == 1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }\n              uStack_1e4 = 0xc;\n              goto LAB_0004dbbc;\n            }" statement_identifier : (if_statement "if (uVar6 != 0) {\n              pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n              iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                       piStack_e0[uVar14] + 0xc,uVar14);\nLAB_0004e170:\n              iVar30 = iStack_e4;\n              puVar36 = puStack_f0;\n              if (uVar14 < 0x3fffffff) {\n                uStack_1f0 = uVar14 + 1;\n                piVar17 = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                if (piVar17 == (int *)0x0) goto LAB_0004dbf8;\n                if (puVar36[0x13] == 0) {\n                  piStack_15c = (int *)0x0;\n                  uStack_150 = 0;\n                  uStack_14c = 0;\n                  uStack_148 = 0;\n                  piStack_160 = piVar17;\n                  iStack_158 = iVar30;\n                  uStack_154 = uVar14;\n                  uStack_1e4 = FUN_0004d30c(&puStack_144,&piStack_160);\n                  (**(code **)(puVar46 + 0x28520))(uStack_148);\n                  if (uStack_1e4 == 0) {\n                    if (*piVar17 == 0) {\n                      (**(code **)(puVar46 + 0x28520))(piVar17);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar46 + 0x28520))(piStack_e0);\n                    uStack_e8 = uVar14;\n                    iStack_e4 = iVar30;\n                    piStack_e0 = piVar17;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  piStack_1ec = (int *)0x0;\n                }\n                else {\n                  piStack_1ec = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                  if (piStack_1ec == (int *)0x0) {\n                    (**(code **)(puVar46 + 0x28520))(piVar17);\n                    uStack_1e4 = 0xc;\n                    piVar17 = piStack_e0;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar15 = *(int *)(puVar46 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);\n                    uStack_150 = 0;\n                    uStack_14c = 0;\n                    uStack_148 = 0;\n                    piStack_160 = piVar17;\n                    piStack_15c = piStack_1ec;\n                    iStack_158 = iVar30;\n                    uStack_154 = uVar14;\n                    uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);\n                    (**(code **)(puVar46 + 0x28520))(uStack_148);\n                    if (uStack_1e4 != 0) break;\n                    if ((*piVar17 != 0) || (*piStack_1ec != 0)) {\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    piVar33 = piStack_e0 + (uStack_1f0 - 1);\n                    uStack_1f0 = uVar14;\n                    while( true ) {\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }\n                    iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       );\n                  }\n                }\n                (**(code **)(puVar46 + 0x28520))(piVar17);\n                (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                piVar17 = piStack_e0;\n                if (uStack_1e4 == 1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }\n              uStack_1e4 = 0xc;\n              goto LAB_0004dbbc;\n            }" if (parenthesized_expression "(uVar6 != 0)" ( (binary_expression "uVar6 != 0" identifier != number_literal) )) (compound_statement "{\n              pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n              iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                       piStack_e0[uVar14] + 0xc,uVar14);\nLAB_0004e170:\n              iVar30 = iStack_e4;\n              puVar36 = puStack_f0;\n              if (uVar14 < 0x3fffffff) {\n                uStack_1f0 = uVar14 + 1;\n                piVar17 = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                if (piVar17 == (int *)0x0) goto LAB_0004dbf8;\n                if (puVar36[0x13] == 0) {\n                  piStack_15c = (int *)0x0;\n                  uStack_150 = 0;\n                  uStack_14c = 0;\n                  uStack_148 = 0;\n                  piStack_160 = piVar17;\n                  iStack_158 = iVar30;\n                  uStack_154 = uVar14;\n                  uStack_1e4 = FUN_0004d30c(&puStack_144,&piStack_160);\n                  (**(code **)(puVar46 + 0x28520))(uStack_148);\n                  if (uStack_1e4 == 0) {\n                    if (*piVar17 == 0) {\n                      (**(code **)(puVar46 + 0x28520))(piVar17);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar46 + 0x28520))(piStack_e0);\n                    uStack_e8 = uVar14;\n                    iStack_e4 = iVar30;\n                    piStack_e0 = piVar17;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  piStack_1ec = (int *)0x0;\n                }\n                else {\n                  piStack_1ec = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                  if (piStack_1ec == (int *)0x0) {\n                    (**(code **)(puVar46 + 0x28520))(piVar17);\n                    uStack_1e4 = 0xc;\n                    piVar17 = piStack_e0;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar15 = *(int *)(puVar46 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);\n                    uStack_150 = 0;\n                    uStack_14c = 0;\n                    uStack_148 = 0;\n                    piStack_160 = piVar17;\n                    piStack_15c = piStack_1ec;\n                    iStack_158 = iVar30;\n                    uStack_154 = uVar14;\n                    uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);\n                    (**(code **)(puVar46 + 0x28520))(uStack_148);\n                    if (uStack_1e4 != 0) break;\n                    if ((*piVar17 != 0) || (*piStack_1ec != 0)) {\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    piVar33 = piStack_e0 + (uStack_1f0 - 1);\n                    uStack_1f0 = uVar14;\n                    while( true ) {\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }\n                    iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       );\n                  }\n                }\n                (**(code **)(puVar46 + 0x28520))(piVar17);\n                (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                piVar17 = piStack_e0;\n                if (uStack_1e4 == 1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }\n              uStack_1e4 = 0xc;\n              goto LAB_0004dbbc;\n            }" { (expression_statement "pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);" (assignment_expression "pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c)" identifier = (cast_expression "(code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar46 + 0x28244) + 0x7d8c)" ( (binary_expression "*(int *)(puVar46 + 0x28244) + 0x7d8c" (pointer_expression "*(int *)(puVar46 + 0x28244)" * (cast_expression "(int *)(puVar46 + 0x28244)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar46 + 0x28244)" ( (binary_expression "puVar46 + 0x28244" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                       piStack_e0[uVar14] + 0xc,uVar14);" (assignment_expression "iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                       piStack_e0[uVar14] + 0xc,uVar14)" identifier = (call_expression "FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                       piStack_e0[uVar14] + 0xc,uVar14)" identifier (argument_list "(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                       piStack_e0[uVar14] + 0xc,uVar14)" ( (pointer_expression "&puStack_144" & identifier) , (pointer_expression "*(undefined4 *)(piStack_e0[uVar14] + 8)" * (cast_expression "(undefined4 *)(piStack_e0[uVar14] + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piStack_e0[uVar14] + 8)" ( (binary_expression "piStack_e0[uVar14] + 8" (subscript_expression "piStack_e0[uVar14]" identifier [ identifier ]) + number_literal) )))) , (binary_expression "piStack_e0[uVar14] + 0xc" (subscript_expression "piStack_e0[uVar14]" identifier [ identifier ]) + number_literal) , identifier )))) ;) (labeled_statement "LAB_0004e170:\n              iVar30 = iStack_e4;" statement_identifier : (expression_statement "iVar30 = iStack_e4;" (assignment_expression "iVar30 = iStack_e4" identifier = identifier) ;)) (expression_statement "puVar36 = puStack_f0;" (assignment_expression "puVar36 = puStack_f0" identifier = identifier) ;) (if_statement "if (uVar14 < 0x3fffffff) {\n                uStack_1f0 = uVar14 + 1;\n                piVar17 = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                if (piVar17 == (int *)0x0) goto LAB_0004dbf8;\n                if (puVar36[0x13] == 0) {\n                  piStack_15c = (int *)0x0;\n                  uStack_150 = 0;\n                  uStack_14c = 0;\n                  uStack_148 = 0;\n                  piStack_160 = piVar17;\n                  iStack_158 = iVar30;\n                  uStack_154 = uVar14;\n                  uStack_1e4 = FUN_0004d30c(&puStack_144,&piStack_160);\n                  (**(code **)(puVar46 + 0x28520))(uStack_148);\n                  if (uStack_1e4 == 0) {\n                    if (*piVar17 == 0) {\n                      (**(code **)(puVar46 + 0x28520))(piVar17);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar46 + 0x28520))(piStack_e0);\n                    uStack_e8 = uVar14;\n                    iStack_e4 = iVar30;\n                    piStack_e0 = piVar17;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  piStack_1ec = (int *)0x0;\n                }\n                else {\n                  piStack_1ec = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                  if (piStack_1ec == (int *)0x0) {\n                    (**(code **)(puVar46 + 0x28520))(piVar17);\n                    uStack_1e4 = 0xc;\n                    piVar17 = piStack_e0;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar15 = *(int *)(puVar46 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);\n                    uStack_150 = 0;\n                    uStack_14c = 0;\n                    uStack_148 = 0;\n                    piStack_160 = piVar17;\n                    piStack_15c = piStack_1ec;\n                    iStack_158 = iVar30;\n                    uStack_154 = uVar14;\n                    uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);\n                    (**(code **)(puVar46 + 0x28520))(uStack_148);\n                    if (uStack_1e4 != 0) break;\n                    if ((*piVar17 != 0) || (*piStack_1ec != 0)) {\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    piVar33 = piStack_e0 + (uStack_1f0 - 1);\n                    uStack_1f0 = uVar14;\n                    while( true ) {\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }\n                    iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       );\n                  }\n                }\n                (**(code **)(puVar46 + 0x28520))(piVar17);\n                (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                piVar17 = piStack_e0;\n                if (uStack_1e4 == 1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }" if (parenthesized_expression "(uVar14 < 0x3fffffff)" ( (binary_expression "uVar14 < 0x3fffffff" identifier < number_literal) )) (compound_statement "{\n                uStack_1f0 = uVar14 + 1;\n                piVar17 = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                if (piVar17 == (int *)0x0) goto LAB_0004dbf8;\n                if (puVar36[0x13] == 0) {\n                  piStack_15c = (int *)0x0;\n                  uStack_150 = 0;\n                  uStack_14c = 0;\n                  uStack_148 = 0;\n                  piStack_160 = piVar17;\n                  iStack_158 = iVar30;\n                  uStack_154 = uVar14;\n                  uStack_1e4 = FUN_0004d30c(&puStack_144,&piStack_160);\n                  (**(code **)(puVar46 + 0x28520))(uStack_148);\n                  if (uStack_1e4 == 0) {\n                    if (*piVar17 == 0) {\n                      (**(code **)(puVar46 + 0x28520))(piVar17);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar46 + 0x28520))(piStack_e0);\n                    uStack_e8 = uVar14;\n                    iStack_e4 = iVar30;\n                    piStack_e0 = piVar17;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  piStack_1ec = (int *)0x0;\n                }\n                else {\n                  piStack_1ec = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                  if (piStack_1ec == (int *)0x0) {\n                    (**(code **)(puVar46 + 0x28520))(piVar17);\n                    uStack_1e4 = 0xc;\n                    piVar17 = piStack_e0;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar15 = *(int *)(puVar46 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);\n                    uStack_150 = 0;\n                    uStack_14c = 0;\n                    uStack_148 = 0;\n                    piStack_160 = piVar17;\n                    piStack_15c = piStack_1ec;\n                    iStack_158 = iVar30;\n                    uStack_154 = uVar14;\n                    uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);\n                    (**(code **)(puVar46 + 0x28520))(uStack_148);\n                    if (uStack_1e4 != 0) break;\n                    if ((*piVar17 != 0) || (*piStack_1ec != 0)) {\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    piVar33 = piStack_e0 + (uStack_1f0 - 1);\n                    uStack_1f0 = uVar14;\n                    while( true ) {\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }\n                    iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       );\n                  }\n                }\n                (**(code **)(puVar46 + 0x28520))(piVar17);\n                (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                piVar17 = piStack_e0;\n                if (uStack_1e4 == 1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }" { (expression_statement "uStack_1f0 = uVar14 + 1;" (assignment_expression "uStack_1f0 = uVar14 + 1" identifier = (binary_expression "uVar14 + 1" identifier + number_literal)) ;) (expression_statement "piVar17 = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);" (assignment_expression "piVar17 = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4)" identifier = (cast_expression "(int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4)" (parenthesized_expression "(**(code **)(puVar46 + 0x28450))" ( (pointer_expression "**(code **)(puVar46 + 0x28450)" * (pointer_expression "*(code **)(puVar46 + 0x28450)" * (cast_expression "(code **)(puVar46 + 0x28450)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar46 + 0x28450)" ( (binary_expression "puVar46 + 0x28450" identifier + number_literal) ))))) )) (argument_list "(uStack_1f0 * 4)" ( (binary_expression "uStack_1f0 * 4" identifier * number_literal) ))))) ;) (if_statement "if (piVar17 == (int *)0x0) goto LAB_0004dbf8;" if (parenthesized_expression "(piVar17 == (int *)0x0)" ( (binary_expression "piVar17 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004dbf8;" goto statement_identifier ;)) (if_statement "if (puVar36[0x13] == 0) {\n                  piStack_15c = (int *)0x0;\n                  uStack_150 = 0;\n                  uStack_14c = 0;\n                  uStack_148 = 0;\n                  piStack_160 = piVar17;\n                  iStack_158 = iVar30;\n                  uStack_154 = uVar14;\n                  uStack_1e4 = FUN_0004d30c(&puStack_144,&piStack_160);\n                  (**(code **)(puVar46 + 0x28520))(uStack_148);\n                  if (uStack_1e4 == 0) {\n                    if (*piVar17 == 0) {\n                      (**(code **)(puVar46 + 0x28520))(piVar17);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar46 + 0x28520))(piStack_e0);\n                    uStack_e8 = uVar14;\n                    iStack_e4 = iVar30;\n                    piStack_e0 = piVar17;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  piStack_1ec = (int *)0x0;\n                }\n                else {\n                  piStack_1ec = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                  if (piStack_1ec == (int *)0x0) {\n                    (**(code **)(puVar46 + 0x28520))(piVar17);\n                    uStack_1e4 = 0xc;\n                    piVar17 = piStack_e0;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar15 = *(int *)(puVar46 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);\n                    uStack_150 = 0;\n                    uStack_14c = 0;\n                    uStack_148 = 0;\n                    piStack_160 = piVar17;\n                    piStack_15c = piStack_1ec;\n                    iStack_158 = iVar30;\n                    uStack_154 = uVar14;\n                    uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);\n                    (**(code **)(puVar46 + 0x28520))(uStack_148);\n                    if (uStack_1e4 != 0) break;\n                    if ((*piVar17 != 0) || (*piStack_1ec != 0)) {\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    piVar33 = piStack_e0 + (uStack_1f0 - 1);\n                    uStack_1f0 = uVar14;\n                    while( true ) {\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }\n                    iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       );\n                  }\n                }" if (parenthesized_expression "(puVar36[0x13] == 0)" ( (binary_expression "puVar36[0x13] == 0" (subscript_expression "puVar36[0x13]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                  piStack_15c = (int *)0x0;\n                  uStack_150 = 0;\n                  uStack_14c = 0;\n                  uStack_148 = 0;\n                  piStack_160 = piVar17;\n                  iStack_158 = iVar30;\n                  uStack_154 = uVar14;\n                  uStack_1e4 = FUN_0004d30c(&puStack_144,&piStack_160);\n                  (**(code **)(puVar46 + 0x28520))(uStack_148);\n                  if (uStack_1e4 == 0) {\n                    if (*piVar17 == 0) {\n                      (**(code **)(puVar46 + 0x28520))(piVar17);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar46 + 0x28520))(piStack_e0);\n                    uStack_e8 = uVar14;\n                    iStack_e4 = iVar30;\n                    piStack_e0 = piVar17;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  piStack_1ec = (int *)0x0;\n                }" { (expression_statement "piStack_15c = (int *)0x0;" (assignment_expression "piStack_15c = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uStack_150 = 0;" (assignment_expression "uStack_150 = 0" identifier = number_literal) ;) (expression_statement "uStack_14c = 0;" (assignment_expression "uStack_14c = 0" identifier = number_literal) ;) (expression_statement "uStack_148 = 0;" (assignment_expression "uStack_148 = 0" identifier = number_literal) ;) (expression_statement "piStack_160 = piVar17;" (assignment_expression "piStack_160 = piVar17" identifier = identifier) ;) (expression_statement "iStack_158 = iVar30;" (assignment_expression "iStack_158 = iVar30" identifier = identifier) ;) (expression_statement "uStack_154 = uVar14;" (assignment_expression "uStack_154 = uVar14" identifier = identifier) ;) (expression_statement "uStack_1e4 = FUN_0004d30c(&puStack_144,&piStack_160);" (assignment_expression "uStack_1e4 = FUN_0004d30c(&puStack_144,&piStack_160)" identifier = (call_expression "FUN_0004d30c(&puStack_144,&piStack_160)" identifier (argument_list "(&puStack_144,&piStack_160)" ( (pointer_expression "&puStack_144" & identifier) , (pointer_expression "&piStack_160" & identifier) )))) ;) (expression_statement "(**(code **)(puVar46 + 0x28520))(uStack_148);" (call_expression "(**(code **)(puVar46 + 0x28520))(uStack_148)" (parenthesized_expression "(**(code **)(puVar46 + 0x28520))" ( (pointer_expression "**(code **)(puVar46 + 0x28520)" * (pointer_expression "*(code **)(puVar46 + 0x28520)" * (cast_expression "(code **)(puVar46 + 0x28520)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar46 + 0x28520)" ( (binary_expression "puVar46 + 0x28520" identifier + number_literal) ))))) )) (argument_list "(uStack_148)" ( identifier ))) ;) (if_statement "if (uStack_1e4 == 0) {\n                    if (*piVar17 == 0) {\n                      (**(code **)(puVar46 + 0x28520))(piVar17);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar46 + 0x28520))(piStack_e0);\n                    uStack_e8 = uVar14;\n                    iStack_e4 = iVar30;\n                    piStack_e0 = piVar17;\n                    goto LAB_0004e7e0;\n                  }" if (parenthesized_expression "(uStack_1e4 == 0)" ( (binary_expression "uStack_1e4 == 0" identifier == number_literal) )) (compound_statement "{\n                    if (*piVar17 == 0) {\n                      (**(code **)(puVar46 + 0x28520))(piVar17);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar46 + 0x28520))(piStack_e0);\n                    uStack_e8 = uVar14;\n                    iStack_e4 = iVar30;\n                    piStack_e0 = piVar17;\n                    goto LAB_0004e7e0;\n                  }" { (if_statement "if (*piVar17 == 0) {\n                      (**(code **)(puVar46 + 0x28520))(piVar17);\n                      goto LAB_0004e2d4;\n                    }" if (parenthesized_expression "(*piVar17 == 0)" ( (binary_expression "*piVar17 == 0" (pointer_expression "*piVar17" * identifier) == number_literal) )) (compound_statement "{\n                      (**(code **)(puVar46 + 0x28520))(piVar17);\n                      goto LAB_0004e2d4;\n                    }" { (expression_statement "(**(code **)(puVar46 + 0x28520))(piVar17);" (call_expression "(**(code **)(puVar46 + 0x28520))(piVar17)" (parenthesized_expression "(**(code **)(puVar46 + 0x28520))" ( (pointer_expression "**(code **)(puVar46 + 0x28520)" * (pointer_expression "*(code **)(puVar46 + 0x28520)" * (cast_expression "(code **)(puVar46 + 0x28520)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar46 + 0x28520)" ( (binary_expression "puVar46 + 0x28520" identifier + number_literal) ))))) )) (argument_list "(piVar17)" ( identifier ))) ;) (goto_statement "goto LAB_0004e2d4;" goto statement_identifier ;) })) (labeled_statement "LAB_0004e9f8:\n                    (**(code **)(puVar46 + 0x28520))(piStack_e0);" statement_identifier : (expression_statement "(**(code **)(puVar46 + 0x28520))(piStack_e0);" (call_expression "(**(code **)(puVar46 + 0x28520))(piStack_e0)" (parenthesized_expression "(**(code **)(puVar46 + 0x28520))" ( (pointer_expression "**(code **)(puVar46 + 0x28520)" * (pointer_expression "*(code **)(puVar46 + 0x28520)" * (cast_expression "(code **)(puVar46 + 0x28520)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar46 + 0x28520)" ( (binary_expression "puVar46 + 0x28520" identifier + number_literal) ))))) )) (argument_list "(piStack_e0)" ( identifier ))) ;)) (expression_statement "uStack_e8 = uVar14;" (assignment_expression "uStack_e8 = uVar14" identifier = identifier) ;) (expression_statement "iStack_e4 = iVar30;" (assignment_expression "iStack_e4 = iVar30" identifier = identifier) ;) (expression_statement "piStack_e0 = piVar17;" (assignment_expression "piStack_e0 = piVar17" identifier = identifier) ;) (goto_statement "goto LAB_0004e7e0;" goto statement_identifier ;) })) (labeled_statement "LAB_0004ed18:\n                  piStack_1ec = (int *)0x0;" statement_identifier : (expression_statement "piStack_1ec = (int *)0x0;" (assignment_expression "piStack_1ec = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) }) (else_clause "else {\n                  piStack_1ec = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                  if (piStack_1ec == (int *)0x0) {\n                    (**(code **)(puVar46 + 0x28520))(piVar17);\n                    uStack_1e4 = 0xc;\n                    piVar17 = piStack_e0;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar15 = *(int *)(puVar46 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);\n                    uStack_150 = 0;\n                    uStack_14c = 0;\n                    uStack_148 = 0;\n                    piStack_160 = piVar17;\n                    piStack_15c = piStack_1ec;\n                    iStack_158 = iVar30;\n                    uStack_154 = uVar14;\n                    uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);\n                    (**(code **)(puVar46 + 0x28520))(uStack_148);\n                    if (uStack_1e4 != 0) break;\n                    if ((*piVar17 != 0) || (*piStack_1ec != 0)) {\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    piVar33 = piStack_e0 + (uStack_1f0 - 1);\n                    uStack_1f0 = uVar14;\n                    while( true ) {\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }\n                    iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       );\n                  }\n                }" else (compound_statement "{\n                  piStack_1ec = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                  if (piStack_1ec == (int *)0x0) {\n                    (**(code **)(puVar46 + 0x28520))(piVar17);\n                    uStack_1e4 = 0xc;\n                    piVar17 = piStack_e0;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar15 = *(int *)(puVar46 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);\n                    uStack_150 = 0;\n                    uStack_14c = 0;\n                    uStack_148 = 0;\n                    piStack_160 = piVar17;\n                    piStack_15c = piStack_1ec;\n                    iStack_158 = iVar30;\n                    uStack_154 = uVar14;\n                    uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);\n                    (**(code **)(puVar46 + 0x28520))(uStack_148);\n                    if (uStack_1e4 != 0) break;\n                    if ((*piVar17 != 0) || (*piStack_1ec != 0)) {\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    piVar33 = piStack_e0 + (uStack_1f0 - 1);\n                    uStack_1f0 = uVar14;\n                    while( true ) {\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }\n                    iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       );\n                  }\n                }" { (expression_statement "piStack_1ec = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);" (assignment_expression "piStack_1ec = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4)" identifier = (cast_expression "(int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4)" (parenthesized_expression "(**(code **)(puVar46 + 0x28450))" ( (pointer_expression "**(code **)(puVar46 + 0x28450)" * (pointer_expression "*(code **)(puVar46 + 0x28450)" * (cast_expression "(code **)(puVar46 + 0x28450)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar46 + 0x28450)" ( (binary_expression "puVar46 + 0x28450" identifier + number_literal) ))))) )) (argument_list "(uStack_1f0 * 4)" ( (binary_expression "uStack_1f0 * 4" identifier * number_literal) ))))) ;) (if_statement "if (piStack_1ec == (int *)0x0) {\n                    (**(code **)(puVar46 + 0x28520))(piVar17);\n                    uStack_1e4 = 0xc;\n                    piVar17 = piStack_e0;\n                    goto LAB_0004dbbc;\n                  }" if (parenthesized_expression "(piStack_1ec == (int *)0x0)" ( (binary_expression "piStack_1ec == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    (**(code **)(puVar46 + 0x28520))(piVar17);\n                    uStack_1e4 = 0xc;\n                    piVar17 = piStack_e0;\n                    goto LAB_0004dbbc;\n                  }" { (expression_statement "(**(code **)(puVar46 + 0x28520))(piVar17);" (call_expression "(**(code **)(puVar46 + 0x28520))(piVar17)" (parenthesized_expression "(**(code **)(puVar46 + 0x28520))" ( (pointer_expression "**(code **)(puVar46 + 0x28520)" * (pointer_expression "*(code **)(puVar46 + 0x28520)" * (cast_expression "(code **)(puVar46 + 0x28520)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar46 + 0x28520)" ( (binary_expression "puVar46 + 0x28520" identifier + number_literal) ))))) )) (argument_list "(piVar17)" ( identifier ))) ;) (expression_statement "uStack_1e4 = 0xc;" (assignment_expression "uStack_1e4 = 0xc" identifier = number_literal) ;) (expression_statement "piVar17 = piStack_e0;" (assignment_expression "piVar17 = piStack_e0" identifier = identifier) ;) (goto_statement "goto LAB_0004dbbc;" goto statement_identifier ;) })) (expression_statement "iVar15 = *(int *)(puVar46 + 0x2829c);" (assignment_expression "iVar15 = *(int *)(puVar46 + 0x2829c)" identifier = (pointer_expression "*(int *)(puVar46 + 0x2829c)" * (cast_expression "(int *)(puVar46 + 0x2829c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar46 + 0x2829c)" ( (binary_expression "puVar46 + 0x2829c" identifier + number_literal) ))))) ;) (while_statement "while( true ) {\n                    (**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);\n                    uStack_150 = 0;\n                    uStack_14c = 0;\n                    uStack_148 = 0;\n                    piStack_160 = piVar17;\n                    piStack_15c = piStack_1ec;\n                    iStack_158 = iVar30;\n                    uStack_154 = uVar14;\n                    uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);\n                    (**(code **)(puVar46 + 0x28520))(uStack_148);\n                    if (uStack_1e4 != 0) break;\n                    if ((*piVar17 != 0) || (*piStack_1ec != 0)) {\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    piVar33 = piStack_e0 + (uStack_1f0 - 1);\n                    uStack_1f0 = uVar14;\n                    while( true ) {\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }\n                    iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       );\n                  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                    (**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);\n                    uStack_150 = 0;\n                    uStack_14c = 0;\n                    uStack_148 = 0;\n                    piStack_160 = piVar17;\n                    piStack_15c = piStack_1ec;\n                    iStack_158 = iVar30;\n                    uStack_154 = uVar14;\n                    uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);\n                    (**(code **)(puVar46 + 0x28520))(uStack_148);\n                    if (uStack_1e4 != 0) break;\n                    if ((*piVar17 != 0) || (*piStack_1ec != 0)) {\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    piVar33 = piStack_e0 + (uStack_1f0 - 1);\n                    uStack_1f0 = uVar14;\n                    while( true ) {\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }\n                    iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       );\n                  }" { (expression_statement "(**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);" (call_expression "(**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4)" (parenthesized_expression "(**(code **)(puVar46 + 0x283f8))" ( (pointer_expression "**(code **)(puVar46 + 0x283f8)" * (pointer_expression "*(code **)(puVar46 + 0x283f8)" * (cast_expression "(code **)(puVar46 + 0x283f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar46 + 0x283f8)" ( (binary_expression "puVar46 + 0x283f8" identifier + number_literal) ))))) )) (argument_list "(piStack_1ec,0,uStack_1f0 * 4)" ( identifier , number_literal , (binary_expression "uStack_1f0 * 4" identifier * number_literal) ))) ;) (expression_statement "uStack_150 = 0;" (assignment_expression "uStack_150 = 0" identifier = number_literal) ;) (expression_statement "uStack_14c = 0;" (assignment_expression "uStack_14c = 0" identifier = number_literal) ;) (expression_statement "uStack_148 = 0;" (assignment_expression "uStack_148 = 0" identifier = number_literal) ;) (expression_statement "piStack_160 = piVar17;" (assignment_expression "piStack_160 = piVar17" identifier = identifier) ;) (expression_statement "piStack_15c = piStack_1ec;" (assignment_expression "piStack_15c = piStack_1ec" identifier = identifier) ;) (expression_statement "iStack_158 = iVar30;" (assignment_expression "iStack_158 = iVar30" identifier = identifier) ;) (expression_statement "uStack_154 = uVar14;" (assignment_expression "uStack_154 = uVar14" identifier = identifier) ;) (expression_statement "uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);" (assignment_expression "uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160)" identifier = (call_expression "(*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160)" (parenthesized_expression "(*(code *)(iVar15 + -0x2cf4))" ( (pointer_expression "*(code *)(iVar15 + -0x2cf4)" * (cast_expression "(code *)(iVar15 + -0x2cf4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + -0x2cf4)" ( (binary_expression "iVar15 + -0x2cf4" identifier + number_literal) )))) )) (argument_list "(&puStack_144,&piStack_160)" ( (pointer_expression "&puStack_144" & identifier) , (pointer_expression "&piStack_160" & identifier) )))) ;) (expression_statement "(**(code **)(puVar46 + 0x28520))(uStack_148);" (call_expression "(**(code **)(puVar46 + 0x28520))(uStack_148)" (parenthesized_expression "(**(code **)(puVar46 + 0x28520))" ( (pointer_expression "**(code **)(puVar46 + 0x28520)" * (pointer_expression "*(code **)(puVar46 + 0x28520)" * (cast_expression "(code **)(puVar46 + 0x28520)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar46 + 0x28520)" ( (binary_expression "puVar46 + 0x28520" identifier + number_literal) ))))) )) (argument_list "(uStack_148)" ( identifier ))) ;) (if_statement "if (uStack_1e4 != 0) break;" if (parenthesized_expression "(uStack_1e4 != 0)" ( (binary_expression "uStack_1e4 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (if_statement "if ((*piVar17 != 0) || (*piStack_1ec != 0)) {\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }" if (parenthesized_expression "((*piVar17 != 0) || (*piStack_1ec != 0))" ( (binary_expression "(*piVar17 != 0) || (*piStack_1ec != 0)" (parenthesized_expression "(*piVar17 != 0)" ( (binary_expression "*piVar17 != 0" (pointer_expression "*piVar17" * identifier) != number_literal) )) || (parenthesized_expression "(*piStack_1ec != 0)" ( (binary_expression "*piStack_1ec != 0" (pointer_expression "*piStack_1ec" * identifier) != number_literal) ))) )) (compound_statement "{\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }" { (expression_statement "uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);" (assignment_expression "uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0)" identifier = (call_expression "FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0)" identifier (argument_list "(puVar36,piVar17,piStack_1ec,uStack_1f0)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "(**(code **)(puVar46 + 0x28520))(piStack_1ec);" (call_expression "(**(code **)(puVar46 + 0x28520))(piStack_1ec)" (parenthesized_expression "(**(code **)(puVar46 + 0x28520))" ( (pointer_expression "**(code **)(puVar46 + 0x28520)" * (pointer_expression "*(code **)(puVar46 + 0x28520)" * (cast_expression "(code **)(puVar46 + 0x28520)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar46 + 0x28520)" ( (binary_expression "puVar46 + 0x28520" identifier + number_literal) ))))) )) (argument_list "(piStack_1ec)" ( identifier ))) ;) (if_statement "if (uStack_1e4 != 0) goto LAB_0004ed18;" if (parenthesized_expression "(uStack_1e4 != 0)" ( (binary_expression "uStack_1e4 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0004ed18;" goto statement_identifier ;)) (goto_statement "goto LAB_0004e9f8;" goto statement_identifier ;) })) (expression_statement "piVar33 = piStack_e0 + (uStack_1f0 - 1);" (assignment_expression "piVar33 = piStack_e0 + (uStack_1f0 - 1)" identifier = (binary_expression "piStack_e0 + (uStack_1f0 - 1)" identifier + (parenthesized_expression "(uStack_1f0 - 1)" ( (binary_expression "uStack_1f0 - 1" identifier - number_literal) )))) ;) (expression_statement "uStack_1f0 = uVar14;" (assignment_expression "uStack_1f0 = uVar14" identifier = identifier) ;) (while_statement "while( true ) {\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }" { (expression_statement "uVar14 = uStack_1f0 - 1;" (assignment_expression "uVar14 = uStack_1f0 - 1" identifier = (binary_expression "uStack_1f0 - 1" identifier - number_literal)) ;) (if_statement "if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }" if (parenthesized_expression "(uVar14 == 0xffffffff)" ( (binary_expression "uVar14 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }" { (expression_statement "(**(code **)(puVar46 + 0x28520))(piVar17);" (call_expression "(**(code **)(puVar46 + 0x28520))(piVar17)" (parenthesized_expression "(**(code **)(puVar46 + 0x28520))" ( (pointer_expression "**(code **)(puVar46 + 0x28520)" * (pointer_expression "*(code **)(puVar46 + 0x28520)" * (cast_expression "(code **)(puVar46 + 0x28520)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar46 + 0x28520)" ( (binary_expression "puVar46 + 0x28520" identifier + number_literal) ))))) )) (argument_list "(piVar17)" ( identifier ))) ;) (expression_statement "(**(code **)(puVar46 + 0x28520))(piStack_1ec);" (call_expression "(**(code **)(puVar46 + 0x28520))(piStack_1ec)" (parenthesized_expression "(**(code **)(puVar46 + 0x28520))" ( (pointer_expression "**(code **)(puVar46 + 0x28520)" * (pointer_expression "*(code **)(puVar46 + 0x28520)" * (cast_expression "(code **)(puVar46 + 0x28520)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar46 + 0x28520)" ( (binary_expression "puVar46 + 0x28520" identifier + number_literal) ))))) )) (argument_list "(piStack_1ec)" ( identifier ))) ;) (goto_statement "goto LAB_0004e2d4;" goto statement_identifier ;) })) (expression_statement "iVar30 = piVar33[-1];" (assignment_expression "iVar30 = piVar33[-1]" identifier = (subscript_expression "piVar33[-1]" identifier [ number_literal ])) ;) (if_statement "if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;" if (parenthesized_expression "((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0))" ( (binary_expression "(iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)" (parenthesized_expression "(iVar30 != 0)" ( (binary_expression "iVar30 != 0" identifier != number_literal) )) && (parenthesized_expression "((*(byte *)(iVar30 + 0x34) & 8) != 0)" ( (binary_expression "(*(byte *)(iVar30 + 0x34) & 8) != 0" (parenthesized_expression "(*(byte *)(iVar30 + 0x34) & 8)" ( (binary_expression "*(byte *)(iVar30 + 0x34) & 8" (pointer_expression "*(byte *)(iVar30 + 0x34)" * (cast_expression "(byte *)(iVar30 + 0x34)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar30 + 0x34)" ( (binary_expression "iVar30 + 0x34" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) (break_statement "break;" break ;)) (expression_statement "piVar33 = piVar33 + -1;" (assignment_expression "piVar33 = piVar33 + -1" identifier = (binary_expression "piVar33 + -1" identifier + number_literal)) ;) (expression_statement "uStack_1f0 = uVar14;" (assignment_expression "uStack_1f0 = uVar14" identifier = identifier) ;) })) (expression_statement "iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       );" (assignment_expression "iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       )" identifier = (call_expression "(*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       )" (parenthesized_expression "(*pcVar45)" ( (pointer_expression "*pcVar45" * identifier) )) (argument_list "(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       )" ( (pointer_expression "&puStack_144" & identifier) , (pointer_expression "*(undefined4 *)(iVar30 + 8)" * (cast_expression "(undefined4 *)(iVar30 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar30 + 8)" ( (binary_expression "iVar30 + 8" identifier + number_literal) )))) , (binary_expression "iVar30 + 0xc" identifier + number_literal) , identifier )))) ;) })) }))) (expression_statement "(**(code **)(puVar46 + 0x28520))(piVar17);" (call_expression "(**(code **)(puVar46 + 0x28520))(piVar17)" (parenthesized_expression "(**(code **)(puVar46 + 0x28520))" ( (pointer_expression "**(code **)(puVar46 + 0x28520)" * (pointer_expression "*(code **)(puVar46 + 0x28520)" * (cast_expression "(code **)(puVar46 + 0x28520)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar46 + 0x28520)" ( (binary_expression "puVar46 + 0x28520" identifier + number_literal) ))))) )) (argument_list "(piVar17)" ( identifier ))) ;) (expression_statement "(**(code **)(puVar46 + 0x28520))(piStack_1ec);" (call_expression "(**(code **)(puVar46 + 0x28520))(piStack_1ec)" (parenthesized_expression "(**(code **)(puVar46 + 0x28520))" ( (pointer_expression "**(code **)(puVar46 + 0x28520)" * (pointer_expression "*(code **)(puVar46 + 0x28520)" * (cast_expression "(code **)(puVar46 + 0x28520)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar46 + 0x28520)" ( (binary_expression "puVar46 + 0x28520" identifier + number_literal) ))))) )) (argument_list "(piStack_1ec)" ( identifier ))) ;) (expression_statement "piVar17 = piStack_e0;" (assignment_expression "piVar17 = piStack_e0" identifier = identifier) ;) (if_statement "if (uStack_1e4 == 1) goto LAB_0004e2d4;" if (parenthesized_expression "(uStack_1e4 == 1)" ( (binary_expression "uStack_1e4 == 1" identifier == number_literal) )) (goto_statement "goto LAB_0004e2d4;" goto statement_identifier ;)) (goto_statement "goto LAB_0004dbbc;" goto statement_identifier ;) })) (expression_statement "uStack_1e4 = 0xc;" (assignment_expression "uStack_1e4 = 0xc" identifier = number_literal) ;) (goto_statement "goto LAB_0004dbbc;" goto statement_identifier ;) }))) }))) (labeled_statement "LAB_0004e7e0:\n          piVar17 = piStack_e0;" statement_identifier : (expression_statement "piVar17 = piStack_e0;" (assignment_expression "piVar17 = piStack_e0" identifier = identifier) ;)) (expression_statement "uStack_1e4 = uVar11;" (assignment_expression "uStack_1e4 = uVar11" identifier = identifier) ;) (if_statement "if (local_78 == (uint *)0x0) goto LAB_0004dbbc;" if (parenthesized_expression "(local_78 == (uint *)0x0)" ( (binary_expression "local_78 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004dbbc;" goto statement_identifier ;)) (expression_statement "puVar23 = ppuVar24[7];" (assignment_expression "puVar23 = ppuVar24[7]" identifier = (subscript_expression "ppuVar24[7]" identifier [ number_literal ])) ;) (if_statement "if (bVar1) {\n            piVar17 = piStack_74 + 2;\n            do {\n              piVar17[1] = -1;\n              piVar33 = piVar17 + 2;\n              *piVar17 = -1;\n              piVar17 = piVar33;\n            } while (piStack_74 + (int)local_78 * 2 != piVar33);\n            *piStack_74 = 0;\n            piStack_74[1] = uStack_e8;\n            if (((uint)puVar23 & 0x8000000) == 0) {\n              if (*(char *)(puVar43 + 0x16) < '\0') {\n                bVar22 = 0 < (int)puVar43[0x13];\n              }\n              else {\n                bVar22 = false;\n              }\n              uStack_1e4 = FUN_0004bc00(ppuVar24,&puStack_144,local_78,piStack_74,bVar22);\n              piVar17 = piStack_e0;\n              if (uStack_1e4 != 0) goto LAB_0004dbbc;\n              puVar23 = (uint *)*piStack_74;\n            }\n            else {\nLAB_0004e838:\n              puVar23 = (uint *)0x0;\n            }\n            puVar36 = (uint *)0x0;\n            piVar17 = piStack_74;\n            while( true ) {\n              if (puVar23 != (uint *)0xffffffff) {\n                puVar32 = (uint *)piVar17[1];\n                puVar39 = puVar23;\n                puVar38 = puVar32;\n                if (cStack_f8 != '\0') {\n                  puVar39 = puStack_124;\n                  if (puStack_128 != puVar23) {\n                    puVar39 = *(uint **)(iStack_138 + (int)puVar23 * 4);\n                  }\n                  *piVar17 = (int)puVar39;\n                  puVar38 = puStack_124;\n                  if (puStack_128 != puVar32) {\n                    puVar38 = *(uint **)(iStack_138 + (int)puVar32 * 4);\n                  }\n                }\n                *piVar17 = (int)puStack_16c + (int)puVar39;\n                piVar17[1] = (int)puStack_16c + (int)puVar38;\n              }\n              puVar36 = (uint *)((int)puVar36 + 1);\n              piVar17 = piVar17 + 2;\n              if (puVar36 == local_78) break;\n              puVar23 = (uint *)*piVar17;\n            }\n            if (0 < iStack_180) {\n              piVar17 = piStack_74 + (int)local_78 * 2;\n              do {\n                *piVar17 = -1;\n                piVar33 = piVar17 + 2;\n                piVar17[1] = -1;\n                piVar17 = piVar33;\n              } while (piStack_74 + (iStack_180 + (int)local_78) * 2 != piVar33);\n            }\n            piVar33 = (int *)puVar43[0x21];\n            piVar17 = piStack_e0;\n            uStack_1e4 = uVar11;\n            if (piVar33 != (int *)0x0) {\n              iVar29 = 0;\n              piVar3 = piStack_74;\n              do {\n                pcVar45 = *(code **)(puVar46 + 0x28520);\n                if (iVar29 == (int)local_78 + -1) goto LAB_0004dbc0;\n                if (*piVar33 != iVar29) {\n                  piVar3[2] = piStack_74[(*piVar33 + 1) * 2];\n                  piVar3[3] = piStack_74[(*piVar33 + 1) * 2 + 1];\n                }\n                iVar29 = iVar29 + 1;\n                piVar33 = piVar33 + 1;\n                piVar3 = piVar3 + 2;\n              } while( true );\n            }\n            goto LAB_0004dbbc;\n          }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n            piVar17 = piStack_74 + 2;\n            do {\n              piVar17[1] = -1;\n              piVar33 = piVar17 + 2;\n              *piVar17 = -1;\n              piVar17 = piVar33;\n            } while (piStack_74 + (int)local_78 * 2 != piVar33);\n            *piStack_74 = 0;\n            piStack_74[1] = uStack_e8;\n            if (((uint)puVar23 & 0x8000000) == 0) {\n              if (*(char *)(puVar43 + 0x16) < '\0') {\n                bVar22 = 0 < (int)puVar43[0x13];\n              }\n              else {\n                bVar22 = false;\n              }\n              uStack_1e4 = FUN_0004bc00(ppuVar24,&puStack_144,local_78,piStack_74,bVar22);\n              piVar17 = piStack_e0;\n              if (uStack_1e4 != 0) goto LAB_0004dbbc;\n              puVar23 = (uint *)*piStack_74;\n            }\n            else {\nLAB_0004e838:\n              puVar23 = (uint *)0x0;\n            }\n            puVar36 = (uint *)0x0;\n            piVar17 = piStack_74;\n            while( true ) {\n              if (puVar23 != (uint *)0xffffffff) {\n                puVar32 = (uint *)piVar17[1];\n                puVar39 = puVar23;\n                puVar38 = puVar32;\n                if (cStack_f8 != '\0') {\n                  puVar39 = puStack_124;\n                  if (puStack_128 != puVar23) {\n                    puVar39 = *(uint **)(iStack_138 + (int)puVar23 * 4);\n                  }\n                  *piVar17 = (int)puVar39;\n                  puVar38 = puStack_124;\n                  if (puStack_128 != puVar32) {\n                    puVar38 = *(uint **)(iStack_138 + (int)puVar32 * 4);\n                  }\n                }\n                *piVar17 = (int)puStack_16c + (int)puVar39;\n                piVar17[1] = (int)puStack_16c + (int)puVar38;\n              }\n              puVar36 = (uint *)((int)puVar36 + 1);\n              piVar17 = piVar17 + 2;\n              if (puVar36 == local_78) break;\n              puVar23 = (uint *)*piVar17;\n            }\n            if (0 < iStack_180) {\n              piVar17 = piStack_74 + (int)local_78 * 2;\n              do {\n                *piVar17 = -1;\n                piVar33 = piVar17 + 2;\n                piVar17[1] = -1;\n                piVar17 = piVar33;\n              } while (piStack_74 + (iStack_180 + (int)local_78) * 2 != piVar33);\n            }\n            piVar33 = (int *)puVar43[0x21];\n            piVar17 = piStack_e0;\n            uStack_1e4 = uVar11;\n            if (piVar33 != (int *)0x0) {\n              iVar29 = 0;\n              piVar3 = piStack_74;\n              do {\n                pcVar45 = *(code **)(puVar46 + 0x28520);\n                if (iVar29 == (int)local_78 + -1) goto LAB_0004dbc0;\n                if (*piVar33 != iVar29) {\n                  piVar3[2] = piStack_74[(*piVar33 + 1) * 2];\n                  piVar3[3] = piStack_74[(*piVar33 + 1) * 2 + 1];\n                }\n                iVar29 = iVar29 + 1;\n                piVar33 = piVar33 + 1;\n                piVar3 = piVar3 + 2;\n              } while( true );\n            }\n            goto LAB_0004dbbc;\n          }" { (expression_statement "piVar17 = piStack_74 + 2;" (assignment_expression "piVar17 = piStack_74 + 2" identifier = (binary_expression "piStack_74 + 2" identifier + number_literal)) ;) (do_statement "do {\n              piVar17[1] = -1;\n              piVar33 = piVar17 + 2;\n              *piVar17 = -1;\n              piVar17 = piVar33;\n            } while (piStack_74 + (int)local_78 * 2 != piVar33);" do (compound_statement "{\n              piVar17[1] = -1;\n              piVar33 = piVar17 + 2;\n              *piVar17 = -1;\n              piVar17 = piVar33;\n            }" { (expression_statement "piVar17[1] = -1;" (assignment_expression "piVar17[1] = -1" (subscript_expression "piVar17[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar33 = piVar17 + 2;" (assignment_expression "piVar33 = piVar17 + 2" identifier = (binary_expression "piVar17 + 2" identifier + number_literal)) ;) (expression_statement "*piVar17 = -1;" (assignment_expression "*piVar17 = -1" (pointer_expression "*piVar17" * identifier) = number_literal) ;) (expression_statement "piVar17 = piVar33;" (assignment_expression "piVar17 = piVar33" identifier = identifier) ;) }) while (parenthesized_expression "(piStack_74 + (int)local_78 * 2 != piVar33)" ( (binary_expression "piStack_74 + (int)local_78 * 2 != piVar33" (binary_expression "piStack_74 + (int)local_78 * 2" identifier + (binary_expression "(int)local_78 * 2" (cast_expression "(int)local_78" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) != identifier) )) ;) (expression_statement "*piStack_74 = 0;" (assignment_expression "*piStack_74 = 0" (pointer_expression "*piStack_74" * identifier) = number_literal) ;) (expression_statement "piStack_74[1] = uStack_e8;" (assignment_expression "piStack_74[1] = uStack_e8" (subscript_expression "piStack_74[1]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (((uint)puVar23 & 0x8000000) == 0) {\n              if (*(char *)(puVar43 + 0x16) < '\0') {\n                bVar22 = 0 < (int)puVar43[0x13];\n              }\n              else {\n                bVar22 = false;\n              }\n              uStack_1e4 = FUN_0004bc00(ppuVar24,&puStack_144,local_78,piStack_74,bVar22);\n              piVar17 = piStack_e0;\n              if (uStack_1e4 != 0) goto LAB_0004dbbc;\n              puVar23 = (uint *)*piStack_74;\n            }\n            else {\nLAB_0004e838:\n              puVar23 = (uint *)0x0;\n            }" if (parenthesized_expression "(((uint)puVar23 & 0x8000000) == 0)" ( (binary_expression "((uint)puVar23 & 0x8000000) == 0" (parenthesized_expression "((uint)puVar23 & 0x8000000)" ( (binary_expression "(uint)puVar23 & 0x8000000" (cast_expression "(uint)puVar23" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n              if (*(char *)(puVar43 + 0x16) < '\0') {\n                bVar22 = 0 < (int)puVar43[0x13];\n              }\n              else {\n                bVar22 = false;\n              }\n              uStack_1e4 = FUN_0004bc00(ppuVar24,&puStack_144,local_78,piStack_74,bVar22);\n              piVar17 = piStack_e0;\n              if (uStack_1e4 != 0) goto LAB_0004dbbc;\n              puVar23 = (uint *)*piStack_74;\n            }" { (if_statement "if (*(char *)(puVar43 + 0x16) < '\0') {\n                bVar22 = 0 < (int)puVar43[0x13];\n              }\n              else {\n                bVar22 = false;\n              }" if (parenthesized_expression "(*(char *)(puVar43 + 0x16) < '\0')" ( (binary_expression "*(char *)(puVar43 + 0x16) < '\0'" (pointer_expression "*(char *)(puVar43 + 0x16)" * (cast_expression "(char *)(puVar43 + 0x16)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar43 + 0x16)" ( (binary_expression "puVar43 + 0x16" identifier + number_literal) )))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                bVar22 = 0 < (int)puVar43[0x13];\n              }" { (expression_statement "bVar22 = 0 < (int)puVar43[0x13];" (assignment_expression "bVar22 = 0 < (int)puVar43[0x13]" identifier = (binary_expression "0 < (int)puVar43[0x13]" number_literal < (cast_expression "(int)puVar43[0x13]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar43[0x13]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n                bVar22 = false;\n              }" else (compound_statement "{\n                bVar22 = false;\n              }" { (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" identifier = false) ;) }))) (expression_statement "uStack_1e4 = FUN_0004bc00(ppuVar24,&puStack_144,local_78,piStack_74,bVar22);" (assignment_expression "uStack_1e4 = FUN_0004bc00(ppuVar24,&puStack_144,local_78,piStack_74,bVar22)" identifier = (call_expression "FUN_0004bc00(ppuVar24,&puStack_144,local_78,piStack_74,bVar22)" identifier (argument_list "(ppuVar24,&puStack_144,local_78,piStack_74,bVar22)" ( identifier , (pointer_expression "&puStack_144" & identifier) , identifier , identifier , identifier )))) ;) (expression_statement "piVar17 = piStack_e0;" (assignment_expression "piVar17 = piStack_e0" identifier = identifier) ;) (if_statement "if (uStack_1e4 != 0) goto LAB_0004dbbc;" if (parenthesized_expression "(uStack_1e4 != 0)" ( (binary_expression "uStack_1e4 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0004dbbc;" goto statement_identifier ;)) (expression_statement "puVar23 = (uint *)*piStack_74;" (assignment_expression "puVar23 = (uint *)*piStack_74" identifier = (cast_expression "(uint *)*piStack_74" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piStack_74" * identifier))) ;) }) (else_clause "else {\nLAB_0004e838:\n              puVar23 = (uint *)0x0;\n            }" else (compound_statement "{\nLAB_0004e838:\n              puVar23 = (uint *)0x0;\n            }" { (labeled_statement "LAB_0004e838:\n              puVar23 = (uint *)0x0;" statement_identifier : (expression_statement "puVar23 = (uint *)0x0;" (assignment_expression "puVar23 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) }))) (expression_statement "puVar36 = (uint *)0x0;" (assignment_expression "puVar36 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar17 = piStack_74;" (assignment_expression "piVar17 = piStack_74" identifier = identifier) ;) (while_statement "while( true ) {\n              if (puVar23 != (uint *)0xffffffff) {\n                puVar32 = (uint *)piVar17[1];\n                puVar39 = puVar23;\n                puVar38 = puVar32;\n                if (cStack_f8 != '\0') {\n                  puVar39 = puStack_124;\n                  if (puStack_128 != puVar23) {\n                    puVar39 = *(uint **)(iStack_138 + (int)puVar23 * 4);\n                  }\n                  *piVar17 = (int)puVar39;\n                  puVar38 = puStack_124;\n                  if (puStack_128 != puVar32) {\n                    puVar38 = *(uint **)(iStack_138 + (int)puVar32 * 4);\n                  }\n                }\n                *piVar17 = (int)puStack_16c + (int)puVar39;\n                piVar17[1] = (int)puStack_16c + (int)puVar38;\n              }\n              puVar36 = (uint *)((int)puVar36 + 1);\n              piVar17 = piVar17 + 2;\n              if (puVar36 == local_78) break;\n              puVar23 = (uint *)*piVar17;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              if (puVar23 != (uint *)0xffffffff) {\n                puVar32 = (uint *)piVar17[1];\n                puVar39 = puVar23;\n                puVar38 = puVar32;\n                if (cStack_f8 != '\0') {\n                  puVar39 = puStack_124;\n                  if (puStack_128 != puVar23) {\n                    puVar39 = *(uint **)(iStack_138 + (int)puVar23 * 4);\n                  }\n                  *piVar17 = (int)puVar39;\n                  puVar38 = puStack_124;\n                  if (puStack_128 != puVar32) {\n                    puVar38 = *(uint **)(iStack_138 + (int)puVar32 * 4);\n                  }\n                }\n                *piVar17 = (int)puStack_16c + (int)puVar39;\n                piVar17[1] = (int)puStack_16c + (int)puVar38;\n              }\n              puVar36 = (uint *)((int)puVar36 + 1);\n              piVar17 = piVar17 + 2;\n              if (puVar36 == local_78) break;\n              puVar23 = (uint *)*piVar17;\n            }" { (if_statement "if (puVar23 != (uint *)0xffffffff) {\n                puVar32 = (uint *)piVar17[1];\n                puVar39 = puVar23;\n                puVar38 = puVar32;\n                if (cStack_f8 != '\0') {\n                  puVar39 = puStack_124;\n                  if (puStack_128 != puVar23) {\n                    puVar39 = *(uint **)(iStack_138 + (int)puVar23 * 4);\n                  }\n                  *piVar17 = (int)puVar39;\n                  puVar38 = puStack_124;\n                  if (puStack_128 != puVar32) {\n                    puVar38 = *(uint **)(iStack_138 + (int)puVar32 * 4);\n                  }\n                }\n                *piVar17 = (int)puStack_16c + (int)puVar39;\n                piVar17[1] = (int)puStack_16c + (int)puVar38;\n              }" if (parenthesized_expression "(puVar23 != (uint *)0xffffffff)" ( (binary_expression "puVar23 != (uint *)0xffffffff" identifier != (cast_expression "(uint *)0xffffffff" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                puVar32 = (uint *)piVar17[1];\n                puVar39 = puVar23;\n                puVar38 = puVar32;\n                if (cStack_f8 != '\0') {\n                  puVar39 = puStack_124;\n                  if (puStack_128 != puVar23) {\n                    puVar39 = *(uint **)(iStack_138 + (int)puVar23 * 4);\n                  }\n                  *piVar17 = (int)puVar39;\n                  puVar38 = puStack_124;\n                  if (puStack_128 != puVar32) {\n                    puVar38 = *(uint **)(iStack_138 + (int)puVar32 * 4);\n                  }\n                }\n                *piVar17 = (int)puStack_16c + (int)puVar39;\n                piVar17[1] = (int)puStack_16c + (int)puVar38;\n              }" { (expression_statement "puVar32 = (uint *)piVar17[1];" (assignment_expression "puVar32 = (uint *)piVar17[1]" identifier = (cast_expression "(uint *)piVar17[1]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar17[1]" identifier [ number_literal ]))) ;) (expression_statement "puVar39 = puVar23;" (assignment_expression "puVar39 = puVar23" identifier = identifier) ;) (expression_statement "puVar38 = puVar32;" (assignment_expression "puVar38 = puVar32" identifier = identifier) ;) (if_statement "if (cStack_f8 != '\0') {\n                  puVar39 = puStack_124;\n                  if (puStack_128 != puVar23) {\n                    puVar39 = *(uint **)(iStack_138 + (int)puVar23 * 4);\n                  }\n                  *piVar17 = (int)puVar39;\n                  puVar38 = puStack_124;\n                  if (puStack_128 != puVar32) {\n                    puVar38 = *(uint **)(iStack_138 + (int)puVar32 * 4);\n                  }\n                }" if (parenthesized_expression "(cStack_f8 != '\0')" ( (binary_expression "cStack_f8 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                  puVar39 = puStack_124;\n                  if (puStack_128 != puVar23) {\n                    puVar39 = *(uint **)(iStack_138 + (int)puVar23 * 4);\n                  }\n                  *piVar17 = (int)puVar39;\n                  puVar38 = puStack_124;\n                  if (puStack_128 != puVar32) {\n                    puVar38 = *(uint **)(iStack_138 + (int)puVar32 * 4);\n                  }\n                }" { (expression_statement "puVar39 = puStack_124;" (assignment_expression "puVar39 = puStack_124" identifier = identifier) ;) (if_statement "if (puStack_128 != puVar23) {\n                    puVar39 = *(uint **)(iStack_138 + (int)puVar23 * 4);\n                  }" if (parenthesized_expression "(puStack_128 != puVar23)" ( (binary_expression "puStack_128 != puVar23" identifier != identifier) )) (compound_statement "{\n                    puVar39 = *(uint **)(iStack_138 + (int)puVar23 * 4);\n                  }" { (expression_statement "puVar39 = *(uint **)(iStack_138 + (int)puVar23 * 4);" (assignment_expression "puVar39 = *(uint **)(iStack_138 + (int)puVar23 * 4)" identifier = (pointer_expression "*(uint **)(iStack_138 + (int)puVar23 * 4)" * (cast_expression "(uint **)(iStack_138 + (int)puVar23 * 4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iStack_138 + (int)puVar23 * 4)" ( (binary_expression "iStack_138 + (int)puVar23 * 4" identifier + (binary_expression "(int)puVar23 * 4" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))))) ;) })) (expression_statement "*piVar17 = (int)puVar39;" (assignment_expression "*piVar17 = (int)puVar39" (pointer_expression "*piVar17" * identifier) = (cast_expression "(int)puVar39" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "puVar38 = puStack_124;" (assignment_expression "puVar38 = puStack_124" identifier = identifier) ;) (if_statement "if (puStack_128 != puVar32) {\n                    puVar38 = *(uint **)(iStack_138 + (int)puVar32 * 4);\n                  }" if (parenthesized_expression "(puStack_128 != puVar32)" ( (binary_expression "puStack_128 != puVar32" identifier != identifier) )) (compound_statement "{\n                    puVar38 = *(uint **)(iStack_138 + (int)puVar32 * 4);\n                  }" { (expression_statement "puVar38 = *(uint **)(iStack_138 + (int)puVar32 * 4);" (assignment_expression "puVar38 = *(uint **)(iStack_138 + (int)puVar32 * 4)" identifier = (pointer_expression "*(uint **)(iStack_138 + (int)puVar32 * 4)" * (cast_expression "(uint **)(iStack_138 + (int)puVar32 * 4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iStack_138 + (int)puVar32 * 4)" ( (binary_expression "iStack_138 + (int)puVar32 * 4" identifier + (binary_expression "(int)puVar32 * 4" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))))) ;) })) })) (expression_statement "*piVar17 = (int)puStack_16c + (int)puVar39;" (assignment_expression "*piVar17 = (int)puStack_16c + (int)puVar39" (pointer_expression "*piVar17" * identifier) = (binary_expression "(int)puStack_16c + (int)puVar39" (cast_expression "(int)puStack_16c" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)puVar39" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "piVar17[1] = (int)puStack_16c + (int)puVar38;" (assignment_expression "piVar17[1] = (int)puStack_16c + (int)puVar38" (subscript_expression "piVar17[1]" identifier [ number_literal ]) = (binary_expression "(int)puStack_16c + (int)puVar38" (cast_expression "(int)puStack_16c" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)puVar38" ( (type_descriptor "int" primitive_type) ) identifier))) ;) })) (expression_statement "puVar36 = (uint *)((int)puVar36 + 1);" (assignment_expression "puVar36 = (uint *)((int)puVar36 + 1)" identifier = (cast_expression "(uint *)((int)puVar36 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar36 + 1)" ( (binary_expression "(int)puVar36 + 1" (cast_expression "(int)puVar36" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "piVar17 = piVar17 + 2;" (assignment_expression "piVar17 = piVar17 + 2" identifier = (binary_expression "piVar17 + 2" identifier + number_literal)) ;) (if_statement "if (puVar36 == local_78) break;" if (parenthesized_expression "(puVar36 == local_78)" ( (binary_expression "puVar36 == local_78" identifier == identifier) )) (break_statement "break;" break ;)) (expression_statement "puVar23 = (uint *)*piVar17;" (assignment_expression "puVar23 = (uint *)*piVar17" identifier = (cast_expression "(uint *)*piVar17" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar17" * identifier))) ;) })) (if_statement "if (0 < iStack_180) {\n              piVar17 = piStack_74 + (int)local_78 * 2;\n              do {\n                *piVar17 = -1;\n                piVar33 = piVar17 + 2;\n                piVar17[1] = -1;\n                piVar17 = piVar33;\n              } while (piStack_74 + (iStack_180 + (int)local_78) * 2 != piVar33);\n            }" if (parenthesized_expression "(0 < iStack_180)" ( (binary_expression "0 < iStack_180" number_literal < identifier) )) (compound_statement "{\n              piVar17 = piStack_74 + (int)local_78 * 2;\n              do {\n                *piVar17 = -1;\n                piVar33 = piVar17 + 2;\n                piVar17[1] = -1;\n                piVar17 = piVar33;\n              } while (piStack_74 + (iStack_180 + (int)local_78) * 2 != piVar33);\n            }" { (expression_statement "piVar17 = piStack_74 + (int)local_78 * 2;" (assignment_expression "piVar17 = piStack_74 + (int)local_78 * 2" identifier = (binary_expression "piStack_74 + (int)local_78 * 2" identifier + (binary_expression "(int)local_78 * 2" (cast_expression "(int)local_78" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (do_statement "do {\n                *piVar17 = -1;\n                piVar33 = piVar17 + 2;\n                piVar17[1] = -1;\n                piVar17 = piVar33;\n              } while (piStack_74 + (iStack_180 + (int)local_78) * 2 != piVar33);" do (compound_statement "{\n                *piVar17 = -1;\n                piVar33 = piVar17 + 2;\n                piVar17[1] = -1;\n                piVar17 = piVar33;\n              }" { (expression_statement "*piVar17 = -1;" (assignment_expression "*piVar17 = -1" (pointer_expression "*piVar17" * identifier) = number_literal) ;) (expression_statement "piVar33 = piVar17 + 2;" (assignment_expression "piVar33 = piVar17 + 2" identifier = (binary_expression "piVar17 + 2" identifier + number_literal)) ;) (expression_statement "piVar17[1] = -1;" (assignment_expression "piVar17[1] = -1" (subscript_expression "piVar17[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar17 = piVar33;" (assignment_expression "piVar17 = piVar33" identifier = identifier) ;) }) while (parenthesized_expression "(piStack_74 + (iStack_180 + (int)local_78) * 2 != piVar33)" ( (binary_expression "piStack_74 + (iStack_180 + (int)local_78) * 2 != piVar33" (binary_expression "piStack_74 + (iStack_180 + (int)local_78) * 2" identifier + (binary_expression "(iStack_180 + (int)local_78) * 2" (parenthesized_expression "(iStack_180 + (int)local_78)" ( (binary_expression "iStack_180 + (int)local_78" identifier + (cast_expression "(int)local_78" ( (type_descriptor "int" primitive_type) ) identifier)) )) * number_literal)) != identifier) )) ;) })) (expression_statement "piVar33 = (int *)puVar43[0x21];" (assignment_expression "piVar33 = (int *)puVar43[0x21]" identifier = (cast_expression "(int *)puVar43[0x21]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar43[0x21]" identifier [ number_literal ]))) ;) (expression_statement "piVar17 = piStack_e0;" (assignment_expression "piVar17 = piStack_e0" identifier = identifier) ;) (expression_statement "uStack_1e4 = uVar11;" (assignment_expression "uStack_1e4 = uVar11" identifier = identifier) ;) (if_statement "if (piVar33 != (int *)0x0) {\n              iVar29 = 0;\n              piVar3 = piStack_74;\n              do {\n                pcVar45 = *(code **)(puVar46 + 0x28520);\n                if (iVar29 == (int)local_78 + -1) goto LAB_0004dbc0;\n                if (*piVar33 != iVar29) {\n                  piVar3[2] = piStack_74[(*piVar33 + 1) * 2];\n                  piVar3[3] = piStack_74[(*piVar33 + 1) * 2 + 1];\n                }\n                iVar29 = iVar29 + 1;\n                piVar33 = piVar33 + 1;\n                piVar3 = piVar3 + 2;\n              } while( true );\n            }" if (parenthesized_expression "(piVar33 != (int *)0x0)" ( (binary_expression "piVar33 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              iVar29 = 0;\n              piVar3 = piStack_74;\n              do {\n                pcVar45 = *(code **)(puVar46 + 0x28520);\n                if (iVar29 == (int)local_78 + -1) goto LAB_0004dbc0;\n                if (*piVar33 != iVar29) {\n                  piVar3[2] = piStack_74[(*piVar33 + 1) * 2];\n                  piVar3[3] = piStack_74[(*piVar33 + 1) * 2 + 1];\n                }\n                iVar29 = iVar29 + 1;\n                piVar33 = piVar33 + 1;\n                piVar3 = piVar3 + 2;\n              } while( true );\n            }" { (expression_statement "iVar29 = 0;" (assignment_expression "iVar29 = 0" identifier = number_literal) ;) (expression_statement "piVar3 = piStack_74;" (assignment_expression "piVar3 = piStack_74" identifier = identifier) ;) (do_statement "do {\n                pcVar45 = *(code **)(puVar46 + 0x28520);\n                if (iVar29 == (int)local_78 + -1) goto LAB_0004dbc0;\n                if (*piVar33 != iVar29) {\n                  piVar3[2] = piStack_74[(*piVar33 + 1) * 2];\n                  piVar3[3] = piStack_74[(*piVar33 + 1) * 2 + 1];\n                }\n                iVar29 = iVar29 + 1;\n                piVar33 = piVar33 + 1;\n                piVar3 = piVar3 + 2;\n              } while( true );" do (compound_statement "{\n                pcVar45 = *(code **)(puVar46 + 0x28520);\n                if (iVar29 == (int)local_78 + -1) goto LAB_0004dbc0;\n                if (*piVar33 != iVar29) {\n                  piVar3[2] = piStack_74[(*piVar33 + 1) * 2];\n                  piVar3[3] = piStack_74[(*piVar33 + 1) * 2 + 1];\n                }\n                iVar29 = iVar29 + 1;\n                piVar33 = piVar33 + 1;\n                piVar3 = piVar3 + 2;\n              }" { (expression_statement "pcVar45 = *(code **)(puVar46 + 0x28520);" (assignment_expression "pcVar45 = *(code **)(puVar46 + 0x28520)" identifier = (pointer_expression "*(code **)(puVar46 + 0x28520)" * (cast_expression "(code **)(puVar46 + 0x28520)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar46 + 0x28520)" ( (binary_expression "puVar46 + 0x28520" identifier + number_literal) ))))) ;) (if_statement "if (iVar29 == (int)local_78 + -1) goto LAB_0004dbc0;" if (parenthesized_expression "(iVar29 == (int)local_78 + -1)" ( (binary_expression "iVar29 == (int)local_78 + -1" identifier == (binary_expression "(int)local_78 + -1" (cast_expression "(int)local_78" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) )) (goto_statement "goto LAB_0004dbc0;" goto statement_identifier ;)) (if_statement "if (*piVar33 != iVar29) {\n                  piVar3[2] = piStack_74[(*piVar33 + 1) * 2];\n                  piVar3[3] = piStack_74[(*piVar33 + 1) * 2 + 1];\n                }" if (parenthesized_expression "(*piVar33 != iVar29)" ( (binary_expression "*piVar33 != iVar29" (pointer_expression "*piVar33" * identifier) != identifier) )) (compound_statement "{\n                  piVar3[2] = piStack_74[(*piVar33 + 1) * 2];\n                  piVar3[3] = piStack_74[(*piVar33 + 1) * 2 + 1];\n                }" { (expression_statement "piVar3[2] = piStack_74[(*piVar33 + 1) * 2];" (assignment_expression "piVar3[2] = piStack_74[(*piVar33 + 1) * 2]" (subscript_expression "piVar3[2]" identifier [ number_literal ]) = (subscript_expression "piStack_74[(*piVar33 + 1) * 2]" identifier [ (binary_expression "(*piVar33 + 1) * 2" (parenthesized_expression "(*piVar33 + 1)" ( (binary_expression "*piVar33 + 1" (pointer_expression "*piVar33" * identifier) + number_literal) )) * number_literal) ])) ;) (expression_statement "piVar3[3] = piStack_74[(*piVar33 + 1) * 2 + 1];" (assignment_expression "piVar3[3] = piStack_74[(*piVar33 + 1) * 2 + 1]" (subscript_expression "piVar3[3]" identifier [ number_literal ]) = (subscript_expression "piStack_74[(*piVar33 + 1) * 2 + 1]" identifier [ (binary_expression "(*piVar33 + 1) * 2 + 1" (binary_expression "(*piVar33 + 1) * 2" (parenthesized_expression "(*piVar33 + 1)" ( (binary_expression "*piVar33 + 1" (pointer_expression "*piVar33" * identifier) + number_literal) )) * number_literal) + number_literal) ])) ;) })) (expression_statement "iVar29 = iVar29 + 1;" (assignment_expression "iVar29 = iVar29 + 1" identifier = (binary_expression "iVar29 + 1" identifier + number_literal)) ;) (expression_statement "piVar33 = piVar33 + 1;" (assignment_expression "piVar33 = piVar33 + 1" identifier = (binary_expression "piVar33 + 1" identifier + number_literal)) ;) (expression_statement "piVar3 = piVar3 + 2;" (assignment_expression "piVar3 = piVar3 + 2" identifier = (binary_expression "piVar3 + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (goto_statement "goto LAB_0004dbbc;" goto statement_identifier ;) })) (expression_statement "*piStack_74 = 0;" (assignment_expression "*piStack_74 = 0" (pointer_expression "*piStack_74" * identifier) = number_literal) ;) (expression_statement "piStack_74[1] = uStack_e8;" (assignment_expression "piStack_74[1] = uStack_e8" (subscript_expression "piStack_74[1]" identifier [ number_literal ]) = identifier) ;) (goto_statement "goto LAB_0004e838;" goto statement_identifier ;) })) (labeled_statement "LAB_0004e2d4:\n        FUN_00044db0(&puStack_144);" statement_identifier : (expression_statement "FUN_00044db0(&puStack_144);" (call_expression "FUN_00044db0(&puStack_144)" identifier (argument_list "(&puStack_144)" ( (pointer_expression "&puStack_144" & identifier) ))) ;)) (expression_statement "param_4 = puStack_16c;" (assignment_expression "param_4 = puStack_16c" identifier = identifier) ;) })) (expression_statement "param_4 = (uint *)((int)param_4 + iVar29);" (assignment_expression "param_4 = (uint *)((int)param_4 + iVar29)" identifier = (cast_expression "(uint *)((int)param_4 + iVar29)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_4 + iVar29)" ( (binary_expression "(int)param_4 + iVar29" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "puStack_16c = param_4;" (assignment_expression "puStack_16c = param_4" identifier = identifier) ;) (if_statement "if (((int)param_4 < (int)puVar23) ||\n         (iVar30 = iStack_12c, puVar36 = puStack_88, (int)puVar38 < (int)param_4)) break;" if (parenthesized_expression "(((int)param_4 < (int)puVar23) ||\n         (iVar30 = iStack_12c, puVar36 = puStack_88, (int)puVar38 < (int)param_4))" ( (binary_expression "((int)param_4 < (int)puVar23) ||\n         (iVar30 = iStack_12c, puVar36 = puStack_88, (int)puVar38 < (int)param_4)" (parenthesized_expression "((int)param_4 < (int)puVar23)" ( (binary_expression "(int)param_4 < (int)puVar23" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier)) )) || (parenthesized_expression "(iVar30 = iStack_12c, puVar36 = puStack_88, (int)puVar38 < (int)param_4)" ( (comma_expression "iVar30 = iStack_12c, puVar36 = puStack_88, (int)puVar38 < (int)param_4" (assignment_expression "iVar30 = iStack_12c" identifier = identifier) , (comma_expression "puVar36 = puStack_88, (int)puVar38 < (int)param_4" (assignment_expression "puVar36 = puStack_88" identifier = identifier) , (binary_expression "(int)puVar38 < (int)param_4" (cast_expression "(int)puVar38" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier)))) ))) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "( true )" ( true )) ;) }))) (labeled_statement "LAB_0004df68:\n  uStack_1e4 = 1;" statement_identifier : (expression_statement "uStack_1e4 = 1;" (assignment_expression "uStack_1e4 = 1" identifier = number_literal) ;)) (expression_statement "piVar17 = piStack_e0;" (assignment_expression "piVar17 = piStack_e0" identifier = identifier) ;) (goto_statement "goto LAB_0004dbbc;" goto statement_identifier ;) (labeled_statement "code_r0x0004ea7c:\n  uStack_1e4 = uStack_168;" statement_identifier : (expression_statement "uStack_1e4 = uStack_168;" (assignment_expression "uStack_1e4 = uStack_168" identifier = identifier) ;)) (expression_statement "piVar17 = piStack_e0;" (assignment_expression "piVar17 = piStack_e0" identifier = identifier) ;) (if_statement "if (uStack_168 == 0xc) goto LAB_0004dbbc;" if (parenthesized_expression "(uStack_168 == 0xc)" ( (binary_expression "uStack_168 == 0xc" identifier == number_literal) )) (goto_statement "goto LAB_0004dbbc;" goto statement_identifier ;)) (expression_statement "uVar20 = 0x435;" (assignment_expression "uVar20 = 0x435" identifier = number_literal) ;) (labeled_statement "LAB_0004ea9c:\n  (**(code **)(puVar46 + 0x282f4))\n            (*(int *)(puVar46 + 0x27edc) + 0x2b30,*(int *)(puVar46 + 0x27edc) + 0x2ac0,uVar20,\n             *(int *)(puVar46 + 0x27edc) + 0x3030);" statement_identifier : (expression_statement "(**(code **)(puVar46 + 0x282f4))\n            (*(int *)(puVar46 + 0x27edc) + 0x2b30,*(int *)(puVar46 + 0x27edc) + 0x2ac0,uVar20,\n             *(int *)(puVar46 + 0x27edc) + 0x3030);" (call_expression "(**(code **)(puVar46 + 0x282f4))\n            (*(int *)(puVar46 + 0x27edc) + 0x2b30,*(int *)(puVar46 + 0x27edc) + 0x2ac0,uVar20,\n             *(int *)(puVar46 + 0x27edc) + 0x3030)" (parenthesized_expression "(**(code **)(puVar46 + 0x282f4))" ( (pointer_expression "**(code **)(puVar46 + 0x282f4)" * (pointer_expression "*(code **)(puVar46 + 0x282f4)" * (cast_expression "(code **)(puVar46 + 0x282f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar46 + 0x282f4)" ( (binary_expression "puVar46 + 0x282f4" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar46 + 0x27edc) + 0x2b30,*(int *)(puVar46 + 0x27edc) + 0x2ac0,uVar20,\n             *(int *)(puVar46 + 0x27edc) + 0x3030)" ( (binary_expression "*(int *)(puVar46 + 0x27edc) + 0x2b30" (pointer_expression "*(int *)(puVar46 + 0x27edc)" * (cast_expression "(int *)(puVar46 + 0x27edc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar46 + 0x27edc)" ( (binary_expression "puVar46 + 0x27edc" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar46 + 0x27edc) + 0x2ac0" (pointer_expression "*(int *)(puVar46 + 0x27edc)" * (cast_expression "(int *)(puVar46 + 0x27edc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar46 + 0x27edc)" ( (binary_expression "puVar46 + 0x27edc" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(puVar46 + 0x27edc) + 0x3030" (pointer_expression "*(int *)(puVar46 + 0x27edc)" * (cast_expression "(int *)(puVar46 + 0x27edc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar46 + 0x27edc)" ( (binary_expression "puVar46 + 0x27edc" identifier + number_literal) )))) + number_literal) ))) ;)) (expression_statement "uVar6 = extraout_v1;" (assignment_expression "uVar6 = extraout_v1" identifier = identifier) ;) (expression_statement "ppuVar24 = &puStack_144;" (assignment_expression "ppuVar24 = &puStack_144" identifier = (pointer_expression "&puStack_144" & identifier)) ;) (labeled_statement "LAB_0004eabc:\n  uVar31 = 8;" statement_identifier : (expression_statement "uVar31 = 8;" (assignment_expression "uVar31 = 8" identifier = number_literal) ;)) (goto_statement "goto LAB_0004dab0;" goto statement_identifier ;) })))
(translation_unit "/* WARNING: Removing unreachable block (ram,0x0004da3c) */\n/* WARNING: Type propagation algorithm not settling */\n\nreg_errcode_t sift_states_backward(re_match_context_t *mctx,re_sift_context_t *sctx)\n\n{\n  byte bVar1;\n  bool bVar2;\n  bool bVar3;\n  bool bVar4;\n  bool bVar5;\n  re_dfastate_t *prVar6;\n  undefined3 extraout_var;\n  reg_errcode_t rVar7;\n  code *pcVar8;\n  code *pcVar9;\n  code *pcVar10;\n  _Bool _Var28;\n  int iVar11;\n  int *piVar12;\n  wint_t *pwVar13;\n  re_backref_cache_entry *prVar14;\n  uint uVar15;\n  re_dfa_t **pprVar16;\n  int iVar17;\n  re_dfastate_t *prVar18;\n  int iVar19;\n  int iVar20;\n  Idx IVar21;\n  re_dfastate_t **pprVar22;\n  char cVar29;\n  Idx *pIVar23;\n  int iVar24;\n  anon_union_4_2_9a799d16_for___pthread_mutex_s_5 aVar25;\n  regmatch_t *prVar26;\n  regmatch_t *prVar27;\n  bool bVar30;\n  re_match_context_t *preg;\n  int iVar31;\n  uint uVar32;\n  uint extraout_v1;\n  int iVar33;\n  int iVar34;\n  int iVar35;\n  re_bitset_ptr_t pbVar36;\n  uint uVar37;\n  re_dfastate_t *prVar38;\n  re_dfastate_t *prVar39;\n  re_token_t *prVar40;\n  undefined1 *new_buf_len;\n  uint uVar41;\n  re_dfa_t *prVar42;\n  re_dfa_t *prVar43;\n  re_dfa_t *in_a2;\n  re_node_set *src2;\n  undefined4 uVar44;\n  re_dfa_t *in_a3;\n  undefined1 *puVar45;\n  re_dfa_t *prVar46;\n  uchar *puVar47;\n  re_dfa_t *prVar48;\n  re_dfastate_t *prVar49;\n  Idx **nodes_1;\n  re_dfa_t *prVar50;\n  re_dfastate_t *prVar51;\n  re_dfa_t *unaff_s4;\n  re_dfastate_t *prVar52;\n  int unaff_s5;\n  re_dfastate_t *unaff_s6;\n  re_dfa_t *prVar53;\n  int iVar54;\n  re_dfa_t *unaff_s7;\n  code *pcVar55;\n  undefined *puVar56;\n  int unaff_s8;\n  re_dfastate_t *prStack_1f0;\n  re_dfastate_t **pprStack_1ec;\n  re_dfastate_t *prStack_1e4;\n  char *pcStack_1e0;\n  re_dfa_t **pprStack_1dc;\n  re_dfastate_t *prStack_1d0;\n  int iStack_180;\n  re_dfa_t *prStack_16c;\n  undefined1 auStack_168 [8];\n  re_sift_context_t rStack_160;\n  undefined1 auStack_144 [128];\n  int iStack_c4;\n  re_sub_match_top_t **pprStack_c0;\n  int iStack_bc;\n  re_dfa_t *prStack_b8;\n  re_sift_context_t *prStack_b4;\n  re_match_context_t *prStack_b0;\n  re_dfa_t *prStack_ac;\n  re_dfa_t *prStack_a8;\n  int iStack_a4;\n  re_dfastate_t *prStack_a0;\n  re_dfa_t *prStack_9c;\n  int iStack_98;\n  code *pcStack_94;\n  re_dfa_t *prStack_88;\n  re_dfa_t *in_stack_ffffff80;\n  re_dfa_t *prStack_7c;\n  re_dfa_t *prStack_78;\n  regmatch_t *prStack_74;\n  int iStack_64;\n  re_node_set cur_dest;\n  \n  puVar56 = PTR___stack_chk_guard_00075be8;\n  cur_dest.alloc = 1;\n  cur_dest.nelem = 1;\n  preg = *(re_match_context_t **)PTR___stack_chk_guard_00075be8;\n  prVar48 = (re_dfa_t *)sctx->last_str_idx;\n  prVar50 = (re_dfa_t *)sctx->last_node;\n  prVar46 = (re_dfa_t *)sctx;\n  cur_dest.elems = (Idx *)(*(code *)PTR_malloc_00075b2c)(4);\n  if (cur_dest.elems == (Idx *)0x0) {\n    rVar7 = _REG_ESPACE;\n  }\n  else {\n    *cur_dest.elems = (Idx)prVar50;\n    pcVar55 = (code *)(PTR_LAB_00075978 + -0x1248);\n    prVar46 = (re_dfa_t *)sctx;\n    in_a2 = prVar48;\n    in_a3 = (re_dfa_t *)&cur_dest;\n    rVar7 = update_cur_sifted_state(mctx,sctx,(Idx)prVar48,&cur_dest);\n    if (rVar7 == _REG_NOERROR) {\n      iStack_64 = 0;\n      if (0 < (int)prVar48) {\n        pcVar8 = (code *)(PTR_LAB_00075920 + 0x5610);\n        pcVar9 = (code *)(PTR_LAB_00075920 + 0x33f8);\n        pcVar10 = (code *)(PTR_LAB_00075920 + 0x5230);\n        do {\n          unaff_s7 = (re_dfa_t *)((int)prVar48 * 4);\n          if (*(int *)((int)unaff_s7->word_char + (int)(sctx->sifted_states + -0x18)) == 0) {\n            iStack_64 = iStack_64 + 1;\n            if (mctx->max_mb_elem_len < iStack_64) goto LAB_0004d6a0;\n          }\n          else {\n            iStack_64 = 0;\n            if (mctx->max_mb_elem_len < 0) {\nLAB_0004d6a0:\n              prVar46 = (re_dfa_t *)0x0;\n              in_a2 = unaff_s7;\n              (*(code *)PTR_memset_00075ad4)();\n              (*(code *)PTR_free_00075bfc)(cur_dest.elems);\n              rVar7 = _REG_NOERROR;\n              goto LAB_0004d644;\n            }\n          }\n          cur_dest.nelem = 0;\n          unaff_s6 = (mctx->state_log + (int)prVar48)[-1];\n          prVar48 = (re_dfa_t *)(prVar48[-1].lock.__size + 0x17);\n          if ((unaff_s6 != (re_dfastate_t *)0x0) &&\n             (unaff_s4 = mctx->dfa, 0 < (unaff_s6->non_eps_nodes).nelem)) {\n            unaff_s5 = 0;\n            do {\n              prVar50 = (re_dfa_t *)(unaff_s6->non_eps_nodes).elems[unaff_s5];\n              unaff_s8 = (int)prVar50 * 8;\n              prVar40 = unaff_s4->nodes + (int)prVar50;\n              if ((*(uint *)&prVar40->field_0x4 & 0x800) == 0) {\nLAB_0004d464:\n                _Var28 = check_node_accept(mctx,prVar40,(Idx)prVar48);\n                if ((CONCAT31(extraout_var,_Var28) != 0) &&\n                   (iVar11 = *(int *)((int)unaff_s7->word_char + (int)(sctx->sifted_states + -0x18))\n                   , iVar11 != 0)) {\n                  in_a2 = (re_dfa_t *)unaff_s4->nexts[(int)prVar50];\n                  iVar31 = (*pcVar10)(*(undefined4 *)(iVar11 + 8),iVar11 + 0xc);\n                  iVar11 = 1;\n                  if (iVar31 != 0) goto LAB_0004d4b4;\n                }\n              }\n              else {\n                prVar46 = mctx->dfa;\n                iVar31 = sctx->last_str_idx;\n                in_a2 = prVar50;\n                in_a3 = (re_dfa_t *)mctx;\n                in_stack_ffffff80 = prVar48;\n                iVar11 = check_node_accept_bytes\n                                   ((re_dfa_t *)prVar46->nodes,(Idx)&prVar46->syntax,\n                                    (re_string_t *)prVar50,(Idx)mctx,prVar48);\n                if (iVar11 < 1) {\n                  if (iVar11 == 0) {\n                    prVar40 = unaff_s4->nodes;\n                    goto LAB_0004d460;\n                  }\n                }\n                else {\n                  iVar17 = (int)prVar48->word_char + iVar11 + -0x60;\n                  if (iVar17 <= iVar31) {\n                    prVar39 = sctx->sifted_states[iVar17];\n                    if (prVar39 != (re_dfastate_t *)0x0) {\n                      in_a2 = (re_dfa_t *)prVar46->nexts[(int)prVar50];\n                      iVar31 = (*pcVar10)((prVar39->nodes).nelem,&(prVar39->nodes).elems);\n                      if (iVar31 != 0) goto LAB_0004d4b4;\n                    }\n                    prVar40 = unaff_s4->nodes;\nLAB_0004d460:\n                    prVar40 = prVar40 + (int)prVar50;\n                    goto LAB_0004d464;\n                  }\n                }\nLAB_0004d4b4:\n                if ((sctx->limits).nelem != 0) {\n                  in_stack_ffffff80 = (re_dfa_t *)((int)prVar48->word_char + iVar11 + -0x60);\n                  in_a2 = (re_dfa_t *)&(sctx->limits).elems;\n                  in_a3 = (re_dfa_t *)unaff_s4->nexts[(int)prVar50];\n                  iVar11 = (*pcVar8)(mctx,&(sctx->limits).nelem);\n                  prStack_7c = prVar50;\n                  prStack_78 = prVar48;\n                  if (iVar11 != 0) goto LAB_0004d510;\n                }\n                prVar46 = prVar50;\n                iVar11 = (*pcVar9)((re_dfa_t *)&cur_dest);\n                if (iVar11 == 0) {\n                  rVar7 = _REG_ESPACE;\n                  goto LAB_0004d62c;\n                }\n              }\nLAB_0004d510:\n              unaff_s5 = unaff_s5 + 1;\n              in_a3 = (re_dfa_t *)&cur_dest;\n            } while (unaff_s5 < (unaff_s6->non_eps_nodes).nelem);\n          }\n          prVar46 = (re_dfa_t *)sctx;\n          in_a2 = prVar48;\n          in_a3 = (re_dfa_t *)&cur_dest;\n          rVar7 = (*pcVar55)(mctx);\n          if (rVar7 != _REG_NOERROR) goto LAB_0004d62c;\n        } while (prVar48 != (re_dfa_t *)0x0);\n      }\n      rVar7 = _REG_NOERROR;\n    }\nLAB_0004d62c:\n    (*(code *)PTR_free_00075bfc)(cur_dest.elems);\n  }\nLAB_0004d644:\n  if (preg == *(re_match_context_t **)puVar56) {\n    return rVar7;\n  }\n  pcVar55 = re_search_internal;\n  puVar56 = PTR___stack_chk_fail_00075ba8;\n  (*(code *)PTR___stack_chk_fail_00075ba8)();\n  piVar12 = *(int **)(puVar56 + 0x2850c);\n  iStack_bc = *piVar12;\n  prVar53 = (re_dfa_t *)(preg->input).raw_mbs;\n  prStack_b8 = prVar48;\n  prStack_b4 = sctx;\n  prStack_b0 = mctx;\n  prStack_ac = prVar50;\n  prStack_a8 = unaff_s4;\n  iStack_a4 = unaff_s5;\n  prStack_a0 = unaff_s6;\n  prStack_9c = unaff_s7;\n  iStack_98 = unaff_s8;\n  pcStack_94 = pcVar55;\n  prStack_88 = in_a2;\n  (**(code **)(puVar56 + 0x283f8))((re_match_context_t *)auStack_144,0,0x88);\n  pcStack_1e0 = (char *)(preg->input).cur_state.__count;\n  if (pcStack_1e0 != (char *)0x0) {\n    bVar1 = *(byte *)&(preg->input).valid_len;\n    if (((bVar1 & 0x10) == 0) || (in_a3 == in_stack_ffffff80)) {\n      pcStack_1e0 = (char *)0x0;\n    }\n    else if ((char)bVar1 < '\0') {\n      pcStack_1e0 = (char *)0x0;\n    }\n  }\n  prVar48 = (re_dfa_t *)(preg->input).raw_mbs_idx;\n  if (prVar48 < prStack_78) {\n    puVar45 = (undefined1 *)((int)&prStack_78[-1].lock + 0x17);\n    iStack_180 = (int)puVar45 - (int)prVar48;\n    prStack_78 = (re_dfa_t *)((int)prStack_78 + ((int)prVar48 - (int)puVar45));\n    pwVar13 = (preg->input).wcs;\n  }\n  else {\n    pwVar13 = (preg->input).wcs;\n    iStack_180 = 0;\n  }\n  auStack_144._84_4_ = prVar53;\n  if ((((pwVar13 == (wint_t *)0x0) || (prVar53->init_state == (re_dfastate_t *)0x0)) ||\n      (prVar53->init_state_word == (re_dfastate_t *)0x0)) ||\n     ((prVar53->init_state_nl == (re_dfastate_t *)0x0 ||\n      (prVar53->init_state_begbuf == (re_dfastate_t *)0x0)))) {\nLAB_0004db54:\n    prStack_1e4 = (re_dfastate_t *)0x1;\n    goto LAB_0004db58;\n  }\n  if ((((prVar53->init_state->nodes).nelem == 0) && ((prVar53->init_state_word->nodes).nelem == 0))\n     && (((prVar53->init_state_nl->nodes).nelem == 0 || (((preg->input).valid_len & 0x1000000) == 0)\n         ))) {\n    if (in_a3 == (re_dfa_t *)0x0) {\n      in_stack_ffffff80 = (re_dfa_t *)0x0;\n    }\n    else {\n      if (in_stack_ffffff80 != (re_dfa_t *)0x0) goto LAB_0004db54;\n      in_a3 = (re_dfa_t *)0x0;\n    }\n  }\n  if (prStack_78 == (re_dfa_t *)0x0) {\n    bVar30 = prVar53->nbackref != 0;\n  }\n  else {\n    bVar30 = true;\n  }\n  auStack_144._80_4_ = prVar53->mb_cur_max;\n  puVar45 = (undefined1 *)(prVar53->nodes_len + 1);\n  puVar47 = (uchar *)(preg->input).cur_state.__value.__wch;\n  if ((int)puVar45 < (int)auStack_144._80_4_) {\n    puVar45 = (undefined1 *)auStack_144._80_4_;\n  }\n  new_buf_len = (undefined1 *)((int)&prStack_88->nodes + 1);\n  auStack_144[0x48] = (byte)((uint)((int)(preg->input).offsets << 9) >> 0x1f);\n  auStack_144[0x4b] = 1;\n  if (puVar47 == (uchar *)0x0) {\n    auStack_144[0x4b] = auStack_144[0x48];\n  }\n  if ((int)puVar45 <= (int)new_buf_len) {\n    new_buf_len = puVar45;\n  }\n  auStack_144[0x49] = (byte)((uint)(*(int *)&prVar53->field_0x58 << 2) >> 0x1f);\n  auStack_144[0x4a] = (byte)((uint)(*(int *)&prVar53->field_0x58 << 3) >> 0x1f);\n  auStack_144._48_4_ = prStack_88;\n  auStack_144._44_4_ = prStack_88;\n  auStack_144._56_4_ = prStack_88;\n  auStack_144._52_4_ = prStack_88;\n  auStack_144._0_4_ = prVar46;\n  auStack_144._64_4_ = puVar47;\n  prStack_1e4 = (re_dfastate_t *)\n                re_string_realloc_buffers((re_string_t *)auStack_144,(Idx)new_buf_len);\n  pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n  if (prStack_1e4 != (re_dfastate_t *)0x0) {\nLAB_0004dbbc:\n    while( true ) {\n      pcVar55 = *(code **)(puVar56 + 0x28520);\nLAB_0004dbc0:\n      (*pcVar55)(pprVar22);\n      if (prVar53->nbackref != 0) {\nLAB_0004dc14:\n        match_ctx_clean((re_match_context_t *)auStack_144);\n        (**(code **)(puVar56 + 0x28520))(pprStack_c0);\n        (**(code **)(puVar56 + 0x28520))(auStack_144._116_4_);\n      }\nLAB_0004dbd4:\n      re_string_destruct((re_string_t *)auStack_144);\nLAB_0004db58:\n      if (iStack_bc == *piVar12) break;\n      prStack_1e4 = (re_dfastate_t *)(**(code **)(puVar56 + 0x284cc))();\n      pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n    }\n    return (reg_errcode_t)prStack_1e4;\n  }\n  auStack_144._68_4_ = prVar53->word_char;\n  auStack_144[0x4e] = (byte)((uint)(*(int *)&prVar53->field_0x58 << 4) >> 0x1f);\n  if ((auStack_144[0x4b] != 0) ||\n     (auStack_144._4_4_ = prVar46, auStack_144._28_4_ = prStack_88, 1 < prVar53->mb_cur_max)) {\n    auStack_144._28_4_ = (re_dfa_t *)0x0;\n  }\n  auStack_144._56_4_ = prStack_7c;\n  auStack_144._52_4_ = prStack_7c;\n  auStack_144._32_4_ = auStack_144._28_4_;\n  auStack_144[0x4d] = (byte)((uint)((preg->input).valid_len << 7) >> 0x1f);\n  iVar11 = prVar53->nbackref;\n  iVar31 = iVar11 * 2;\n  auStack_144._88_4_ = &_gp;\n  auStack_144._92_4_ = (re_dfastate_t *)0xffffffff;\n  if (0 < iVar31) {\n    if (0xccccccc < iVar31) goto LAB_0004dbf8;\n    prVar14 = (re_backref_cache_entry *)(**(code **)(puVar56 + 0x28450))(iVar11 * 0x28);\n    auStack_144._116_4_ = prVar14;\n    pprStack_c0 = (re_sub_match_top_t **)(**(code **)(puVar56 + 0x28450))(iVar11 * 8);\n    if ((prVar14 == (re_backref_cache_entry *)0x0) || (pprStack_c0 == (re_sub_match_top_t **)0x0))\n    goto LAB_0004dbf8;\n  }\n  auStack_144._112_4_ = iVar31;\n  iStack_c4 = iVar31;\n  bVar2 = (re_dfa_t *)0x1 < prStack_78;\n  auStack_144._120_4_ = (anon_union_4_2_9a799d16_for___pthread_mutex_s_5)0x1;\n  if ((bVar2) || ((prVar53->field_0x58 & 0x40) != 0)) {\n    if (0x3ffffffe < (uint)auStack_144._36_4_) {\nLAB_0004dbf8:\n      prStack_1e4 = (re_dfastate_t *)0xc;\n      (**(code **)(puVar56 + 0x28520))(auStack_144._100_4_);\n      if (prVar53->nbackref == 0) goto LAB_0004dbd4;\n      goto LAB_0004dc14;\n    }\n    auStack_144._100_4_ = (**(code **)(puVar56 + 0x28450))((auStack_144._36_4_ + 1) * 4);\n    pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n    if ((re_dfastate_t **)auStack_144._100_4_ == (re_dfastate_t **)0x0) {\nLAB_0004dbb4:\n      prStack_1e4 = (re_dfastate_t *)0xc;\n      goto LAB_0004dbbc;\n    }\n  }\n  else {\n    auStack_144._100_4_ = (re_dfastate_t **)0x0;\n  }\n  iVar31 = prVar53->mb_cur_max;\n  iVar11 = -1;\n  prStack_16c = in_a3;\n  auStack_144._60_4_ = 6;\n  uVar32 = (uint)((int)in_stack_ffffff80 < (int)in_a3);\n  prVar46 = in_stack_ffffff80;\n  if (uVar32 == 0) {\n    iVar11 = 1;\n    prVar46 = in_a3;\n  }\n  if ((int)in_stack_ffffff80 <= (int)in_a3) {\n    in_stack_ffffff80 = in_a3;\n  }\n  if (pcStack_1e0 == (char *)0x0) goto LAB_0004eabc;\n  uVar15 = 4;\n  if (((iVar31 != 1) && (uVar15 = 0, -1 < (int)(preg->input).offsets << 9)) &&\n     (uVar15 = 4, puVar47 != (uchar *)0x0)) {\n    uVar15 = 0;\n  }\n  uVar41 = 2;\n  if (uVar32 != 0) {\n    uVar41 = 0;\n  }\n  uVar41 = puVar47 != (uchar *)0x0 | uVar15 | uVar41;\nLAB_0004dab0:\n  if (((int)prVar46 <= (int)in_a3) && ((int)in_a3 <= (int)in_stack_ffffff80)) {\n    pprVar16 = &prStack_16c;\n    if (uVar32 != 0) {\n      pprVar16 = (re_dfa_t **)0x0;\n    }\n    iVar33 = *(int *)(puVar56 + 0x28244);\n    iVar17 = *(int *)(puVar56 + 0x27edc);\n    iVar34 = *(int *)(puVar56 + 0x2829c);\n    pbVar36 = (re_bitset_ptr_t)auStack_144._24_4_;\n    prVar48 = prStack_88;\n    do {\n      prStack_88 = prVar48;\n      if (uVar41 - 4 < 5) {\n                    /* WARNING: Could not recover jumptable at 0x0004db3c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        rVar7 = (*(code *)(puVar56 + *(int *)(iVar17 + 0x2be4 + (uVar41 - 4) * 4) + 0x2fea4))();\n        return rVar7;\n      }\n      auStack_144._24_4_ = pbVar36;\n      while( true ) {\n        prVar50 = (re_dfa_t *)((int)in_a3 - (int)pbVar36);\n        if ((uint)auStack_144._32_4_ <= prVar50) {\n          prStack_1e4 = (re_dfastate_t *)\n                        (*(code *)(iVar33 + 0x7eac))((re_match_context_t *)auStack_144,in_a3,&_gp);\n          pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n          if (prStack_1e4 != (re_dfastate_t *)0x0) goto LAB_0004dbbc;\n          prVar50 = (re_dfa_t *)((int)in_a3 - auStack_144._24_4_);\n          pbVar36 = (re_bitset_ptr_t)auStack_144._24_4_;\n        }\n        if ((int)in_a3 < (int)prVar48) {\n          cVar29 = pcStack_1e0\n                   [*(byte *)((int)(((re_dfa_t *)\n                                    (((re_dfa_t *)(prVar50->word_char + -0x18))->word_char + -0x18))\n                                    ->word_char + 0xffffffe8) +\n                             (int)((re_dfa_t *)\n                                  (((re_dfa_t *)\n                                   (((re_dfa_t *)\n                                    ((bitset_word_t *)(auStack_144._4_4_ + 0x60) + -0x18))->\n                                    word_char + -0x18))->word_char + -0x18))->word_char +\n                             0xffffffa0U)];\n        }\n        else {\n          cVar29 = *pcStack_1e0;\n        }\n        if (cVar29 != '\0') break;\n        in_a3 = (re_dfa_t *)((int)in_a3->word_char + iVar11 + -0x60);\n        prStack_16c = in_a3;\n        if (((int)in_a3 < (int)prVar46) || ((int)in_stack_ffffff80 < (int)in_a3)) goto LAB_0004df68;\n      }\n      prVar18 = (re_dfastate_t *)\n                re_string_reconstruct((re_string_t *)auStack_144,(Idx)in_a3,0x7d580);\n      uVar44 = auStack_144._84_4_;\n      prVar39 = (re_dfastate_t *)auStack_144._40_4_;\n      pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n      prStack_1e4 = prVar18;\n      if (prVar18 != (re_dfastate_t *)0x0) goto LAB_0004dbbc;\n      if (((iVar31 == 1) || ((re_dfa_t *)auStack_144._28_4_ == (re_dfa_t *)0x0)) ||\n         (*(re_hashval_t *)auStack_144._8_4_ != 0xffffffff)) {\n        auStack_144._120_4_ = (anon_union_4_2_9a799d16_for___pthread_mutex_s_5)0x0;\n        auStack_144._108_4_ = 0;\n        prVar52 = *(re_dfastate_t **)(auStack_144._84_4_ + 0x24);\n        prStack_1d0 = (re_dfastate_t *)auStack_144._40_4_;\n        auStack_144._104_4_ = 0;\n        auStack_168._0_4_ = (re_dfastate_t *)0x0;\n        if ((prVar52->field_0x34 & 1) != 0) {\n          uVar32 = re_string_context_at\n                             ((re_string_t *)auStack_144,\n                              (Idx)&((re_dfastate_t *)(auStack_144._40_4_ + -0x38))->field_0x37,\n                              auStack_144._88_4_);\n          if ((uVar32 & 1) == 0) {\n            if (uVar32 == 0) goto LAB_0004dd24;\n            if ((uVar32 & 6) == 6) {\n              prVar52 = *(re_dfastate_t **)(uVar44 + 0x30);\n            }\n            else if ((uVar32 & 2) == 0) {\n              if ((uVar32 & 4) == 0) goto LAB_0004dd24;\n              prVar52 = re_acquire_state_context\n                                  ((reg_errcode_t *)auStack_168,(re_dfa_t *)uVar44,\n                                   prVar52->entrance_nodes,uVar32);\n            }\n            else {\n              prVar52 = *(re_dfastate_t **)(uVar44 + 0x2c);\n            }\n          }\n          else {\n            prVar52 = *(re_dfastate_t **)(uVar44 + 0x28);\n          }\n          if (prVar52 == (re_dfastate_t *)0x0) goto code_r0x0004ea7c;\n        }\nLAB_0004dd24:\n        bVar4 = pprVar16 != (re_dfa_t **)0x0;\n        if (((re_dfastate_t **)auStack_144._100_4_ == (re_dfastate_t **)0x0) ||\n           (iVar35 = *(Idx *)(uVar44 + 0x4c),\n           *(re_dfastate_t **)(auStack_144._100_4_ + (int)prVar39 * 4) = prVar52, iVar35 == 0)) {\nLAB_0004dd48:\n          if (*(int *)&prVar52->field_0x34 << 4 < 0) {\n            if (((prVar52->field_0x34 & 1) == 0) ||\n               (IVar21 = check_halt_state_context\n                                   ((re_match_context_t *)auStack_144,\n                                    (re_dfastate_t *)(prVar52->nodes).nelem,\n                                    (Idx)&(prVar52->nodes).elems,prVar39), IVar21 != 0)) {\n              prVar38 = prVar39;\n              bVar5 = bVar30;\n              if (!bVar30) goto LAB_0004e0e4;\n            }\n            else {\n              prVar39 = (re_dfastate_t *)0xffffffff;\n              bVar5 = false;\n            }\n          }\n          else {\n            prVar39 = (re_dfastate_t *)0xffffffff;\n            bVar5 = false;\n          }\n          iVar35 = *(int *)(puVar56 + 0x28244);\n          iVar19 = *(int *)(puVar56 + 0x2829c);\n          prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n          pprStack_1dc = pprVar16;\n          while ((int)prVar38 < (int)auStack_144._56_4_) {\n            prVar51 = (re_dfastate_t *)((int)&prVar38->hash + 1);\n            if ((((int)prVar51 < (int)auStack_144._36_4_) ||\n                ((int)auStack_144._48_4_ <= (int)auStack_144._36_4_)) &&\n               (((int)prVar51 < (int)auStack_144._28_4_ ||\n                ((int)auStack_144._48_4_ <= (int)auStack_144._28_4_)))) {\n              iVar20 = *(int *)&prVar52->field_0x34;\n              prVar48 = (re_dfa_t *)auStack_144._84_4_;\n            }\n            else {\n              auStack_168._0_4_ =\n                   (*(code *)(iVar35 + 0x41e4))\n                             ((re_match_context_t *)auStack_144,\n                              (undefined1 *)((int)&prVar38->hash + 2));\n              if ((re_dfastate_t *)auStack_168._0_4_ != (re_dfastate_t *)0x0) {\n                if ((re_dfastate_t *)auStack_168._0_4_ == (re_dfastate_t *)0xc) goto LAB_0004dbf8;\n                uVar44 = 0x46c;\n                goto LAB_0004ea9c;\n              }\n              iVar20 = *(int *)&prVar52->field_0x34;\n              prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n              prVar48 = (re_dfa_t *)auStack_144._84_4_;\n            }\n            auStack_144._84_4_ = prVar48;\n            if (iVar20 << 5 < 0) {\n              iVar20 = (prVar52->nodes).nelem;\n              if (0 < iVar20) {\n                in_a3 = (re_dfa_t *)0x0;\n                iVar24 = *(int *)(puVar56 + 0x28244);\n                pcVar55 = (code *)(*(int *)(puVar56 + 0x28244) + 0x7ab0);\n                do {\n                  prVar40 = prVar48->nodes;\n                  iVar54 = (prVar52->nodes).elems[(int)in_a3];\n                  uVar32 = *(uint *)&prVar40[iVar54].field_0x4;\n                  if ((uVar32 & 0x800) != 0) {\n                    if ((uVar32 & 0xffc000) != 0) {\n                      uVar15 = (*pcVar55)((re_match_context_t *)auStack_144,prVar38,\n                                          auStack_144._88_4_);\n                      uVar32 = (uVar32 << 8) >> 0x16;\n                      if ((uVar32 & 4) == 0) {\n                        uVar37 = uVar15 & 1;\n                        if ((uVar32 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar37 = uVar32 & 8;\n                        if ((uVar15 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar37 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar32 & 0x20) != 0) && ((uVar15 & 2) == 0)) ||\n                         (((uVar32 & 0x80) != 0 && ((uVar15 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    aVar25.__spins =\n                         (*(code *)(iVar19 + -0x4eb0))\n                                   (prVar40,&prVar48->syntax,iVar54,\n                                    (re_match_context_t *)auStack_144,prVar38);\n                    if (aVar25.__spins != 0) {\n                      if ((int)auStack_144._120_4_ < aVar25.__spins) {\n                        auStack_144._120_4_ = aVar25.__spins;\n                      }\n                      puVar45 = (undefined1 *)\n                                ((int)(re_hashval_t *)auStack_144._40_4_ + aVar25.__spins);\n                      auStack_168._4_4_ =\n                           (*(code *)(iVar24 + 0x43b0))((re_match_context_t *)auStack_144,puVar45);\n                      prVar38 = (re_dfastate_t *)auStack_168._4_4_;\n                      if ((re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0)\n                      goto joined_r0x0004e770;\n                      iVar20 = (int)puVar45 * 4;\n                      pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + iVar20);\n                      prVar38 = *pprVar22;\n                      src2 = prVar48->eclosures + prVar48->nexts[iVar54];\n                      if (prVar38 == (re_dfastate_t *)0x0) {\n                        rStack_160.sifted_states = (re_dfastate_t **)src2->alloc;\n                        rStack_160.limited_states = (re_dfastate_t **)src2->nelem;\n                        rStack_160.last_node = (Idx)src2->elems;\n                        uVar32 = (*pcVar55)((re_match_context_t *)auStack_144,\n                                            (re_dfastate_t *)(puVar45 + -1),auStack_144._88_4_);\n                        prVar38 = re_acquire_state_context\n                                            ((reg_errcode_t *)(auStack_168 + 4),prVar48,\n                                             (re_node_set *)(auStack_168 + 8),uVar32);\n                        *pprVar22 = prVar38;\n                      }\n                      else {\n                        auStack_168._4_4_ =\n                             re_node_set_init_union\n                                       ((re_node_set *)(auStack_168 + 8),prVar38->entrance_nodes,\n                                        src2);\n                        prVar38 = (re_dfastate_t *)auStack_168._4_4_;\n                        if ((re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0)\n                        goto joined_r0x0004e770;\n                        uVar32 = (*pcVar55)((re_match_context_t *)auStack_144,\n                                            (re_dfastate_t *)(puVar45 + -1),auStack_144._88_4_);\n                        pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + iVar20);\n                        prVar38 = re_acquire_state_context\n                                            ((reg_errcode_t *)(auStack_168 + 4),prVar48,\n                                             (re_node_set *)(auStack_168 + 8),uVar32);\n                        pcVar8 = *(code **)(puVar56 + 0x28520);\n                        *pprVar22 = prVar38;\n                        (*pcVar8)(rStack_160.last_node);\n                      }\n                      if ((*(re_dfastate_t **)(auStack_144._100_4_ + iVar20) == (re_dfastate_t *)0x0\n                          ) && (prVar38 = (re_dfastate_t *)auStack_168._4_4_,\n                               (re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar20 = (prVar52->nodes).nelem;\n                    prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n                  }\nLAB_0004e670:\n                  in_a3 = (re_dfa_t *)((int)&((re_string_t *)&in_a3->nodes)->raw_mbs + 1);\n                } while ((int)in_a3 < iVar20);\n              }\n              auStack_168._0_4_ = (re_dfastate_t *)0x0;\n            }\n            auStack_144._40_4_ = (int)&prVar38->hash + 1;\n            uVar32 = (uint)*(byte *)((int)((re_dfa_t *)\n                                          ((bitset_word_t *)(auStack_144._4_4_ + 0x60) + -0x18))->\n                                          word_char + (int)&prVar38[-2].non_eps_nodes);\n            do {\n              if (prVar52->trtable != (re_dfastate_t **)0x0) {\n                prVar49 = prVar52->trtable[uVar32];\nLAB_0004ddf0:\n                if ((re_dfastate_t **)auStack_144._100_4_ != (re_dfastate_t **)0x0)\n                goto LAB_0004ddfc;\n                goto LAB_0004de1c;\n              }\n              pprVar22 = prVar52->word_trtable;\n              if (pprVar22 != (re_dfastate_t **)0x0) {\n                uVar15 = re_string_context_at\n                                   ((re_string_t *)auStack_144,\n                                    (Idx)&((re_dfastate_t *)(auStack_144._40_4_ + -0x38))->\n                                          field_0x37,auStack_144._88_4_);\n                if ((uVar15 & 1) == 0) {\n                  prVar49 = pprVar22[uVar32];\n                }\n                else {\n                  prVar49 = pprVar22[uVar32 + 0x100];\n                }\n                goto LAB_0004ddf0;\n              }\n              iVar20 = (*(code *)(iVar34 + -0x7510))(auStack_144._84_4_,prVar52);\n            } while (iVar20 != 0);\n            auStack_168._0_4_ = (re_dfastate_t *)0xc;\n            prVar38 = (re_dfastate_t *)auStack_168._0_4_;\njoined_r0x0004e770:\n            auStack_168._0_4_ = prVar38;\n            if ((re_dfastate_t **)auStack_144._100_4_ == (re_dfastate_t **)0x0) {\n              pprVar22 = (re_dfastate_t **)0x0;\n              goto LAB_0004dbb4;\n            }\n            prVar49 = (re_dfastate_t *)0x0;\nLAB_0004ddfc:\n            prVar49 = merge_state_with_log\n                                ((reg_errcode_t *)auStack_168,(re_match_context_t *)auStack_144,\n                                 prVar49);\nLAB_0004de1c:\n            prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n            if (prVar49 == (re_dfastate_t *)0x0) {\n              pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n              if ((re_dfastate_t *)auStack_168._0_4_ != (re_dfastate_t *)0x0) goto LAB_0004dbb4;\n              if (((re_dfastate_t **)auStack_144._100_4_ == (re_dfastate_t **)0x0) ||\n                 ((bVar5 && (!bVar30)))) break;\n              in_a3 = (re_dfa_t *)auStack_168;\n              do {\n                bVar3 = false;\n                pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + auStack_144._40_4_ * 4);\n                prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n                do {\n                  prVar49 = (re_dfastate_t *)((int)&prVar38->hash + 1);\n                  pprVar22 = pprVar22 + 1;\n                  if ((int)auStack_144._104_4_ < (int)prVar49) {\n                    if (bVar3) {\n                      auStack_144._40_4_ = prVar38;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar3 = true;\n                  prVar38 = prVar49;\n                } while (*pprVar22 == (re_dfastate_t *)0x0);\n                auStack_144._40_4_ = prVar49;\n                prVar49 = merge_state_with_log\n                                    ((reg_errcode_t *)in_a3,(re_match_context_t *)auStack_144,\n                                     (re_dfastate_t *)0x0);\n                prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n                if ((re_dfastate_t *)auStack_168._0_4_ != (re_dfastate_t *)0x0) {\n                  if (prVar49 == (re_dfastate_t *)0x0) goto LAB_0004e0cc;\n                  break;\n                }\n              } while (prVar49 == (re_dfastate_t *)0x0);\n            }\n            prVar6 = prStack_1d0;\n            if ((bVar4) && (prVar6 = prVar51, prVar52 != prVar49)) {\n              bVar4 = false;\n              prVar6 = prStack_1d0;\n            }\n            prStack_1d0 = prVar6;\n            prVar52 = prVar49;\n            auStack_144._40_4_ = prVar38;\n            if (((prVar49->field_0x34 & 8) != 0) &&\n               (((prVar49->field_0x34 & 1) == 0 ||\n                (IVar21 = check_halt_state_context\n                                    ((re_match_context_t *)auStack_144,\n                                     (re_dfastate_t *)(prVar49->nodes).nelem,\n                                     (Idx)&(prVar49->nodes).elems,prVar38), IVar21 != 0)))) {\n              if (!bVar30) goto LAB_0004e0e4;\n              pprStack_1dc = (re_dfa_t **)0x0;\n              prVar39 = prVar38;\n              bVar5 = bVar30;\n            }\n          }\nLAB_0004e0cc:\n          prVar38 = prVar39;\n          if (pprStack_1dc != (re_dfa_t **)0x0) {\n            *pprStack_1dc = (re_dfa_t *)((int)&prStack_1d0->hash + (int)*pprStack_1dc);\n          }\n        }\n        else {\n          pIVar23 = &(prVar52->nodes).nelem;\n          nodes_1 = &(prVar52->nodes).elems;\n          prVar38 = (re_dfastate_t *)\n                    check_subexp_matching_top\n                              ((re_match_context_t *)auStack_144,(re_node_set *)pIVar23,(Idx)nodes_1\n                               ,(re_node_set *)0x0);\n          auStack_168._0_4_ = prVar38;\n          if (prVar38 == (re_dfastate_t *)0x0) {\n            if ((prVar52->field_0x34 & 2) == 0) {\n              bVar4 = false;\n            }\n            else {\n              prVar38 = (re_dfastate_t *)\n                        transit_state_bkref((re_match_context_t *)auStack_144,(re_node_set *)pIVar23\n                                            ,(re_node_set *)nodes_1);\n              auStack_168._0_4_ = prVar38;\n              if (prVar38 != (re_dfastate_t *)0x0) goto LAB_0004e0e4;\n              bVar4 = false;\n            }\n            goto LAB_0004dd48;\n          }\n        }\nLAB_0004e0e4:\n        pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n        if (prVar38 != (re_dfastate_t *)0xffffffff) {\n          if (prVar38 == (re_dfastate_t *)&SUB_fffffffe) goto LAB_0004dbf8;\n          auStack_144._92_4_ = prVar38;\n          if (((preg->input).valid_len & 0x8000000) == 0) {\n            if (!bVar2) {\n              iVar35 = prVar53->nbackref;\n              goto joined_r0x0004e94c;\n            }\n            pcVar55 = (code *)(*(int *)(puVar56 + 0x28244) + 0x7d8c);\n            prVar39 = *(re_dfastate_t **)(auStack_144._100_4_ + (int)prVar38 * 4);\n            auStack_144._96_4_ =\n                 check_halt_state_context\n                           ((re_match_context_t *)auStack_144,\n                            (re_dfastate_t *)(prVar39->nodes).nelem,(Idx)&(prVar39->nodes).elems,\n                            prVar38);\n            if (((char)prVar53->field_0x58 < '\0') || (prVar53->nbackref != 0)) goto LAB_0004e170;\n          }\n          else {\n            iVar35 = prVar53->nbackref;\njoined_r0x0004e94c:\n            if (iVar35 != 0) {\n              pcVar55 = (code *)(*(int *)(puVar56 + 0x28244) + 0x7d8c);\n              prVar39 = *(re_dfastate_t **)(auStack_144._100_4_ + (int)prVar38 * 4);\n              auStack_144._96_4_ =\n                   check_halt_state_context\n                             ((re_match_context_t *)auStack_144,\n                              (re_dfastate_t *)(prVar39->nodes).nelem,(Idx)&(prVar39->nodes).elems,\n                              prVar38);\nLAB_0004e170:\n              pIVar23 = (Idx *)auStack_144._96_4_;\n              uVar44 = auStack_144._84_4_;\n              if (prVar38 < (re_dfastate_t *)0x3fffffff) {\n                prStack_1f0 = (re_dfastate_t *)((int)&prVar38->hash + 1);\n                pprVar22 = (re_dfastate_t **)(**(code **)(puVar56 + 0x28450))((int)prStack_1f0 * 4);\n                if (pprVar22 == (re_dfastate_t **)0x0) goto LAB_0004dbf8;\n                if (*(Idx *)(uVar44 + 0x4c) == 0) {\n                  rStack_160.limited_states = (re_dfastate_t **)0x0;\n                  rStack_160.limits.alloc = 0;\n                  rStack_160.limits.nelem = 0;\n                  rStack_160.limits.elems = (Idx *)0x0;\n                  rStack_160.sifted_states = pprVar22;\n                  rStack_160.last_node = (Idx)pIVar23;\n                  rStack_160.last_str_idx = (Idx)prVar38;\n                  prStack_1e4 = (re_dfastate_t *)\n                                sift_states_backward\n                                          ((re_match_context_t *)auStack_144,\n                                           (re_sift_context_t *)(auStack_168 + 8));\n                  (**(code **)(puVar56 + 0x28520))(rStack_160.limits.elems);\n                  if (prStack_1e4 == (re_dfastate_t *)0x0) {\n                    if (*pprVar22 == (re_dfastate_t *)0x0) {\n                      (**(code **)(puVar56 + 0x28520))(pprVar22);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar56 + 0x28520))(auStack_144._100_4_);\n                    auStack_144._92_4_ = prVar38;\n                    auStack_144._96_4_ = pIVar23;\n                    auStack_144._100_4_ = pprVar22;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  pprStack_1ec = (re_dfastate_t **)0x0;\n                }\n                else {\n                  pprStack_1ec = (re_dfastate_t **)\n                                 (**(code **)(puVar56 + 0x28450))((int)prStack_1f0 * 4);\n                  if (pprStack_1ec == (re_dfastate_t **)0x0) {\n                    (**(code **)(puVar56 + 0x28520))(pprVar22);\n                    prStack_1e4 = (re_dfastate_t *)0xc;\n                    pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar35 = *(int *)(puVar56 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar56 + 0x283f8))(pprStack_1ec,0,(int)prStack_1f0 * 4);\n                    rStack_160.limits.alloc = 0;\n                    rStack_160.limits.nelem = 0;\n                    rStack_160.limits.elems = (Idx *)0x0;\n                    rStack_160.sifted_states = pprVar22;\n                    rStack_160.limited_states = pprStack_1ec;\n                    rStack_160.last_node = (Idx)pIVar23;\n                    rStack_160.last_str_idx = (Idx)prVar38;\n                    prStack_1e4 = (re_dfastate_t *)\n                                  (*(code *)(iVar35 + -0x2cf4))\n                                            ((re_match_context_t *)auStack_144,auStack_168 + 8);\n                    (**(code **)(puVar56 + 0x28520))(rStack_160.limits.elems);\n                    if (prStack_1e4 != (re_dfastate_t *)0x0) break;\n                    if ((*pprVar22 != (re_dfastate_t *)0x0) ||\n                       (*pprStack_1ec != (re_dfastate_t *)0x0)) {\n                      prStack_1e4 = (re_dfastate_t *)\n                                    merge_state_array((re_dfa_t *)uVar44,pprVar22,pprStack_1ec,\n                                                      (Idx)prStack_1f0);\n                      (**(code **)(puVar56 + 0x28520))(pprStack_1ec);\n                      if (prStack_1e4 != (re_dfastate_t *)0x0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    iVar19 = auStack_144._100_4_ + (int)prStack_1f0 * 4 + -4;\n                    prStack_1f0 = prVar38;\n                    while( true ) {\n                      prVar38 = (re_dfastate_t *)&prStack_1f0[-1].field_0x37;\n                      if (prVar38 == (re_dfastate_t *)0xffffffff) {\n                        (**(code **)(puVar56 + 0x28520))(pprVar22);\n                        (**(code **)(puVar56 + 0x28520))(pprStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar20 = *(int *)(iVar19 + -4);\n                      if ((iVar20 != 0) && ((*(byte *)(iVar20 + 0x34) & 8) != 0)) break;\n                      iVar19 = iVar19 + -4;\n                      prStack_1f0 = prVar38;\n                    }\n                    pIVar23 = (Idx *)(*pcVar55)((re_match_context_t *)auStack_144,\n                                                *(undefined4 *)(iVar20 + 8),iVar20 + 0xc,prVar38);\n                  }\n                }\n                (**(code **)(puVar56 + 0x28520))(pprVar22);\n                (**(code **)(puVar56 + 0x28520))(pprStack_1ec);\n                pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n                if (prStack_1e4 == (re_dfastate_t *)0x1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }\n              prStack_1e4 = (re_dfastate_t *)0xc;\n              goto LAB_0004dbbc;\n            }\n          }\nLAB_0004e7e0:\n          pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n          prStack_1e4 = prVar18;\n          if (prStack_78 == (re_dfa_t *)0x0) goto LAB_0004dbbc;\n          IVar21 = (preg->input).valid_len;\n          if (bVar2) {\n            prVar27 = prStack_74 + 1;\n            do {\n              prVar27->rm_eo = -1;\n              prVar26 = prVar27 + 1;\n              prVar27->rm_so = -1;\n              prVar27 = prVar26;\n            } while (prStack_74 + (int)prStack_78 != prVar26);\n            prStack_74->rm_so = 0;\n            prStack_74->rm_eo = auStack_144._92_4_;\n            if ((IVar21 & 0x8000000) == 0) {\n              if ((char)prVar53->field_0x58 < '\0') {\n                bVar30 = 0 < prVar53->nbackref;\n              }\n              else {\n                bVar30 = false;\n              }\n              prStack_1e4 = (re_dfastate_t *)\n                            set_regs((regex_t *)preg,(re_match_context_t *)auStack_144,\n                                     (size_t)prStack_78,prStack_74,bVar30);\n              pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n              if (prStack_1e4 != (re_dfastate_t *)0x0) goto LAB_0004dbbc;\n              prVar46 = (re_dfa_t *)prStack_74->rm_so;\n            }\n            else {\nLAB_0004e838:\n              prVar46 = (re_dfa_t *)0x0;\n            }\n            prVar48 = (re_dfa_t *)0x0;\n            prVar27 = prStack_74;\n            while( true ) {\n              if (prVar46 != (re_dfa_t *)0xffffffff) {\n                prVar42 = (re_dfa_t *)prVar27->rm_eo;\n                prVar50 = prVar46;\n                prVar43 = prVar42;\n                if (auStack_144[0x4c] != '\0') {\n                  prVar50 = (re_dfa_t *)auStack_144._32_4_;\n                  if ((re_dfa_t *)auStack_144._28_4_ != prVar46) {\n                    prVar50 = (re_dfa_t *)((re_hashval_t *)auStack_144._12_4_)[(int)prVar46];\n                  }\n                  prVar27->rm_so = (regoff_t)prVar50;\n                  prVar43 = (re_dfa_t *)auStack_144._32_4_;\n                  if ((re_dfa_t *)auStack_144._28_4_ != prVar42) {\n                    prVar43 = (re_dfa_t *)((re_hashval_t *)auStack_144._12_4_)[(int)prVar42];\n                  }\n                }\n                prVar27->rm_so =\n                     (int)(((re_dfa_t *)\n                           (((re_dfa_t *)(prVar50->word_char + -0x18))->word_char + -0x18))->\n                           word_char + 0xffffffe8) +\n                     (int)((re_dfa_t *)\n                          (((re_dfa_t *)\n                           (((re_dfa_t *)(prStack_16c->word_char + -0x18))->word_char + -0x18))->\n                           word_char + -0x18))->word_char + 0xffffffa0U;\n                prVar27->rm_eo =\n                     (int)(((re_dfa_t *)\n                           (((re_dfa_t *)(prVar43->word_char + -0x18))->word_char + -0x18))->\n                           word_char + 0xffffffe8) +\n                     (int)((re_dfa_t *)\n                          (((re_dfa_t *)\n                           (((re_dfa_t *)(prStack_16c->word_char + -0x18))->word_char + -0x18))->\n                           word_char + -0x18))->word_char + 0xffffffa0U;\n              }\n              prVar48 = (re_dfa_t *)((int)&prVar48->nodes + 1);\n              prVar27 = prVar27 + 1;\n              if (prVar48 == prStack_78) break;\n              prVar46 = (re_dfa_t *)prVar27->rm_so;\n            }\n            if (0 < iStack_180) {\n              prVar27 = prStack_74 + (int)prStack_78;\n              do {\n                prVar27->rm_so = -1;\n                prVar26 = prVar27 + 1;\n                prVar27->rm_eo = -1;\n                prVar27 = prVar26;\n              } while (prStack_74 + (int)prStack_78->word_char + iStack_180 + -0x60 != prVar26);\n            }\n            pIVar23 = prVar53->subexp_map;\n            pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n            prStack_1e4 = prVar18;\n            if (pIVar23 != (Idx *)0x0) {\n              puVar45 = (undefined1 *)0x0;\n              prVar27 = prStack_74;\n              do {\n                pcVar55 = *(code **)(puVar56 + 0x28520);\n                if (puVar45 == (undefined1 *)((int)&prStack_78[-1].lock + 0x17)) goto LAB_0004dbc0;\n                if ((undefined1 *)*pIVar23 != puVar45) {\n                  prVar27[1].rm_so = prStack_74[(int)((undefined1 *)*pIVar23 + 1)].rm_so;\n                  prVar27[1].rm_eo = prStack_74[*pIVar23 + 1].rm_eo;\n                }\n                puVar45 = puVar45 + 1;\n                pIVar23 = pIVar23 + 1;\n                prVar27 = prVar27 + 1;\n              } while( true );\n            }\n            goto LAB_0004dbbc;\n          }\n          prStack_74->rm_so = 0;\n          prStack_74->rm_eo = auStack_144._92_4_;\n          goto LAB_0004e838;\n        }\nLAB_0004e2d4:\n        match_ctx_clean((re_match_context_t *)auStack_144);\n        in_a3 = prStack_16c;\n      }\n      in_a3 = (re_dfa_t *)((int)in_a3->word_char + iVar11 + -0x60);\n      prStack_16c = in_a3;\n      if (((int)in_a3 < (int)prVar46) ||\n         (pbVar36 = (re_bitset_ptr_t)auStack_144._24_4_, prVar48 = prStack_88,\n         (int)in_stack_ffffff80 < (int)in_a3)) break;\n    } while( true );\n  }\nLAB_0004df68:\n  prStack_1e4 = (re_dfastate_t *)0x1;\n  pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n  goto LAB_0004dbbc;\ncode_r0x0004ea7c:\n  prStack_1e4 = (re_dfastate_t *)auStack_168._0_4_;\n  pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n  if ((re_dfastate_t *)auStack_168._0_4_ == (re_dfastate_t *)0xc) goto LAB_0004dbbc;\n  uVar44 = 0x435;\nLAB_0004ea9c:\n  (**(code **)(puVar56 + 0x282f4))\n            (*(int *)(puVar56 + 0x27edc) + 0x2b30,*(int *)(puVar56 + 0x27edc) + 0x2ac0,uVar44,\n             *(int *)(puVar56 + 0x27edc) + 0x3030);\n  uVar32 = extraout_v1;\n  preg = (re_match_context_t *)auStack_144;\nLAB_0004eabc:\n  uVar41 = 8;\n  goto LAB_0004dab0;\n}\n\n" comment comment (function_definition "reg_errcode_t sift_states_backward(re_match_context_t *mctx,re_sift_context_t *sctx)\n\n{\n  byte bVar1;\n  bool bVar2;\n  bool bVar3;\n  bool bVar4;\n  bool bVar5;\n  re_dfastate_t *prVar6;\n  undefined3 extraout_var;\n  reg_errcode_t rVar7;\n  code *pcVar8;\n  code *pcVar9;\n  code *pcVar10;\n  _Bool _Var28;\n  int iVar11;\n  int *piVar12;\n  wint_t *pwVar13;\n  re_backref_cache_entry *prVar14;\n  uint uVar15;\n  re_dfa_t **pprVar16;\n  int iVar17;\n  re_dfastate_t *prVar18;\n  int iVar19;\n  int iVar20;\n  Idx IVar21;\n  re_dfastate_t **pprVar22;\n  char cVar29;\n  Idx *pIVar23;\n  int iVar24;\n  anon_union_4_2_9a799d16_for___pthread_mutex_s_5 aVar25;\n  regmatch_t *prVar26;\n  regmatch_t *prVar27;\n  bool bVar30;\n  re_match_context_t *preg;\n  int iVar31;\n  uint uVar32;\n  uint extraout_v1;\n  int iVar33;\n  int iVar34;\n  int iVar35;\n  re_bitset_ptr_t pbVar36;\n  uint uVar37;\n  re_dfastate_t *prVar38;\n  re_dfastate_t *prVar39;\n  re_token_t *prVar40;\n  undefined1 *new_buf_len;\n  uint uVar41;\n  re_dfa_t *prVar42;\n  re_dfa_t *prVar43;\n  re_dfa_t *in_a2;\n  re_node_set *src2;\n  undefined4 uVar44;\n  re_dfa_t *in_a3;\n  undefined1 *puVar45;\n  re_dfa_t *prVar46;\n  uchar *puVar47;\n  re_dfa_t *prVar48;\n  re_dfastate_t *prVar49;\n  Idx **nodes_1;\n  re_dfa_t *prVar50;\n  re_dfastate_t *prVar51;\n  re_dfa_t *unaff_s4;\n  re_dfastate_t *prVar52;\n  int unaff_s5;\n  re_dfastate_t *unaff_s6;\n  re_dfa_t *prVar53;\n  int iVar54;\n  re_dfa_t *unaff_s7;\n  code *pcVar55;\n  undefined *puVar56;\n  int unaff_s8;\n  re_dfastate_t *prStack_1f0;\n  re_dfastate_t **pprStack_1ec;\n  re_dfastate_t *prStack_1e4;\n  char *pcStack_1e0;\n  re_dfa_t **pprStack_1dc;\n  re_dfastate_t *prStack_1d0;\n  int iStack_180;\n  re_dfa_t *prStack_16c;\n  undefined1 auStack_168 [8];\n  re_sift_context_t rStack_160;\n  undefined1 auStack_144 [128];\n  int iStack_c4;\n  re_sub_match_top_t **pprStack_c0;\n  int iStack_bc;\n  re_dfa_t *prStack_b8;\n  re_sift_context_t *prStack_b4;\n  re_match_context_t *prStack_b0;\n  re_dfa_t *prStack_ac;\n  re_dfa_t *prStack_a8;\n  int iStack_a4;\n  re_dfastate_t *prStack_a0;\n  re_dfa_t *prStack_9c;\n  int iStack_98;\n  code *pcStack_94;\n  re_dfa_t *prStack_88;\n  re_dfa_t *in_stack_ffffff80;\n  re_dfa_t *prStack_7c;\n  re_dfa_t *prStack_78;\n  regmatch_t *prStack_74;\n  int iStack_64;\n  re_node_set cur_dest;\n  \n  puVar56 = PTR___stack_chk_guard_00075be8;\n  cur_dest.alloc = 1;\n  cur_dest.nelem = 1;\n  preg = *(re_match_context_t **)PTR___stack_chk_guard_00075be8;\n  prVar48 = (re_dfa_t *)sctx->last_str_idx;\n  prVar50 = (re_dfa_t *)sctx->last_node;\n  prVar46 = (re_dfa_t *)sctx;\n  cur_dest.elems = (Idx *)(*(code *)PTR_malloc_00075b2c)(4);\n  if (cur_dest.elems == (Idx *)0x0) {\n    rVar7 = _REG_ESPACE;\n  }\n  else {\n    *cur_dest.elems = (Idx)prVar50;\n    pcVar55 = (code *)(PTR_LAB_00075978 + -0x1248);\n    prVar46 = (re_dfa_t *)sctx;\n    in_a2 = prVar48;\n    in_a3 = (re_dfa_t *)&cur_dest;\n    rVar7 = update_cur_sifted_state(mctx,sctx,(Idx)prVar48,&cur_dest);\n    if (rVar7 == _REG_NOERROR) {\n      iStack_64 = 0;\n      if (0 < (int)prVar48) {\n        pcVar8 = (code *)(PTR_LAB_00075920 + 0x5610);\n        pcVar9 = (code *)(PTR_LAB_00075920 + 0x33f8);\n        pcVar10 = (code *)(PTR_LAB_00075920 + 0x5230);\n        do {\n          unaff_s7 = (re_dfa_t *)((int)prVar48 * 4);\n          if (*(int *)((int)unaff_s7->word_char + (int)(sctx->sifted_states + -0x18)) == 0) {\n            iStack_64 = iStack_64 + 1;\n            if (mctx->max_mb_elem_len < iStack_64) goto LAB_0004d6a0;\n          }\n          else {\n            iStack_64 = 0;\n            if (mctx->max_mb_elem_len < 0) {\nLAB_0004d6a0:\n              prVar46 = (re_dfa_t *)0x0;\n              in_a2 = unaff_s7;\n              (*(code *)PTR_memset_00075ad4)();\n              (*(code *)PTR_free_00075bfc)(cur_dest.elems);\n              rVar7 = _REG_NOERROR;\n              goto LAB_0004d644;\n            }\n          }\n          cur_dest.nelem = 0;\n          unaff_s6 = (mctx->state_log + (int)prVar48)[-1];\n          prVar48 = (re_dfa_t *)(prVar48[-1].lock.__size + 0x17);\n          if ((unaff_s6 != (re_dfastate_t *)0x0) &&\n             (unaff_s4 = mctx->dfa, 0 < (unaff_s6->non_eps_nodes).nelem)) {\n            unaff_s5 = 0;\n            do {\n              prVar50 = (re_dfa_t *)(unaff_s6->non_eps_nodes).elems[unaff_s5];\n              unaff_s8 = (int)prVar50 * 8;\n              prVar40 = unaff_s4->nodes + (int)prVar50;\n              if ((*(uint *)&prVar40->field_0x4 & 0x800) == 0) {\nLAB_0004d464:\n                _Var28 = check_node_accept(mctx,prVar40,(Idx)prVar48);\n                if ((CONCAT31(extraout_var,_Var28) != 0) &&\n                   (iVar11 = *(int *)((int)unaff_s7->word_char + (int)(sctx->sifted_states + -0x18))\n                   , iVar11 != 0)) {\n                  in_a2 = (re_dfa_t *)unaff_s4->nexts[(int)prVar50];\n                  iVar31 = (*pcVar10)(*(undefined4 *)(iVar11 + 8),iVar11 + 0xc);\n                  iVar11 = 1;\n                  if (iVar31 != 0) goto LAB_0004d4b4;\n                }\n              }\n              else {\n                prVar46 = mctx->dfa;\n                iVar31 = sctx->last_str_idx;\n                in_a2 = prVar50;\n                in_a3 = (re_dfa_t *)mctx;\n                in_stack_ffffff80 = prVar48;\n                iVar11 = check_node_accept_bytes\n                                   ((re_dfa_t *)prVar46->nodes,(Idx)&prVar46->syntax,\n                                    (re_string_t *)prVar50,(Idx)mctx,prVar48);\n                if (iVar11 < 1) {\n                  if (iVar11 == 0) {\n                    prVar40 = unaff_s4->nodes;\n                    goto LAB_0004d460;\n                  }\n                }\n                else {\n                  iVar17 = (int)prVar48->word_char + iVar11 + -0x60;\n                  if (iVar17 <= iVar31) {\n                    prVar39 = sctx->sifted_states[iVar17];\n                    if (prVar39 != (re_dfastate_t *)0x0) {\n                      in_a2 = (re_dfa_t *)prVar46->nexts[(int)prVar50];\n                      iVar31 = (*pcVar10)((prVar39->nodes).nelem,&(prVar39->nodes).elems);\n                      if (iVar31 != 0) goto LAB_0004d4b4;\n                    }\n                    prVar40 = unaff_s4->nodes;\nLAB_0004d460:\n                    prVar40 = prVar40 + (int)prVar50;\n                    goto LAB_0004d464;\n                  }\n                }\nLAB_0004d4b4:\n                if ((sctx->limits).nelem != 0) {\n                  in_stack_ffffff80 = (re_dfa_t *)((int)prVar48->word_char + iVar11 + -0x60);\n                  in_a2 = (re_dfa_t *)&(sctx->limits).elems;\n                  in_a3 = (re_dfa_t *)unaff_s4->nexts[(int)prVar50];\n                  iVar11 = (*pcVar8)(mctx,&(sctx->limits).nelem);\n                  prStack_7c = prVar50;\n                  prStack_78 = prVar48;\n                  if (iVar11 != 0) goto LAB_0004d510;\n                }\n                prVar46 = prVar50;\n                iVar11 = (*pcVar9)((re_dfa_t *)&cur_dest);\n                if (iVar11 == 0) {\n                  rVar7 = _REG_ESPACE;\n                  goto LAB_0004d62c;\n                }\n              }\nLAB_0004d510:\n              unaff_s5 = unaff_s5 + 1;\n              in_a3 = (re_dfa_t *)&cur_dest;\n            } while (unaff_s5 < (unaff_s6->non_eps_nodes).nelem);\n          }\n          prVar46 = (re_dfa_t *)sctx;\n          in_a2 = prVar48;\n          in_a3 = (re_dfa_t *)&cur_dest;\n          rVar7 = (*pcVar55)(mctx);\n          if (rVar7 != _REG_NOERROR) goto LAB_0004d62c;\n        } while (prVar48 != (re_dfa_t *)0x0);\n      }\n      rVar7 = _REG_NOERROR;\n    }\nLAB_0004d62c:\n    (*(code *)PTR_free_00075bfc)(cur_dest.elems);\n  }\nLAB_0004d644:\n  if (preg == *(re_match_context_t **)puVar56) {\n    return rVar7;\n  }\n  pcVar55 = re_search_internal;\n  puVar56 = PTR___stack_chk_fail_00075ba8;\n  (*(code *)PTR___stack_chk_fail_00075ba8)();\n  piVar12 = *(int **)(puVar56 + 0x2850c);\n  iStack_bc = *piVar12;\n  prVar53 = (re_dfa_t *)(preg->input).raw_mbs;\n  prStack_b8 = prVar48;\n  prStack_b4 = sctx;\n  prStack_b0 = mctx;\n  prStack_ac = prVar50;\n  prStack_a8 = unaff_s4;\n  iStack_a4 = unaff_s5;\n  prStack_a0 = unaff_s6;\n  prStack_9c = unaff_s7;\n  iStack_98 = unaff_s8;\n  pcStack_94 = pcVar55;\n  prStack_88 = in_a2;\n  (**(code **)(puVar56 + 0x283f8))((re_match_context_t *)auStack_144,0,0x88);\n  pcStack_1e0 = (char *)(preg->input).cur_state.__count;\n  if (pcStack_1e0 != (char *)0x0) {\n    bVar1 = *(byte *)&(preg->input).valid_len;\n    if (((bVar1 & 0x10) == 0) || (in_a3 == in_stack_ffffff80)) {\n      pcStack_1e0 = (char *)0x0;\n    }\n    else if ((char)bVar1 < '\0') {\n      pcStack_1e0 = (char *)0x0;\n    }\n  }\n  prVar48 = (re_dfa_t *)(preg->input).raw_mbs_idx;\n  if (prVar48 < prStack_78) {\n    puVar45 = (undefined1 *)((int)&prStack_78[-1].lock + 0x17);\n    iStack_180 = (int)puVar45 - (int)prVar48;\n    prStack_78 = (re_dfa_t *)((int)prStack_78 + ((int)prVar48 - (int)puVar45));\n    pwVar13 = (preg->input).wcs;\n  }\n  else {\n    pwVar13 = (preg->input).wcs;\n    iStack_180 = 0;\n  }\n  auStack_144._84_4_ = prVar53;\n  if ((((pwVar13 == (wint_t *)0x0) || (prVar53->init_state == (re_dfastate_t *)0x0)) ||\n      (prVar53->init_state_word == (re_dfastate_t *)0x0)) ||\n     ((prVar53->init_state_nl == (re_dfastate_t *)0x0 ||\n      (prVar53->init_state_begbuf == (re_dfastate_t *)0x0)))) {\nLAB_0004db54:\n    prStack_1e4 = (re_dfastate_t *)0x1;\n    goto LAB_0004db58;\n  }\n  if ((((prVar53->init_state->nodes).nelem == 0) && ((prVar53->init_state_word->nodes).nelem == 0))\n     && (((prVar53->init_state_nl->nodes).nelem == 0 || (((preg->input).valid_len & 0x1000000) == 0)\n         ))) {\n    if (in_a3 == (re_dfa_t *)0x0) {\n      in_stack_ffffff80 = (re_dfa_t *)0x0;\n    }\n    else {\n      if (in_stack_ffffff80 != (re_dfa_t *)0x0) goto LAB_0004db54;\n      in_a3 = (re_dfa_t *)0x0;\n    }\n  }\n  if (prStack_78 == (re_dfa_t *)0x0) {\n    bVar30 = prVar53->nbackref != 0;\n  }\n  else {\n    bVar30 = true;\n  }\n  auStack_144._80_4_ = prVar53->mb_cur_max;\n  puVar45 = (undefined1 *)(prVar53->nodes_len + 1);\n  puVar47 = (uchar *)(preg->input).cur_state.__value.__wch;\n  if ((int)puVar45 < (int)auStack_144._80_4_) {\n    puVar45 = (undefined1 *)auStack_144._80_4_;\n  }\n  new_buf_len = (undefined1 *)((int)&prStack_88->nodes + 1);\n  auStack_144[0x48] = (byte)((uint)((int)(preg->input).offsets << 9) >> 0x1f);\n  auStack_144[0x4b] = 1;\n  if (puVar47 == (uchar *)0x0) {\n    auStack_144[0x4b] = auStack_144[0x48];\n  }\n  if ((int)puVar45 <= (int)new_buf_len) {\n    new_buf_len = puVar45;\n  }\n  auStack_144[0x49] = (byte)((uint)(*(int *)&prVar53->field_0x58 << 2) >> 0x1f);\n  auStack_144[0x4a] = (byte)((uint)(*(int *)&prVar53->field_0x58 << 3) >> 0x1f);\n  auStack_144._48_4_ = prStack_88;\n  auStack_144._44_4_ = prStack_88;\n  auStack_144._56_4_ = prStack_88;\n  auStack_144._52_4_ = prStack_88;\n  auStack_144._0_4_ = prVar46;\n  auStack_144._64_4_ = puVar47;\n  prStack_1e4 = (re_dfastate_t *)\n                re_string_realloc_buffers((re_string_t *)auStack_144,(Idx)new_buf_len);\n  pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n  if (prStack_1e4 != (re_dfastate_t *)0x0) {\nLAB_0004dbbc:\n    while( true ) {\n      pcVar55 = *(code **)(puVar56 + 0x28520);\nLAB_0004dbc0:\n      (*pcVar55)(pprVar22);\n      if (prVar53->nbackref != 0) {\nLAB_0004dc14:\n        match_ctx_clean((re_match_context_t *)auStack_144);\n        (**(code **)(puVar56 + 0x28520))(pprStack_c0);\n        (**(code **)(puVar56 + 0x28520))(auStack_144._116_4_);\n      }\nLAB_0004dbd4:\n      re_string_destruct((re_string_t *)auStack_144);\nLAB_0004db58:\n      if (iStack_bc == *piVar12) break;\n      prStack_1e4 = (re_dfastate_t *)(**(code **)(puVar56 + 0x284cc))();\n      pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n    }\n    return (reg_errcode_t)prStack_1e4;\n  }\n  auStack_144._68_4_ = prVar53->word_char;\n  auStack_144[0x4e] = (byte)((uint)(*(int *)&prVar53->field_0x58 << 4) >> 0x1f);\n  if ((auStack_144[0x4b] != 0) ||\n     (auStack_144._4_4_ = prVar46, auStack_144._28_4_ = prStack_88, 1 < prVar53->mb_cur_max)) {\n    auStack_144._28_4_ = (re_dfa_t *)0x0;\n  }\n  auStack_144._56_4_ = prStack_7c;\n  auStack_144._52_4_ = prStack_7c;\n  auStack_144._32_4_ = auStack_144._28_4_;\n  auStack_144[0x4d] = (byte)((uint)((preg->input).valid_len << 7) >> 0x1f);\n  iVar11 = prVar53->nbackref;\n  iVar31 = iVar11 * 2;\n  auStack_144._88_4_ = &_gp;\n  auStack_144._92_4_ = (re_dfastate_t *)0xffffffff;\n  if (0 < iVar31) {\n    if (0xccccccc < iVar31) goto LAB_0004dbf8;\n    prVar14 = (re_backref_cache_entry *)(**(code **)(puVar56 + 0x28450))(iVar11 * 0x28);\n    auStack_144._116_4_ = prVar14;\n    pprStack_c0 = (re_sub_match_top_t **)(**(code **)(puVar56 + 0x28450))(iVar11 * 8);\n    if ((prVar14 == (re_backref_cache_entry *)0x0) || (pprStack_c0 == (re_sub_match_top_t **)0x0))\n    goto LAB_0004dbf8;\n  }\n  auStack_144._112_4_ = iVar31;\n  iStack_c4 = iVar31;\n  bVar2 = (re_dfa_t *)0x1 < prStack_78;\n  auStack_144._120_4_ = (anon_union_4_2_9a799d16_for___pthread_mutex_s_5)0x1;\n  if ((bVar2) || ((prVar53->field_0x58 & 0x40) != 0)) {\n    if (0x3ffffffe < (uint)auStack_144._36_4_) {\nLAB_0004dbf8:\n      prStack_1e4 = (re_dfastate_t *)0xc;\n      (**(code **)(puVar56 + 0x28520))(auStack_144._100_4_);\n      if (prVar53->nbackref == 0) goto LAB_0004dbd4;\n      goto LAB_0004dc14;\n    }\n    auStack_144._100_4_ = (**(code **)(puVar56 + 0x28450))((auStack_144._36_4_ + 1) * 4);\n    pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n    if ((re_dfastate_t **)auStack_144._100_4_ == (re_dfastate_t **)0x0) {\nLAB_0004dbb4:\n      prStack_1e4 = (re_dfastate_t *)0xc;\n      goto LAB_0004dbbc;\n    }\n  }\n  else {\n    auStack_144._100_4_ = (re_dfastate_t **)0x0;\n  }\n  iVar31 = prVar53->mb_cur_max;\n  iVar11 = -1;\n  prStack_16c = in_a3;\n  auStack_144._60_4_ = 6;\n  uVar32 = (uint)((int)in_stack_ffffff80 < (int)in_a3);\n  prVar46 = in_stack_ffffff80;\n  if (uVar32 == 0) {\n    iVar11 = 1;\n    prVar46 = in_a3;\n  }\n  if ((int)in_stack_ffffff80 <= (int)in_a3) {\n    in_stack_ffffff80 = in_a3;\n  }\n  if (pcStack_1e0 == (char *)0x0) goto LAB_0004eabc;\n  uVar15 = 4;\n  if (((iVar31 != 1) && (uVar15 = 0, -1 < (int)(preg->input).offsets << 9)) &&\n     (uVar15 = 4, puVar47 != (uchar *)0x0)) {\n    uVar15 = 0;\n  }\n  uVar41 = 2;\n  if (uVar32 != 0) {\n    uVar41 = 0;\n  }\n  uVar41 = puVar47 != (uchar *)0x0 | uVar15 | uVar41;\nLAB_0004dab0:\n  if (((int)prVar46 <= (int)in_a3) && ((int)in_a3 <= (int)in_stack_ffffff80)) {\n    pprVar16 = &prStack_16c;\n    if (uVar32 != 0) {\n      pprVar16 = (re_dfa_t **)0x0;\n    }\n    iVar33 = *(int *)(puVar56 + 0x28244);\n    iVar17 = *(int *)(puVar56 + 0x27edc);\n    iVar34 = *(int *)(puVar56 + 0x2829c);\n    pbVar36 = (re_bitset_ptr_t)auStack_144._24_4_;\n    prVar48 = prStack_88;\n    do {\n      prStack_88 = prVar48;\n      if (uVar41 - 4 < 5) {\n                    /* WARNING: Could not recover jumptable at 0x0004db3c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        rVar7 = (*(code *)(puVar56 + *(int *)(iVar17 + 0x2be4 + (uVar41 - 4) * 4) + 0x2fea4))();\n        return rVar7;\n      }\n      auStack_144._24_4_ = pbVar36;\n      while( true ) {\n        prVar50 = (re_dfa_t *)((int)in_a3 - (int)pbVar36);\n        if ((uint)auStack_144._32_4_ <= prVar50) {\n          prStack_1e4 = (re_dfastate_t *)\n                        (*(code *)(iVar33 + 0x7eac))((re_match_context_t *)auStack_144,in_a3,&_gp);\n          pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n          if (prStack_1e4 != (re_dfastate_t *)0x0) goto LAB_0004dbbc;\n          prVar50 = (re_dfa_t *)((int)in_a3 - auStack_144._24_4_);\n          pbVar36 = (re_bitset_ptr_t)auStack_144._24_4_;\n        }\n        if ((int)in_a3 < (int)prVar48) {\n          cVar29 = pcStack_1e0\n                   [*(byte *)((int)(((re_dfa_t *)\n                                    (((re_dfa_t *)(prVar50->word_char + -0x18))->word_char + -0x18))\n                                    ->word_char + 0xffffffe8) +\n                             (int)((re_dfa_t *)\n                                  (((re_dfa_t *)\n                                   (((re_dfa_t *)\n                                    ((bitset_word_t *)(auStack_144._4_4_ + 0x60) + -0x18))->\n                                    word_char + -0x18))->word_char + -0x18))->word_char +\n                             0xffffffa0U)];\n        }\n        else {\n          cVar29 = *pcStack_1e0;\n        }\n        if (cVar29 != '\0') break;\n        in_a3 = (re_dfa_t *)((int)in_a3->word_char + iVar11 + -0x60);\n        prStack_16c = in_a3;\n        if (((int)in_a3 < (int)prVar46) || ((int)in_stack_ffffff80 < (int)in_a3)) goto LAB_0004df68;\n      }\n      prVar18 = (re_dfastate_t *)\n                re_string_reconstruct((re_string_t *)auStack_144,(Idx)in_a3,0x7d580);\n      uVar44 = auStack_144._84_4_;\n      prVar39 = (re_dfastate_t *)auStack_144._40_4_;\n      pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n      prStack_1e4 = prVar18;\n      if (prVar18 != (re_dfastate_t *)0x0) goto LAB_0004dbbc;\n      if (((iVar31 == 1) || ((re_dfa_t *)auStack_144._28_4_ == (re_dfa_t *)0x0)) ||\n         (*(re_hashval_t *)auStack_144._8_4_ != 0xffffffff)) {\n        auStack_144._120_4_ = (anon_union_4_2_9a799d16_for___pthread_mutex_s_5)0x0;\n        auStack_144._108_4_ = 0;\n        prVar52 = *(re_dfastate_t **)(auStack_144._84_4_ + 0x24);\n        prStack_1d0 = (re_dfastate_t *)auStack_144._40_4_;\n        auStack_144._104_4_ = 0;\n        auStack_168._0_4_ = (re_dfastate_t *)0x0;\n        if ((prVar52->field_0x34 & 1) != 0) {\n          uVar32 = re_string_context_at\n                             ((re_string_t *)auStack_144,\n                              (Idx)&((re_dfastate_t *)(auStack_144._40_4_ + -0x38))->field_0x37,\n                              auStack_144._88_4_);\n          if ((uVar32 & 1) == 0) {\n            if (uVar32 == 0) goto LAB_0004dd24;\n            if ((uVar32 & 6) == 6) {\n              prVar52 = *(re_dfastate_t **)(uVar44 + 0x30);\n            }\n            else if ((uVar32 & 2) == 0) {\n              if ((uVar32 & 4) == 0) goto LAB_0004dd24;\n              prVar52 = re_acquire_state_context\n                                  ((reg_errcode_t *)auStack_168,(re_dfa_t *)uVar44,\n                                   prVar52->entrance_nodes,uVar32);\n            }\n            else {\n              prVar52 = *(re_dfastate_t **)(uVar44 + 0x2c);\n            }\n          }\n          else {\n            prVar52 = *(re_dfastate_t **)(uVar44 + 0x28);\n          }\n          if (prVar52 == (re_dfastate_t *)0x0) goto code_r0x0004ea7c;\n        }\nLAB_0004dd24:\n        bVar4 = pprVar16 != (re_dfa_t **)0x0;\n        if (((re_dfastate_t **)auStack_144._100_4_ == (re_dfastate_t **)0x0) ||\n           (iVar35 = *(Idx *)(uVar44 + 0x4c),\n           *(re_dfastate_t **)(auStack_144._100_4_ + (int)prVar39 * 4) = prVar52, iVar35 == 0)) {\nLAB_0004dd48:\n          if (*(int *)&prVar52->field_0x34 << 4 < 0) {\n            if (((prVar52->field_0x34 & 1) == 0) ||\n               (IVar21 = check_halt_state_context\n                                   ((re_match_context_t *)auStack_144,\n                                    (re_dfastate_t *)(prVar52->nodes).nelem,\n                                    (Idx)&(prVar52->nodes).elems,prVar39), IVar21 != 0)) {\n              prVar38 = prVar39;\n              bVar5 = bVar30;\n              if (!bVar30) goto LAB_0004e0e4;\n            }\n            else {\n              prVar39 = (re_dfastate_t *)0xffffffff;\n              bVar5 = false;\n            }\n          }\n          else {\n            prVar39 = (re_dfastate_t *)0xffffffff;\n            bVar5 = false;\n          }\n          iVar35 = *(int *)(puVar56 + 0x28244);\n          iVar19 = *(int *)(puVar56 + 0x2829c);\n          prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n          pprStack_1dc = pprVar16;\n          while ((int)prVar38 < (int)auStack_144._56_4_) {\n            prVar51 = (re_dfastate_t *)((int)&prVar38->hash + 1);\n            if ((((int)prVar51 < (int)auStack_144._36_4_) ||\n                ((int)auStack_144._48_4_ <= (int)auStack_144._36_4_)) &&\n               (((int)prVar51 < (int)auStack_144._28_4_ ||\n                ((int)auStack_144._48_4_ <= (int)auStack_144._28_4_)))) {\n              iVar20 = *(int *)&prVar52->field_0x34;\n              prVar48 = (re_dfa_t *)auStack_144._84_4_;\n            }\n            else {\n              auStack_168._0_4_ =\n                   (*(code *)(iVar35 + 0x41e4))\n                             ((re_match_context_t *)auStack_144,\n                              (undefined1 *)((int)&prVar38->hash + 2));\n              if ((re_dfastate_t *)auStack_168._0_4_ != (re_dfastate_t *)0x0) {\n                if ((re_dfastate_t *)auStack_168._0_4_ == (re_dfastate_t *)0xc) goto LAB_0004dbf8;\n                uVar44 = 0x46c;\n                goto LAB_0004ea9c;\n              }\n              iVar20 = *(int *)&prVar52->field_0x34;\n              prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n              prVar48 = (re_dfa_t *)auStack_144._84_4_;\n            }\n            auStack_144._84_4_ = prVar48;\n            if (iVar20 << 5 < 0) {\n              iVar20 = (prVar52->nodes).nelem;\n              if (0 < iVar20) {\n                in_a3 = (re_dfa_t *)0x0;\n                iVar24 = *(int *)(puVar56 + 0x28244);\n                pcVar55 = (code *)(*(int *)(puVar56 + 0x28244) + 0x7ab0);\n                do {\n                  prVar40 = prVar48->nodes;\n                  iVar54 = (prVar52->nodes).elems[(int)in_a3];\n                  uVar32 = *(uint *)&prVar40[iVar54].field_0x4;\n                  if ((uVar32 & 0x800) != 0) {\n                    if ((uVar32 & 0xffc000) != 0) {\n                      uVar15 = (*pcVar55)((re_match_context_t *)auStack_144,prVar38,\n                                          auStack_144._88_4_);\n                      uVar32 = (uVar32 << 8) >> 0x16;\n                      if ((uVar32 & 4) == 0) {\n                        uVar37 = uVar15 & 1;\n                        if ((uVar32 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar37 = uVar32 & 8;\n                        if ((uVar15 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar37 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar32 & 0x20) != 0) && ((uVar15 & 2) == 0)) ||\n                         (((uVar32 & 0x80) != 0 && ((uVar15 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    aVar25.__spins =\n                         (*(code *)(iVar19 + -0x4eb0))\n                                   (prVar40,&prVar48->syntax,iVar54,\n                                    (re_match_context_t *)auStack_144,prVar38);\n                    if (aVar25.__spins != 0) {\n                      if ((int)auStack_144._120_4_ < aVar25.__spins) {\n                        auStack_144._120_4_ = aVar25.__spins;\n                      }\n                      puVar45 = (undefined1 *)\n                                ((int)(re_hashval_t *)auStack_144._40_4_ + aVar25.__spins);\n                      auStack_168._4_4_ =\n                           (*(code *)(iVar24 + 0x43b0))((re_match_context_t *)auStack_144,puVar45);\n                      prVar38 = (re_dfastate_t *)auStack_168._4_4_;\n                      if ((re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0)\n                      goto joined_r0x0004e770;\n                      iVar20 = (int)puVar45 * 4;\n                      pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + iVar20);\n                      prVar38 = *pprVar22;\n                      src2 = prVar48->eclosures + prVar48->nexts[iVar54];\n                      if (prVar38 == (re_dfastate_t *)0x0) {\n                        rStack_160.sifted_states = (re_dfastate_t **)src2->alloc;\n                        rStack_160.limited_states = (re_dfastate_t **)src2->nelem;\n                        rStack_160.last_node = (Idx)src2->elems;\n                        uVar32 = (*pcVar55)((re_match_context_t *)auStack_144,\n                                            (re_dfastate_t *)(puVar45 + -1),auStack_144._88_4_);\n                        prVar38 = re_acquire_state_context\n                                            ((reg_errcode_t *)(auStack_168 + 4),prVar48,\n                                             (re_node_set *)(auStack_168 + 8),uVar32);\n                        *pprVar22 = prVar38;\n                      }\n                      else {\n                        auStack_168._4_4_ =\n                             re_node_set_init_union\n                                       ((re_node_set *)(auStack_168 + 8),prVar38->entrance_nodes,\n                                        src2);\n                        prVar38 = (re_dfastate_t *)auStack_168._4_4_;\n                        if ((re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0)\n                        goto joined_r0x0004e770;\n                        uVar32 = (*pcVar55)((re_match_context_t *)auStack_144,\n                                            (re_dfastate_t *)(puVar45 + -1),auStack_144._88_4_);\n                        pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + iVar20);\n                        prVar38 = re_acquire_state_context\n                                            ((reg_errcode_t *)(auStack_168 + 4),prVar48,\n                                             (re_node_set *)(auStack_168 + 8),uVar32);\n                        pcVar8 = *(code **)(puVar56 + 0x28520);\n                        *pprVar22 = prVar38;\n                        (*pcVar8)(rStack_160.last_node);\n                      }\n                      if ((*(re_dfastate_t **)(auStack_144._100_4_ + iVar20) == (re_dfastate_t *)0x0\n                          ) && (prVar38 = (re_dfastate_t *)auStack_168._4_4_,\n                               (re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar20 = (prVar52->nodes).nelem;\n                    prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n                  }\nLAB_0004e670:\n                  in_a3 = (re_dfa_t *)((int)&((re_string_t *)&in_a3->nodes)->raw_mbs + 1);\n                } while ((int)in_a3 < iVar20);\n              }\n              auStack_168._0_4_ = (re_dfastate_t *)0x0;\n            }\n            auStack_144._40_4_ = (int)&prVar38->hash + 1;\n            uVar32 = (uint)*(byte *)((int)((re_dfa_t *)\n                                          ((bitset_word_t *)(auStack_144._4_4_ + 0x60) + -0x18))->\n                                          word_char + (int)&prVar38[-2].non_eps_nodes);\n            do {\n              if (prVar52->trtable != (re_dfastate_t **)0x0) {\n                prVar49 = prVar52->trtable[uVar32];\nLAB_0004ddf0:\n                if ((re_dfastate_t **)auStack_144._100_4_ != (re_dfastate_t **)0x0)\n                goto LAB_0004ddfc;\n                goto LAB_0004de1c;\n              }\n              pprVar22 = prVar52->word_trtable;\n              if (pprVar22 != (re_dfastate_t **)0x0) {\n                uVar15 = re_string_context_at\n                                   ((re_string_t *)auStack_144,\n                                    (Idx)&((re_dfastate_t *)(auStack_144._40_4_ + -0x38))->\n                                          field_0x37,auStack_144._88_4_);\n                if ((uVar15 & 1) == 0) {\n                  prVar49 = pprVar22[uVar32];\n                }\n                else {\n                  prVar49 = pprVar22[uVar32 + 0x100];\n                }\n                goto LAB_0004ddf0;\n              }\n              iVar20 = (*(code *)(iVar34 + -0x7510))(auStack_144._84_4_,prVar52);\n            } while (iVar20 != 0);\n            auStack_168._0_4_ = (re_dfastate_t *)0xc;\n            prVar38 = (re_dfastate_t *)auStack_168._0_4_;\njoined_r0x0004e770:\n            auStack_168._0_4_ = prVar38;\n            if ((re_dfastate_t **)auStack_144._100_4_ == (re_dfastate_t **)0x0) {\n              pprVar22 = (re_dfastate_t **)0x0;\n              goto LAB_0004dbb4;\n            }\n            prVar49 = (re_dfastate_t *)0x0;\nLAB_0004ddfc:\n            prVar49 = merge_state_with_log\n                                ((reg_errcode_t *)auStack_168,(re_match_context_t *)auStack_144,\n                                 prVar49);\nLAB_0004de1c:\n            prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n            if (prVar49 == (re_dfastate_t *)0x0) {\n              pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n              if ((re_dfastate_t *)auStack_168._0_4_ != (re_dfastate_t *)0x0) goto LAB_0004dbb4;\n              if (((re_dfastate_t **)auStack_144._100_4_ == (re_dfastate_t **)0x0) ||\n                 ((bVar5 && (!bVar30)))) break;\n              in_a3 = (re_dfa_t *)auStack_168;\n              do {\n                bVar3 = false;\n                pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + auStack_144._40_4_ * 4);\n                prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n                do {\n                  prVar49 = (re_dfastate_t *)((int)&prVar38->hash + 1);\n                  pprVar22 = pprVar22 + 1;\n                  if ((int)auStack_144._104_4_ < (int)prVar49) {\n                    if (bVar3) {\n                      auStack_144._40_4_ = prVar38;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar3 = true;\n                  prVar38 = prVar49;\n                } while (*pprVar22 == (re_dfastate_t *)0x0);\n                auStack_144._40_4_ = prVar49;\n                prVar49 = merge_state_with_log\n                                    ((reg_errcode_t *)in_a3,(re_match_context_t *)auStack_144,\n                                     (re_dfastate_t *)0x0);\n                prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n                if ((re_dfastate_t *)auStack_168._0_4_ != (re_dfastate_t *)0x0) {\n                  if (prVar49 == (re_dfastate_t *)0x0) goto LAB_0004e0cc;\n                  break;\n                }\n              } while (prVar49 == (re_dfastate_t *)0x0);\n            }\n            prVar6 = prStack_1d0;\n            if ((bVar4) && (prVar6 = prVar51, prVar52 != prVar49)) {\n              bVar4 = false;\n              prVar6 = prStack_1d0;\n            }\n            prStack_1d0 = prVar6;\n            prVar52 = prVar49;\n            auStack_144._40_4_ = prVar38;\n            if (((prVar49->field_0x34 & 8) != 0) &&\n               (((prVar49->field_0x34 & 1) == 0 ||\n                (IVar21 = check_halt_state_context\n                                    ((re_match_context_t *)auStack_144,\n                                     (re_dfastate_t *)(prVar49->nodes).nelem,\n                                     (Idx)&(prVar49->nodes).elems,prVar38), IVar21 != 0)))) {\n              if (!bVar30) goto LAB_0004e0e4;\n              pprStack_1dc = (re_dfa_t **)0x0;\n              prVar39 = prVar38;\n              bVar5 = bVar30;\n            }\n          }\nLAB_0004e0cc:\n          prVar38 = prVar39;\n          if (pprStack_1dc != (re_dfa_t **)0x0) {\n            *pprStack_1dc = (re_dfa_t *)((int)&prStack_1d0->hash + (int)*pprStack_1dc);\n          }\n        }\n        else {\n          pIVar23 = &(prVar52->nodes).nelem;\n          nodes_1 = &(prVar52->nodes).elems;\n          prVar38 = (re_dfastate_t *)\n                    check_subexp_matching_top\n                              ((re_match_context_t *)auStack_144,(re_node_set *)pIVar23,(Idx)nodes_1\n                               ,(re_node_set *)0x0);\n          auStack_168._0_4_ = prVar38;\n          if (prVar38 == (re_dfastate_t *)0x0) {\n            if ((prVar52->field_0x34 & 2) == 0) {\n              bVar4 = false;\n            }\n            else {\n              prVar38 = (re_dfastate_t *)\n                        transit_state_bkref((re_match_context_t *)auStack_144,(re_node_set *)pIVar23\n                                            ,(re_node_set *)nodes_1);\n              auStack_168._0_4_ = prVar38;\n              if (prVar38 != (re_dfastate_t *)0x0) goto LAB_0004e0e4;\n              bVar4 = false;\n            }\n            goto LAB_0004dd48;\n          }\n        }\nLAB_0004e0e4:\n        pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n        if (prVar38 != (re_dfastate_t *)0xffffffff) {\n          if (prVar38 == (re_dfastate_t *)&SUB_fffffffe) goto LAB_0004dbf8;\n          auStack_144._92_4_ = prVar38;\n          if (((preg->input).valid_len & 0x8000000) == 0) {\n            if (!bVar2) {\n              iVar35 = prVar53->nbackref;\n              goto joined_r0x0004e94c;\n            }\n            pcVar55 = (code *)(*(int *)(puVar56 + 0x28244) + 0x7d8c);\n            prVar39 = *(re_dfastate_t **)(auStack_144._100_4_ + (int)prVar38 * 4);\n            auStack_144._96_4_ =\n                 check_halt_state_context\n                           ((re_match_context_t *)auStack_144,\n                            (re_dfastate_t *)(prVar39->nodes).nelem,(Idx)&(prVar39->nodes).elems,\n                            prVar38);\n            if (((char)prVar53->field_0x58 < '\0') || (prVar53->nbackref != 0)) goto LAB_0004e170;\n          }\n          else {\n            iVar35 = prVar53->nbackref;\njoined_r0x0004e94c:\n            if (iVar35 != 0) {\n              pcVar55 = (code *)(*(int *)(puVar56 + 0x28244) + 0x7d8c);\n              prVar39 = *(re_dfastate_t **)(auStack_144._100_4_ + (int)prVar38 * 4);\n              auStack_144._96_4_ =\n                   check_halt_state_context\n                             ((re_match_context_t *)auStack_144,\n                              (re_dfastate_t *)(prVar39->nodes).nelem,(Idx)&(prVar39->nodes).elems,\n                              prVar38);\nLAB_0004e170:\n              pIVar23 = (Idx *)auStack_144._96_4_;\n              uVar44 = auStack_144._84_4_;\n              if (prVar38 < (re_dfastate_t *)0x3fffffff) {\n                prStack_1f0 = (re_dfastate_t *)((int)&prVar38->hash + 1);\n                pprVar22 = (re_dfastate_t **)(**(code **)(puVar56 + 0x28450))((int)prStack_1f0 * 4);\n                if (pprVar22 == (re_dfastate_t **)0x0) goto LAB_0004dbf8;\n                if (*(Idx *)(uVar44 + 0x4c) == 0) {\n                  rStack_160.limited_states = (re_dfastate_t **)0x0;\n                  rStack_160.limits.alloc = 0;\n                  rStack_160.limits.nelem = 0;\n                  rStack_160.limits.elems = (Idx *)0x0;\n                  rStack_160.sifted_states = pprVar22;\n                  rStack_160.last_node = (Idx)pIVar23;\n                  rStack_160.last_str_idx = (Idx)prVar38;\n                  prStack_1e4 = (re_dfastate_t *)\n                                sift_states_backward\n                                          ((re_match_context_t *)auStack_144,\n                                           (re_sift_context_t *)(auStack_168 + 8));\n                  (**(code **)(puVar56 + 0x28520))(rStack_160.limits.elems);\n                  if (prStack_1e4 == (re_dfastate_t *)0x0) {\n                    if (*pprVar22 == (re_dfastate_t *)0x0) {\n                      (**(code **)(puVar56 + 0x28520))(pprVar22);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar56 + 0x28520))(auStack_144._100_4_);\n                    auStack_144._92_4_ = prVar38;\n                    auStack_144._96_4_ = pIVar23;\n                    auStack_144._100_4_ = pprVar22;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  pprStack_1ec = (re_dfastate_t **)0x0;\n                }\n                else {\n                  pprStack_1ec = (re_dfastate_t **)\n                                 (**(code **)(puVar56 + 0x28450))((int)prStack_1f0 * 4);\n                  if (pprStack_1ec == (re_dfastate_t **)0x0) {\n                    (**(code **)(puVar56 + 0x28520))(pprVar22);\n                    prStack_1e4 = (re_dfastate_t *)0xc;\n                    pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar35 = *(int *)(puVar56 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar56 + 0x283f8))(pprStack_1ec,0,(int)prStack_1f0 * 4);\n                    rStack_160.limits.alloc = 0;\n                    rStack_160.limits.nelem = 0;\n                    rStack_160.limits.elems = (Idx *)0x0;\n                    rStack_160.sifted_states = pprVar22;\n                    rStack_160.limited_states = pprStack_1ec;\n                    rStack_160.last_node = (Idx)pIVar23;\n                    rStack_160.last_str_idx = (Idx)prVar38;\n                    prStack_1e4 = (re_dfastate_t *)\n                                  (*(code *)(iVar35 + -0x2cf4))\n                                            ((re_match_context_t *)auStack_144,auStack_168 + 8);\n                    (**(code **)(puVar56 + 0x28520))(rStack_160.limits.elems);\n                    if (prStack_1e4 != (re_dfastate_t *)0x0) break;\n                    if ((*pprVar22 != (re_dfastate_t *)0x0) ||\n                       (*pprStack_1ec != (re_dfastate_t *)0x0)) {\n                      prStack_1e4 = (re_dfastate_t *)\n                                    merge_state_array((re_dfa_t *)uVar44,pprVar22,pprStack_1ec,\n                                                      (Idx)prStack_1f0);\n                      (**(code **)(puVar56 + 0x28520))(pprStack_1ec);\n                      if (prStack_1e4 != (re_dfastate_t *)0x0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    iVar19 = auStack_144._100_4_ + (int)prStack_1f0 * 4 + -4;\n                    prStack_1f0 = prVar38;\n                    while( true ) {\n                      prVar38 = (re_dfastate_t *)&prStack_1f0[-1].field_0x37;\n                      if (prVar38 == (re_dfastate_t *)0xffffffff) {\n                        (**(code **)(puVar56 + 0x28520))(pprVar22);\n                        (**(code **)(puVar56 + 0x28520))(pprStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar20 = *(int *)(iVar19 + -4);\n                      if ((iVar20 != 0) && ((*(byte *)(iVar20 + 0x34) & 8) != 0)) break;\n                      iVar19 = iVar19 + -4;\n                      prStack_1f0 = prVar38;\n                    }\n                    pIVar23 = (Idx *)(*pcVar55)((re_match_context_t *)auStack_144,\n                                                *(undefined4 *)(iVar20 + 8),iVar20 + 0xc,prVar38);\n                  }\n                }\n                (**(code **)(puVar56 + 0x28520))(pprVar22);\n                (**(code **)(puVar56 + 0x28520))(pprStack_1ec);\n                pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n                if (prStack_1e4 == (re_dfastate_t *)0x1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }\n              prStack_1e4 = (re_dfastate_t *)0xc;\n              goto LAB_0004dbbc;\n            }\n          }\nLAB_0004e7e0:\n          pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n          prStack_1e4 = prVar18;\n          if (prStack_78 == (re_dfa_t *)0x0) goto LAB_0004dbbc;\n          IVar21 = (preg->input).valid_len;\n          if (bVar2) {\n            prVar27 = prStack_74 + 1;\n            do {\n              prVar27->rm_eo = -1;\n              prVar26 = prVar27 + 1;\n              prVar27->rm_so = -1;\n              prVar27 = prVar26;\n            } while (prStack_74 + (int)prStack_78 != prVar26);\n            prStack_74->rm_so = 0;\n            prStack_74->rm_eo = auStack_144._92_4_;\n            if ((IVar21 & 0x8000000) == 0) {\n              if ((char)prVar53->field_0x58 < '\0') {\n                bVar30 = 0 < prVar53->nbackref;\n              }\n              else {\n                bVar30 = false;\n              }\n              prStack_1e4 = (re_dfastate_t *)\n                            set_regs((regex_t *)preg,(re_match_context_t *)auStack_144,\n                                     (size_t)prStack_78,prStack_74,bVar30);\n              pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n              if (prStack_1e4 != (re_dfastate_t *)0x0) goto LAB_0004dbbc;\n              prVar46 = (re_dfa_t *)prStack_74->rm_so;\n            }\n            else {\nLAB_0004e838:\n              prVar46 = (re_dfa_t *)0x0;\n            }\n            prVar48 = (re_dfa_t *)0x0;\n            prVar27 = prStack_74;\n            while( true ) {\n              if (prVar46 != (re_dfa_t *)0xffffffff) {\n                prVar42 = (re_dfa_t *)prVar27->rm_eo;\n                prVar50 = prVar46;\n                prVar43 = prVar42;\n                if (auStack_144[0x4c] != '\0') {\n                  prVar50 = (re_dfa_t *)auStack_144._32_4_;\n                  if ((re_dfa_t *)auStack_144._28_4_ != prVar46) {\n                    prVar50 = (re_dfa_t *)((re_hashval_t *)auStack_144._12_4_)[(int)prVar46];\n                  }\n                  prVar27->rm_so = (regoff_t)prVar50;\n                  prVar43 = (re_dfa_t *)auStack_144._32_4_;\n                  if ((re_dfa_t *)auStack_144._28_4_ != prVar42) {\n                    prVar43 = (re_dfa_t *)((re_hashval_t *)auStack_144._12_4_)[(int)prVar42];\n                  }\n                }\n                prVar27->rm_so =\n                     (int)(((re_dfa_t *)\n                           (((re_dfa_t *)(prVar50->word_char + -0x18))->word_char + -0x18))->\n                           word_char + 0xffffffe8) +\n                     (int)((re_dfa_t *)\n                          (((re_dfa_t *)\n                           (((re_dfa_t *)(prStack_16c->word_char + -0x18))->word_char + -0x18))->\n                           word_char + -0x18))->word_char + 0xffffffa0U;\n                prVar27->rm_eo =\n                     (int)(((re_dfa_t *)\n                           (((re_dfa_t *)(prVar43->word_char + -0x18))->word_char + -0x18))->\n                           word_char + 0xffffffe8) +\n                     (int)((re_dfa_t *)\n                          (((re_dfa_t *)\n                           (((re_dfa_t *)(prStack_16c->word_char + -0x18))->word_char + -0x18))->\n                           word_char + -0x18))->word_char + 0xffffffa0U;\n              }\n              prVar48 = (re_dfa_t *)((int)&prVar48->nodes + 1);\n              prVar27 = prVar27 + 1;\n              if (prVar48 == prStack_78) break;\n              prVar46 = (re_dfa_t *)prVar27->rm_so;\n            }\n            if (0 < iStack_180) {\n              prVar27 = prStack_74 + (int)prStack_78;\n              do {\n                prVar27->rm_so = -1;\n                prVar26 = prVar27 + 1;\n                prVar27->rm_eo = -1;\n                prVar27 = prVar26;\n              } while (prStack_74 + (int)prStack_78->word_char + iStack_180 + -0x60 != prVar26);\n            }\n            pIVar23 = prVar53->subexp_map;\n            pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n            prStack_1e4 = prVar18;\n            if (pIVar23 != (Idx *)0x0) {\n              puVar45 = (undefined1 *)0x0;\n              prVar27 = prStack_74;\n              do {\n                pcVar55 = *(code **)(puVar56 + 0x28520);\n                if (puVar45 == (undefined1 *)((int)&prStack_78[-1].lock + 0x17)) goto LAB_0004dbc0;\n                if ((undefined1 *)*pIVar23 != puVar45) {\n                  prVar27[1].rm_so = prStack_74[(int)((undefined1 *)*pIVar23 + 1)].rm_so;\n                  prVar27[1].rm_eo = prStack_74[*pIVar23 + 1].rm_eo;\n                }\n                puVar45 = puVar45 + 1;\n                pIVar23 = pIVar23 + 1;\n                prVar27 = prVar27 + 1;\n              } while( true );\n            }\n            goto LAB_0004dbbc;\n          }\n          prStack_74->rm_so = 0;\n          prStack_74->rm_eo = auStack_144._92_4_;\n          goto LAB_0004e838;\n        }\nLAB_0004e2d4:\n        match_ctx_clean((re_match_context_t *)auStack_144);\n        in_a3 = prStack_16c;\n      }\n      in_a3 = (re_dfa_t *)((int)in_a3->word_char + iVar11 + -0x60);\n      prStack_16c = in_a3;\n      if (((int)in_a3 < (int)prVar46) ||\n         (pbVar36 = (re_bitset_ptr_t)auStack_144._24_4_, prVar48 = prStack_88,\n         (int)in_stack_ffffff80 < (int)in_a3)) break;\n    } while( true );\n  }\nLAB_0004df68:\n  prStack_1e4 = (re_dfastate_t *)0x1;\n  pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n  goto LAB_0004dbbc;\ncode_r0x0004ea7c:\n  prStack_1e4 = (re_dfastate_t *)auStack_168._0_4_;\n  pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n  if ((re_dfastate_t *)auStack_168._0_4_ == (re_dfastate_t *)0xc) goto LAB_0004dbbc;\n  uVar44 = 0x435;\nLAB_0004ea9c:\n  (**(code **)(puVar56 + 0x282f4))\n            (*(int *)(puVar56 + 0x27edc) + 0x2b30,*(int *)(puVar56 + 0x27edc) + 0x2ac0,uVar44,\n             *(int *)(puVar56 + 0x27edc) + 0x3030);\n  uVar32 = extraout_v1;\n  preg = (re_match_context_t *)auStack_144;\nLAB_0004eabc:\n  uVar41 = 8;\n  goto LAB_0004dab0;\n}" type_identifier (function_declarator "sift_states_backward(re_match_context_t *mctx,re_sift_context_t *sctx)" identifier (parameter_list "(re_match_context_t *mctx,re_sift_context_t *sctx)" ( (parameter_declaration "re_match_context_t *mctx" type_identifier (pointer_declarator "*mctx" * identifier)) , (parameter_declaration "re_sift_context_t *sctx" type_identifier (pointer_declarator "*sctx" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  bool bVar2;\n  bool bVar3;\n  bool bVar4;\n  bool bVar5;\n  re_dfastate_t *prVar6;\n  undefined3 extraout_var;\n  reg_errcode_t rVar7;\n  code *pcVar8;\n  code *pcVar9;\n  code *pcVar10;\n  _Bool _Var28;\n  int iVar11;\n  int *piVar12;\n  wint_t *pwVar13;\n  re_backref_cache_entry *prVar14;\n  uint uVar15;\n  re_dfa_t **pprVar16;\n  int iVar17;\n  re_dfastate_t *prVar18;\n  int iVar19;\n  int iVar20;\n  Idx IVar21;\n  re_dfastate_t **pprVar22;\n  char cVar29;\n  Idx *pIVar23;\n  int iVar24;\n  anon_union_4_2_9a799d16_for___pthread_mutex_s_5 aVar25;\n  regmatch_t *prVar26;\n  regmatch_t *prVar27;\n  bool bVar30;\n  re_match_context_t *preg;\n  int iVar31;\n  uint uVar32;\n  uint extraout_v1;\n  int iVar33;\n  int iVar34;\n  int iVar35;\n  re_bitset_ptr_t pbVar36;\n  uint uVar37;\n  re_dfastate_t *prVar38;\n  re_dfastate_t *prVar39;\n  re_token_t *prVar40;\n  undefined1 *new_buf_len;\n  uint uVar41;\n  re_dfa_t *prVar42;\n  re_dfa_t *prVar43;\n  re_dfa_t *in_a2;\n  re_node_set *src2;\n  undefined4 uVar44;\n  re_dfa_t *in_a3;\n  undefined1 *puVar45;\n  re_dfa_t *prVar46;\n  uchar *puVar47;\n  re_dfa_t *prVar48;\n  re_dfastate_t *prVar49;\n  Idx **nodes_1;\n  re_dfa_t *prVar50;\n  re_dfastate_t *prVar51;\n  re_dfa_t *unaff_s4;\n  re_dfastate_t *prVar52;\n  int unaff_s5;\n  re_dfastate_t *unaff_s6;\n  re_dfa_t *prVar53;\n  int iVar54;\n  re_dfa_t *unaff_s7;\n  code *pcVar55;\n  undefined *puVar56;\n  int unaff_s8;\n  re_dfastate_t *prStack_1f0;\n  re_dfastate_t **pprStack_1ec;\n  re_dfastate_t *prStack_1e4;\n  char *pcStack_1e0;\n  re_dfa_t **pprStack_1dc;\n  re_dfastate_t *prStack_1d0;\n  int iStack_180;\n  re_dfa_t *prStack_16c;\n  undefined1 auStack_168 [8];\n  re_sift_context_t rStack_160;\n  undefined1 auStack_144 [128];\n  int iStack_c4;\n  re_sub_match_top_t **pprStack_c0;\n  int iStack_bc;\n  re_dfa_t *prStack_b8;\n  re_sift_context_t *prStack_b4;\n  re_match_context_t *prStack_b0;\n  re_dfa_t *prStack_ac;\n  re_dfa_t *prStack_a8;\n  int iStack_a4;\n  re_dfastate_t *prStack_a0;\n  re_dfa_t *prStack_9c;\n  int iStack_98;\n  code *pcStack_94;\n  re_dfa_t *prStack_88;\n  re_dfa_t *in_stack_ffffff80;\n  re_dfa_t *prStack_7c;\n  re_dfa_t *prStack_78;\n  regmatch_t *prStack_74;\n  int iStack_64;\n  re_node_set cur_dest;\n  \n  puVar56 = PTR___stack_chk_guard_00075be8;\n  cur_dest.alloc = 1;\n  cur_dest.nelem = 1;\n  preg = *(re_match_context_t **)PTR___stack_chk_guard_00075be8;\n  prVar48 = (re_dfa_t *)sctx->last_str_idx;\n  prVar50 = (re_dfa_t *)sctx->last_node;\n  prVar46 = (re_dfa_t *)sctx;\n  cur_dest.elems = (Idx *)(*(code *)PTR_malloc_00075b2c)(4);\n  if (cur_dest.elems == (Idx *)0x0) {\n    rVar7 = _REG_ESPACE;\n  }\n  else {\n    *cur_dest.elems = (Idx)prVar50;\n    pcVar55 = (code *)(PTR_LAB_00075978 + -0x1248);\n    prVar46 = (re_dfa_t *)sctx;\n    in_a2 = prVar48;\n    in_a3 = (re_dfa_t *)&cur_dest;\n    rVar7 = update_cur_sifted_state(mctx,sctx,(Idx)prVar48,&cur_dest);\n    if (rVar7 == _REG_NOERROR) {\n      iStack_64 = 0;\n      if (0 < (int)prVar48) {\n        pcVar8 = (code *)(PTR_LAB_00075920 + 0x5610);\n        pcVar9 = (code *)(PTR_LAB_00075920 + 0x33f8);\n        pcVar10 = (code *)(PTR_LAB_00075920 + 0x5230);\n        do {\n          unaff_s7 = (re_dfa_t *)((int)prVar48 * 4);\n          if (*(int *)((int)unaff_s7->word_char + (int)(sctx->sifted_states + -0x18)) == 0) {\n            iStack_64 = iStack_64 + 1;\n            if (mctx->max_mb_elem_len < iStack_64) goto LAB_0004d6a0;\n          }\n          else {\n            iStack_64 = 0;\n            if (mctx->max_mb_elem_len < 0) {\nLAB_0004d6a0:\n              prVar46 = (re_dfa_t *)0x0;\n              in_a2 = unaff_s7;\n              (*(code *)PTR_memset_00075ad4)();\n              (*(code *)PTR_free_00075bfc)(cur_dest.elems);\n              rVar7 = _REG_NOERROR;\n              goto LAB_0004d644;\n            }\n          }\n          cur_dest.nelem = 0;\n          unaff_s6 = (mctx->state_log + (int)prVar48)[-1];\n          prVar48 = (re_dfa_t *)(prVar48[-1].lock.__size + 0x17);\n          if ((unaff_s6 != (re_dfastate_t *)0x0) &&\n             (unaff_s4 = mctx->dfa, 0 < (unaff_s6->non_eps_nodes).nelem)) {\n            unaff_s5 = 0;\n            do {\n              prVar50 = (re_dfa_t *)(unaff_s6->non_eps_nodes).elems[unaff_s5];\n              unaff_s8 = (int)prVar50 * 8;\n              prVar40 = unaff_s4->nodes + (int)prVar50;\n              if ((*(uint *)&prVar40->field_0x4 & 0x800) == 0) {\nLAB_0004d464:\n                _Var28 = check_node_accept(mctx,prVar40,(Idx)prVar48);\n                if ((CONCAT31(extraout_var,_Var28) != 0) &&\n                   (iVar11 = *(int *)((int)unaff_s7->word_char + (int)(sctx->sifted_states + -0x18))\n                   , iVar11 != 0)) {\n                  in_a2 = (re_dfa_t *)unaff_s4->nexts[(int)prVar50];\n                  iVar31 = (*pcVar10)(*(undefined4 *)(iVar11 + 8),iVar11 + 0xc);\n                  iVar11 = 1;\n                  if (iVar31 != 0) goto LAB_0004d4b4;\n                }\n              }\n              else {\n                prVar46 = mctx->dfa;\n                iVar31 = sctx->last_str_idx;\n                in_a2 = prVar50;\n                in_a3 = (re_dfa_t *)mctx;\n                in_stack_ffffff80 = prVar48;\n                iVar11 = check_node_accept_bytes\n                                   ((re_dfa_t *)prVar46->nodes,(Idx)&prVar46->syntax,\n                                    (re_string_t *)prVar50,(Idx)mctx,prVar48);\n                if (iVar11 < 1) {\n                  if (iVar11 == 0) {\n                    prVar40 = unaff_s4->nodes;\n                    goto LAB_0004d460;\n                  }\n                }\n                else {\n                  iVar17 = (int)prVar48->word_char + iVar11 + -0x60;\n                  if (iVar17 <= iVar31) {\n                    prVar39 = sctx->sifted_states[iVar17];\n                    if (prVar39 != (re_dfastate_t *)0x0) {\n                      in_a2 = (re_dfa_t *)prVar46->nexts[(int)prVar50];\n                      iVar31 = (*pcVar10)((prVar39->nodes).nelem,&(prVar39->nodes).elems);\n                      if (iVar31 != 0) goto LAB_0004d4b4;\n                    }\n                    prVar40 = unaff_s4->nodes;\nLAB_0004d460:\n                    prVar40 = prVar40 + (int)prVar50;\n                    goto LAB_0004d464;\n                  }\n                }\nLAB_0004d4b4:\n                if ((sctx->limits).nelem != 0) {\n                  in_stack_ffffff80 = (re_dfa_t *)((int)prVar48->word_char + iVar11 + -0x60);\n                  in_a2 = (re_dfa_t *)&(sctx->limits).elems;\n                  in_a3 = (re_dfa_t *)unaff_s4->nexts[(int)prVar50];\n                  iVar11 = (*pcVar8)(mctx,&(sctx->limits).nelem);\n                  prStack_7c = prVar50;\n                  prStack_78 = prVar48;\n                  if (iVar11 != 0) goto LAB_0004d510;\n                }\n                prVar46 = prVar50;\n                iVar11 = (*pcVar9)((re_dfa_t *)&cur_dest);\n                if (iVar11 == 0) {\n                  rVar7 = _REG_ESPACE;\n                  goto LAB_0004d62c;\n                }\n              }\nLAB_0004d510:\n              unaff_s5 = unaff_s5 + 1;\n              in_a3 = (re_dfa_t *)&cur_dest;\n            } while (unaff_s5 < (unaff_s6->non_eps_nodes).nelem);\n          }\n          prVar46 = (re_dfa_t *)sctx;\n          in_a2 = prVar48;\n          in_a3 = (re_dfa_t *)&cur_dest;\n          rVar7 = (*pcVar55)(mctx);\n          if (rVar7 != _REG_NOERROR) goto LAB_0004d62c;\n        } while (prVar48 != (re_dfa_t *)0x0);\n      }\n      rVar7 = _REG_NOERROR;\n    }\nLAB_0004d62c:\n    (*(code *)PTR_free_00075bfc)(cur_dest.elems);\n  }\nLAB_0004d644:\n  if (preg == *(re_match_context_t **)puVar56) {\n    return rVar7;\n  }\n  pcVar55 = re_search_internal;\n  puVar56 = PTR___stack_chk_fail_00075ba8;\n  (*(code *)PTR___stack_chk_fail_00075ba8)();\n  piVar12 = *(int **)(puVar56 + 0x2850c);\n  iStack_bc = *piVar12;\n  prVar53 = (re_dfa_t *)(preg->input).raw_mbs;\n  prStack_b8 = prVar48;\n  prStack_b4 = sctx;\n  prStack_b0 = mctx;\n  prStack_ac = prVar50;\n  prStack_a8 = unaff_s4;\n  iStack_a4 = unaff_s5;\n  prStack_a0 = unaff_s6;\n  prStack_9c = unaff_s7;\n  iStack_98 = unaff_s8;\n  pcStack_94 = pcVar55;\n  prStack_88 = in_a2;\n  (**(code **)(puVar56 + 0x283f8))((re_match_context_t *)auStack_144,0,0x88);\n  pcStack_1e0 = (char *)(preg->input).cur_state.__count;\n  if (pcStack_1e0 != (char *)0x0) {\n    bVar1 = *(byte *)&(preg->input).valid_len;\n    if (((bVar1 & 0x10) == 0) || (in_a3 == in_stack_ffffff80)) {\n      pcStack_1e0 = (char *)0x0;\n    }\n    else if ((char)bVar1 < '\0') {\n      pcStack_1e0 = (char *)0x0;\n    }\n  }\n  prVar48 = (re_dfa_t *)(preg->input).raw_mbs_idx;\n  if (prVar48 < prStack_78) {\n    puVar45 = (undefined1 *)((int)&prStack_78[-1].lock + 0x17);\n    iStack_180 = (int)puVar45 - (int)prVar48;\n    prStack_78 = (re_dfa_t *)((int)prStack_78 + ((int)prVar48 - (int)puVar45));\n    pwVar13 = (preg->input).wcs;\n  }\n  else {\n    pwVar13 = (preg->input).wcs;\n    iStack_180 = 0;\n  }\n  auStack_144._84_4_ = prVar53;\n  if ((((pwVar13 == (wint_t *)0x0) || (prVar53->init_state == (re_dfastate_t *)0x0)) ||\n      (prVar53->init_state_word == (re_dfastate_t *)0x0)) ||\n     ((prVar53->init_state_nl == (re_dfastate_t *)0x0 ||\n      (prVar53->init_state_begbuf == (re_dfastate_t *)0x0)))) {\nLAB_0004db54:\n    prStack_1e4 = (re_dfastate_t *)0x1;\n    goto LAB_0004db58;\n  }\n  if ((((prVar53->init_state->nodes).nelem == 0) && ((prVar53->init_state_word->nodes).nelem == 0))\n     && (((prVar53->init_state_nl->nodes).nelem == 0 || (((preg->input).valid_len & 0x1000000) == 0)\n         ))) {\n    if (in_a3 == (re_dfa_t *)0x0) {\n      in_stack_ffffff80 = (re_dfa_t *)0x0;\n    }\n    else {\n      if (in_stack_ffffff80 != (re_dfa_t *)0x0) goto LAB_0004db54;\n      in_a3 = (re_dfa_t *)0x0;\n    }\n  }\n  if (prStack_78 == (re_dfa_t *)0x0) {\n    bVar30 = prVar53->nbackref != 0;\n  }\n  else {\n    bVar30 = true;\n  }\n  auStack_144._80_4_ = prVar53->mb_cur_max;\n  puVar45 = (undefined1 *)(prVar53->nodes_len + 1);\n  puVar47 = (uchar *)(preg->input).cur_state.__value.__wch;\n  if ((int)puVar45 < (int)auStack_144._80_4_) {\n    puVar45 = (undefined1 *)auStack_144._80_4_;\n  }\n  new_buf_len = (undefined1 *)((int)&prStack_88->nodes + 1);\n  auStack_144[0x48] = (byte)((uint)((int)(preg->input).offsets << 9) >> 0x1f);\n  auStack_144[0x4b] = 1;\n  if (puVar47 == (uchar *)0x0) {\n    auStack_144[0x4b] = auStack_144[0x48];\n  }\n  if ((int)puVar45 <= (int)new_buf_len) {\n    new_buf_len = puVar45;\n  }\n  auStack_144[0x49] = (byte)((uint)(*(int *)&prVar53->field_0x58 << 2) >> 0x1f);\n  auStack_144[0x4a] = (byte)((uint)(*(int *)&prVar53->field_0x58 << 3) >> 0x1f);\n  auStack_144._48_4_ = prStack_88;\n  auStack_144._44_4_ = prStack_88;\n  auStack_144._56_4_ = prStack_88;\n  auStack_144._52_4_ = prStack_88;\n  auStack_144._0_4_ = prVar46;\n  auStack_144._64_4_ = puVar47;\n  prStack_1e4 = (re_dfastate_t *)\n                re_string_realloc_buffers((re_string_t *)auStack_144,(Idx)new_buf_len);\n  pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n  if (prStack_1e4 != (re_dfastate_t *)0x0) {\nLAB_0004dbbc:\n    while( true ) {\n      pcVar55 = *(code **)(puVar56 + 0x28520);\nLAB_0004dbc0:\n      (*pcVar55)(pprVar22);\n      if (prVar53->nbackref != 0) {\nLAB_0004dc14:\n        match_ctx_clean((re_match_context_t *)auStack_144);\n        (**(code **)(puVar56 + 0x28520))(pprStack_c0);\n        (**(code **)(puVar56 + 0x28520))(auStack_144._116_4_);\n      }\nLAB_0004dbd4:\n      re_string_destruct((re_string_t *)auStack_144);\nLAB_0004db58:\n      if (iStack_bc == *piVar12) break;\n      prStack_1e4 = (re_dfastate_t *)(**(code **)(puVar56 + 0x284cc))();\n      pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n    }\n    return (reg_errcode_t)prStack_1e4;\n  }\n  auStack_144._68_4_ = prVar53->word_char;\n  auStack_144[0x4e] = (byte)((uint)(*(int *)&prVar53->field_0x58 << 4) >> 0x1f);\n  if ((auStack_144[0x4b] != 0) ||\n     (auStack_144._4_4_ = prVar46, auStack_144._28_4_ = prStack_88, 1 < prVar53->mb_cur_max)) {\n    auStack_144._28_4_ = (re_dfa_t *)0x0;\n  }\n  auStack_144._56_4_ = prStack_7c;\n  auStack_144._52_4_ = prStack_7c;\n  auStack_144._32_4_ = auStack_144._28_4_;\n  auStack_144[0x4d] = (byte)((uint)((preg->input).valid_len << 7) >> 0x1f);\n  iVar11 = prVar53->nbackref;\n  iVar31 = iVar11 * 2;\n  auStack_144._88_4_ = &_gp;\n  auStack_144._92_4_ = (re_dfastate_t *)0xffffffff;\n  if (0 < iVar31) {\n    if (0xccccccc < iVar31) goto LAB_0004dbf8;\n    prVar14 = (re_backref_cache_entry *)(**(code **)(puVar56 + 0x28450))(iVar11 * 0x28);\n    auStack_144._116_4_ = prVar14;\n    pprStack_c0 = (re_sub_match_top_t **)(**(code **)(puVar56 + 0x28450))(iVar11 * 8);\n    if ((prVar14 == (re_backref_cache_entry *)0x0) || (pprStack_c0 == (re_sub_match_top_t **)0x0))\n    goto LAB_0004dbf8;\n  }\n  auStack_144._112_4_ = iVar31;\n  iStack_c4 = iVar31;\n  bVar2 = (re_dfa_t *)0x1 < prStack_78;\n  auStack_144._120_4_ = (anon_union_4_2_9a799d16_for___pthread_mutex_s_5)0x1;\n  if ((bVar2) || ((prVar53->field_0x58 & 0x40) != 0)) {\n    if (0x3ffffffe < (uint)auStack_144._36_4_) {\nLAB_0004dbf8:\n      prStack_1e4 = (re_dfastate_t *)0xc;\n      (**(code **)(puVar56 + 0x28520))(auStack_144._100_4_);\n      if (prVar53->nbackref == 0) goto LAB_0004dbd4;\n      goto LAB_0004dc14;\n    }\n    auStack_144._100_4_ = (**(code **)(puVar56 + 0x28450))((auStack_144._36_4_ + 1) * 4);\n    pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n    if ((re_dfastate_t **)auStack_144._100_4_ == (re_dfastate_t **)0x0) {\nLAB_0004dbb4:\n      prStack_1e4 = (re_dfastate_t *)0xc;\n      goto LAB_0004dbbc;\n    }\n  }\n  else {\n    auStack_144._100_4_ = (re_dfastate_t **)0x0;\n  }\n  iVar31 = prVar53->mb_cur_max;\n  iVar11 = -1;\n  prStack_16c = in_a3;\n  auStack_144._60_4_ = 6;\n  uVar32 = (uint)((int)in_stack_ffffff80 < (int)in_a3);\n  prVar46 = in_stack_ffffff80;\n  if (uVar32 == 0) {\n    iVar11 = 1;\n    prVar46 = in_a3;\n  }\n  if ((int)in_stack_ffffff80 <= (int)in_a3) {\n    in_stack_ffffff80 = in_a3;\n  }\n  if (pcStack_1e0 == (char *)0x0) goto LAB_0004eabc;\n  uVar15 = 4;\n  if (((iVar31 != 1) && (uVar15 = 0, -1 < (int)(preg->input).offsets << 9)) &&\n     (uVar15 = 4, puVar47 != (uchar *)0x0)) {\n    uVar15 = 0;\n  }\n  uVar41 = 2;\n  if (uVar32 != 0) {\n    uVar41 = 0;\n  }\n  uVar41 = puVar47 != (uchar *)0x0 | uVar15 | uVar41;\nLAB_0004dab0:\n  if (((int)prVar46 <= (int)in_a3) && ((int)in_a3 <= (int)in_stack_ffffff80)) {\n    pprVar16 = &prStack_16c;\n    if (uVar32 != 0) {\n      pprVar16 = (re_dfa_t **)0x0;\n    }\n    iVar33 = *(int *)(puVar56 + 0x28244);\n    iVar17 = *(int *)(puVar56 + 0x27edc);\n    iVar34 = *(int *)(puVar56 + 0x2829c);\n    pbVar36 = (re_bitset_ptr_t)auStack_144._24_4_;\n    prVar48 = prStack_88;\n    do {\n      prStack_88 = prVar48;\n      if (uVar41 - 4 < 5) {\n                    /* WARNING: Could not recover jumptable at 0x0004db3c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        rVar7 = (*(code *)(puVar56 + *(int *)(iVar17 + 0x2be4 + (uVar41 - 4) * 4) + 0x2fea4))();\n        return rVar7;\n      }\n      auStack_144._24_4_ = pbVar36;\n      while( true ) {\n        prVar50 = (re_dfa_t *)((int)in_a3 - (int)pbVar36);\n        if ((uint)auStack_144._32_4_ <= prVar50) {\n          prStack_1e4 = (re_dfastate_t *)\n                        (*(code *)(iVar33 + 0x7eac))((re_match_context_t *)auStack_144,in_a3,&_gp);\n          pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n          if (prStack_1e4 != (re_dfastate_t *)0x0) goto LAB_0004dbbc;\n          prVar50 = (re_dfa_t *)((int)in_a3 - auStack_144._24_4_);\n          pbVar36 = (re_bitset_ptr_t)auStack_144._24_4_;\n        }\n        if ((int)in_a3 < (int)prVar48) {\n          cVar29 = pcStack_1e0\n                   [*(byte *)((int)(((re_dfa_t *)\n                                    (((re_dfa_t *)(prVar50->word_char + -0x18))->word_char + -0x18))\n                                    ->word_char + 0xffffffe8) +\n                             (int)((re_dfa_t *)\n                                  (((re_dfa_t *)\n                                   (((re_dfa_t *)\n                                    ((bitset_word_t *)(auStack_144._4_4_ + 0x60) + -0x18))->\n                                    word_char + -0x18))->word_char + -0x18))->word_char +\n                             0xffffffa0U)];\n        }\n        else {\n          cVar29 = *pcStack_1e0;\n        }\n        if (cVar29 != '\0') break;\n        in_a3 = (re_dfa_t *)((int)in_a3->word_char + iVar11 + -0x60);\n        prStack_16c = in_a3;\n        if (((int)in_a3 < (int)prVar46) || ((int)in_stack_ffffff80 < (int)in_a3)) goto LAB_0004df68;\n      }\n      prVar18 = (re_dfastate_t *)\n                re_string_reconstruct((re_string_t *)auStack_144,(Idx)in_a3,0x7d580);\n      uVar44 = auStack_144._84_4_;\n      prVar39 = (re_dfastate_t *)auStack_144._40_4_;\n      pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n      prStack_1e4 = prVar18;\n      if (prVar18 != (re_dfastate_t *)0x0) goto LAB_0004dbbc;\n      if (((iVar31 == 1) || ((re_dfa_t *)auStack_144._28_4_ == (re_dfa_t *)0x0)) ||\n         (*(re_hashval_t *)auStack_144._8_4_ != 0xffffffff)) {\n        auStack_144._120_4_ = (anon_union_4_2_9a799d16_for___pthread_mutex_s_5)0x0;\n        auStack_144._108_4_ = 0;\n        prVar52 = *(re_dfastate_t **)(auStack_144._84_4_ + 0x24);\n        prStack_1d0 = (re_dfastate_t *)auStack_144._40_4_;\n        auStack_144._104_4_ = 0;\n        auStack_168._0_4_ = (re_dfastate_t *)0x0;\n        if ((prVar52->field_0x34 & 1) != 0) {\n          uVar32 = re_string_context_at\n                             ((re_string_t *)auStack_144,\n                              (Idx)&((re_dfastate_t *)(auStack_144._40_4_ + -0x38))->field_0x37,\n                              auStack_144._88_4_);\n          if ((uVar32 & 1) == 0) {\n            if (uVar32 == 0) goto LAB_0004dd24;\n            if ((uVar32 & 6) == 6) {\n              prVar52 = *(re_dfastate_t **)(uVar44 + 0x30);\n            }\n            else if ((uVar32 & 2) == 0) {\n              if ((uVar32 & 4) == 0) goto LAB_0004dd24;\n              prVar52 = re_acquire_state_context\n                                  ((reg_errcode_t *)auStack_168,(re_dfa_t *)uVar44,\n                                   prVar52->entrance_nodes,uVar32);\n            }\n            else {\n              prVar52 = *(re_dfastate_t **)(uVar44 + 0x2c);\n            }\n          }\n          else {\n            prVar52 = *(re_dfastate_t **)(uVar44 + 0x28);\n          }\n          if (prVar52 == (re_dfastate_t *)0x0) goto code_r0x0004ea7c;\n        }\nLAB_0004dd24:\n        bVar4 = pprVar16 != (re_dfa_t **)0x0;\n        if (((re_dfastate_t **)auStack_144._100_4_ == (re_dfastate_t **)0x0) ||\n           (iVar35 = *(Idx *)(uVar44 + 0x4c),\n           *(re_dfastate_t **)(auStack_144._100_4_ + (int)prVar39 * 4) = prVar52, iVar35 == 0)) {\nLAB_0004dd48:\n          if (*(int *)&prVar52->field_0x34 << 4 < 0) {\n            if (((prVar52->field_0x34 & 1) == 0) ||\n               (IVar21 = check_halt_state_context\n                                   ((re_match_context_t *)auStack_144,\n                                    (re_dfastate_t *)(prVar52->nodes).nelem,\n                                    (Idx)&(prVar52->nodes).elems,prVar39), IVar21 != 0)) {\n              prVar38 = prVar39;\n              bVar5 = bVar30;\n              if (!bVar30) goto LAB_0004e0e4;\n            }\n            else {\n              prVar39 = (re_dfastate_t *)0xffffffff;\n              bVar5 = false;\n            }\n          }\n          else {\n            prVar39 = (re_dfastate_t *)0xffffffff;\n            bVar5 = false;\n          }\n          iVar35 = *(int *)(puVar56 + 0x28244);\n          iVar19 = *(int *)(puVar56 + 0x2829c);\n          prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n          pprStack_1dc = pprVar16;\n          while ((int)prVar38 < (int)auStack_144._56_4_) {\n            prVar51 = (re_dfastate_t *)((int)&prVar38->hash + 1);\n            if ((((int)prVar51 < (int)auStack_144._36_4_) ||\n                ((int)auStack_144._48_4_ <= (int)auStack_144._36_4_)) &&\n               (((int)prVar51 < (int)auStack_144._28_4_ ||\n                ((int)auStack_144._48_4_ <= (int)auStack_144._28_4_)))) {\n              iVar20 = *(int *)&prVar52->field_0x34;\n              prVar48 = (re_dfa_t *)auStack_144._84_4_;\n            }\n            else {\n              auStack_168._0_4_ =\n                   (*(code *)(iVar35 + 0x41e4))\n                             ((re_match_context_t *)auStack_144,\n                              (undefined1 *)((int)&prVar38->hash + 2));\n              if ((re_dfastate_t *)auStack_168._0_4_ != (re_dfastate_t *)0x0) {\n                if ((re_dfastate_t *)auStack_168._0_4_ == (re_dfastate_t *)0xc) goto LAB_0004dbf8;\n                uVar44 = 0x46c;\n                goto LAB_0004ea9c;\n              }\n              iVar20 = *(int *)&prVar52->field_0x34;\n              prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n              prVar48 = (re_dfa_t *)auStack_144._84_4_;\n            }\n            auStack_144._84_4_ = prVar48;\n            if (iVar20 << 5 < 0) {\n              iVar20 = (prVar52->nodes).nelem;\n              if (0 < iVar20) {\n                in_a3 = (re_dfa_t *)0x0;\n                iVar24 = *(int *)(puVar56 + 0x28244);\n                pcVar55 = (code *)(*(int *)(puVar56 + 0x28244) + 0x7ab0);\n                do {\n                  prVar40 = prVar48->nodes;\n                  iVar54 = (prVar52->nodes).elems[(int)in_a3];\n                  uVar32 = *(uint *)&prVar40[iVar54].field_0x4;\n                  if ((uVar32 & 0x800) != 0) {\n                    if ((uVar32 & 0xffc000) != 0) {\n                      uVar15 = (*pcVar55)((re_match_context_t *)auStack_144,prVar38,\n                                          auStack_144._88_4_);\n                      uVar32 = (uVar32 << 8) >> 0x16;\n                      if ((uVar32 & 4) == 0) {\n                        uVar37 = uVar15 & 1;\n                        if ((uVar32 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar37 = uVar32 & 8;\n                        if ((uVar15 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar37 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar32 & 0x20) != 0) && ((uVar15 & 2) == 0)) ||\n                         (((uVar32 & 0x80) != 0 && ((uVar15 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    aVar25.__spins =\n                         (*(code *)(iVar19 + -0x4eb0))\n                                   (prVar40,&prVar48->syntax,iVar54,\n                                    (re_match_context_t *)auStack_144,prVar38);\n                    if (aVar25.__spins != 0) {\n                      if ((int)auStack_144._120_4_ < aVar25.__spins) {\n                        auStack_144._120_4_ = aVar25.__spins;\n                      }\n                      puVar45 = (undefined1 *)\n                                ((int)(re_hashval_t *)auStack_144._40_4_ + aVar25.__spins);\n                      auStack_168._4_4_ =\n                           (*(code *)(iVar24 + 0x43b0))((re_match_context_t *)auStack_144,puVar45);\n                      prVar38 = (re_dfastate_t *)auStack_168._4_4_;\n                      if ((re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0)\n                      goto joined_r0x0004e770;\n                      iVar20 = (int)puVar45 * 4;\n                      pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + iVar20);\n                      prVar38 = *pprVar22;\n                      src2 = prVar48->eclosures + prVar48->nexts[iVar54];\n                      if (prVar38 == (re_dfastate_t *)0x0) {\n                        rStack_160.sifted_states = (re_dfastate_t **)src2->alloc;\n                        rStack_160.limited_states = (re_dfastate_t **)src2->nelem;\n                        rStack_160.last_node = (Idx)src2->elems;\n                        uVar32 = (*pcVar55)((re_match_context_t *)auStack_144,\n                                            (re_dfastate_t *)(puVar45 + -1),auStack_144._88_4_);\n                        prVar38 = re_acquire_state_context\n                                            ((reg_errcode_t *)(auStack_168 + 4),prVar48,\n                                             (re_node_set *)(auStack_168 + 8),uVar32);\n                        *pprVar22 = prVar38;\n                      }\n                      else {\n                        auStack_168._4_4_ =\n                             re_node_set_init_union\n                                       ((re_node_set *)(auStack_168 + 8),prVar38->entrance_nodes,\n                                        src2);\n                        prVar38 = (re_dfastate_t *)auStack_168._4_4_;\n                        if ((re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0)\n                        goto joined_r0x0004e770;\n                        uVar32 = (*pcVar55)((re_match_context_t *)auStack_144,\n                                            (re_dfastate_t *)(puVar45 + -1),auStack_144._88_4_);\n                        pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + iVar20);\n                        prVar38 = re_acquire_state_context\n                                            ((reg_errcode_t *)(auStack_168 + 4),prVar48,\n                                             (re_node_set *)(auStack_168 + 8),uVar32);\n                        pcVar8 = *(code **)(puVar56 + 0x28520);\n                        *pprVar22 = prVar38;\n                        (*pcVar8)(rStack_160.last_node);\n                      }\n                      if ((*(re_dfastate_t **)(auStack_144._100_4_ + iVar20) == (re_dfastate_t *)0x0\n                          ) && (prVar38 = (re_dfastate_t *)auStack_168._4_4_,\n                               (re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar20 = (prVar52->nodes).nelem;\n                    prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n                  }\nLAB_0004e670:\n                  in_a3 = (re_dfa_t *)((int)&((re_string_t *)&in_a3->nodes)->raw_mbs + 1);\n                } while ((int)in_a3 < iVar20);\n              }\n              auStack_168._0_4_ = (re_dfastate_t *)0x0;\n            }\n            auStack_144._40_4_ = (int)&prVar38->hash + 1;\n            uVar32 = (uint)*(byte *)((int)((re_dfa_t *)\n                                          ((bitset_word_t *)(auStack_144._4_4_ + 0x60) + -0x18))->\n                                          word_char + (int)&prVar38[-2].non_eps_nodes);\n            do {\n              if (prVar52->trtable != (re_dfastate_t **)0x0) {\n                prVar49 = prVar52->trtable[uVar32];\nLAB_0004ddf0:\n                if ((re_dfastate_t **)auStack_144._100_4_ != (re_dfastate_t **)0x0)\n                goto LAB_0004ddfc;\n                goto LAB_0004de1c;\n              }\n              pprVar22 = prVar52->word_trtable;\n              if (pprVar22 != (re_dfastate_t **)0x0) {\n                uVar15 = re_string_context_at\n                                   ((re_string_t *)auStack_144,\n                                    (Idx)&((re_dfastate_t *)(auStack_144._40_4_ + -0x38))->\n                                          field_0x37,auStack_144._88_4_);\n                if ((uVar15 & 1) == 0) {\n                  prVar49 = pprVar22[uVar32];\n                }\n                else {\n                  prVar49 = pprVar22[uVar32 + 0x100];\n                }\n                goto LAB_0004ddf0;\n              }\n              iVar20 = (*(code *)(iVar34 + -0x7510))(auStack_144._84_4_,prVar52);\n            } while (iVar20 != 0);\n            auStack_168._0_4_ = (re_dfastate_t *)0xc;\n            prVar38 = (re_dfastate_t *)auStack_168._0_4_;\njoined_r0x0004e770:\n            auStack_168._0_4_ = prVar38;\n            if ((re_dfastate_t **)auStack_144._100_4_ == (re_dfastate_t **)0x0) {\n              pprVar22 = (re_dfastate_t **)0x0;\n              goto LAB_0004dbb4;\n            }\n            prVar49 = (re_dfastate_t *)0x0;\nLAB_0004ddfc:\n            prVar49 = merge_state_with_log\n                                ((reg_errcode_t *)auStack_168,(re_match_context_t *)auStack_144,\n                                 prVar49);\nLAB_0004de1c:\n            prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n            if (prVar49 == (re_dfastate_t *)0x0) {\n              pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n              if ((re_dfastate_t *)auStack_168._0_4_ != (re_dfastate_t *)0x0) goto LAB_0004dbb4;\n              if (((re_dfastate_t **)auStack_144._100_4_ == (re_dfastate_t **)0x0) ||\n                 ((bVar5 && (!bVar30)))) break;\n              in_a3 = (re_dfa_t *)auStack_168;\n              do {\n                bVar3 = false;\n                pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + auStack_144._40_4_ * 4);\n                prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n                do {\n                  prVar49 = (re_dfastate_t *)((int)&prVar38->hash + 1);\n                  pprVar22 = pprVar22 + 1;\n                  if ((int)auStack_144._104_4_ < (int)prVar49) {\n                    if (bVar3) {\n                      auStack_144._40_4_ = prVar38;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar3 = true;\n                  prVar38 = prVar49;\n                } while (*pprVar22 == (re_dfastate_t *)0x0);\n                auStack_144._40_4_ = prVar49;\n                prVar49 = merge_state_with_log\n                                    ((reg_errcode_t *)in_a3,(re_match_context_t *)auStack_144,\n                                     (re_dfastate_t *)0x0);\n                prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n                if ((re_dfastate_t *)auStack_168._0_4_ != (re_dfastate_t *)0x0) {\n                  if (prVar49 == (re_dfastate_t *)0x0) goto LAB_0004e0cc;\n                  break;\n                }\n              } while (prVar49 == (re_dfastate_t *)0x0);\n            }\n            prVar6 = prStack_1d0;\n            if ((bVar4) && (prVar6 = prVar51, prVar52 != prVar49)) {\n              bVar4 = false;\n              prVar6 = prStack_1d0;\n            }\n            prStack_1d0 = prVar6;\n            prVar52 = prVar49;\n            auStack_144._40_4_ = prVar38;\n            if (((prVar49->field_0x34 & 8) != 0) &&\n               (((prVar49->field_0x34 & 1) == 0 ||\n                (IVar21 = check_halt_state_context\n                                    ((re_match_context_t *)auStack_144,\n                                     (re_dfastate_t *)(prVar49->nodes).nelem,\n                                     (Idx)&(prVar49->nodes).elems,prVar38), IVar21 != 0)))) {\n              if (!bVar30) goto LAB_0004e0e4;\n              pprStack_1dc = (re_dfa_t **)0x0;\n              prVar39 = prVar38;\n              bVar5 = bVar30;\n            }\n          }\nLAB_0004e0cc:\n          prVar38 = prVar39;\n          if (pprStack_1dc != (re_dfa_t **)0x0) {\n            *pprStack_1dc = (re_dfa_t *)((int)&prStack_1d0->hash + (int)*pprStack_1dc);\n          }\n        }\n        else {\n          pIVar23 = &(prVar52->nodes).nelem;\n          nodes_1 = &(prVar52->nodes).elems;\n          prVar38 = (re_dfastate_t *)\n                    check_subexp_matching_top\n                              ((re_match_context_t *)auStack_144,(re_node_set *)pIVar23,(Idx)nodes_1\n                               ,(re_node_set *)0x0);\n          auStack_168._0_4_ = prVar38;\n          if (prVar38 == (re_dfastate_t *)0x0) {\n            if ((prVar52->field_0x34 & 2) == 0) {\n              bVar4 = false;\n            }\n            else {\n              prVar38 = (re_dfastate_t *)\n                        transit_state_bkref((re_match_context_t *)auStack_144,(re_node_set *)pIVar23\n                                            ,(re_node_set *)nodes_1);\n              auStack_168._0_4_ = prVar38;\n              if (prVar38 != (re_dfastate_t *)0x0) goto LAB_0004e0e4;\n              bVar4 = false;\n            }\n            goto LAB_0004dd48;\n          }\n        }\nLAB_0004e0e4:\n        pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n        if (prVar38 != (re_dfastate_t *)0xffffffff) {\n          if (prVar38 == (re_dfastate_t *)&SUB_fffffffe) goto LAB_0004dbf8;\n          auStack_144._92_4_ = prVar38;\n          if (((preg->input).valid_len & 0x8000000) == 0) {\n            if (!bVar2) {\n              iVar35 = prVar53->nbackref;\n              goto joined_r0x0004e94c;\n            }\n            pcVar55 = (code *)(*(int *)(puVar56 + 0x28244) + 0x7d8c);\n            prVar39 = *(re_dfastate_t **)(auStack_144._100_4_ + (int)prVar38 * 4);\n            auStack_144._96_4_ =\n                 check_halt_state_context\n                           ((re_match_context_t *)auStack_144,\n                            (re_dfastate_t *)(prVar39->nodes).nelem,(Idx)&(prVar39->nodes).elems,\n                            prVar38);\n            if (((char)prVar53->field_0x58 < '\0') || (prVar53->nbackref != 0)) goto LAB_0004e170;\n          }\n          else {\n            iVar35 = prVar53->nbackref;\njoined_r0x0004e94c:\n            if (iVar35 != 0) {\n              pcVar55 = (code *)(*(int *)(puVar56 + 0x28244) + 0x7d8c);\n              prVar39 = *(re_dfastate_t **)(auStack_144._100_4_ + (int)prVar38 * 4);\n              auStack_144._96_4_ =\n                   check_halt_state_context\n                             ((re_match_context_t *)auStack_144,\n                              (re_dfastate_t *)(prVar39->nodes).nelem,(Idx)&(prVar39->nodes).elems,\n                              prVar38);\nLAB_0004e170:\n              pIVar23 = (Idx *)auStack_144._96_4_;\n              uVar44 = auStack_144._84_4_;\n              if (prVar38 < (re_dfastate_t *)0x3fffffff) {\n                prStack_1f0 = (re_dfastate_t *)((int)&prVar38->hash + 1);\n                pprVar22 = (re_dfastate_t **)(**(code **)(puVar56 + 0x28450))((int)prStack_1f0 * 4);\n                if (pprVar22 == (re_dfastate_t **)0x0) goto LAB_0004dbf8;\n                if (*(Idx *)(uVar44 + 0x4c) == 0) {\n                  rStack_160.limited_states = (re_dfastate_t **)0x0;\n                  rStack_160.limits.alloc = 0;\n                  rStack_160.limits.nelem = 0;\n                  rStack_160.limits.elems = (Idx *)0x0;\n                  rStack_160.sifted_states = pprVar22;\n                  rStack_160.last_node = (Idx)pIVar23;\n                  rStack_160.last_str_idx = (Idx)prVar38;\n                  prStack_1e4 = (re_dfastate_t *)\n                                sift_states_backward\n                                          ((re_match_context_t *)auStack_144,\n                                           (re_sift_context_t *)(auStack_168 + 8));\n                  (**(code **)(puVar56 + 0x28520))(rStack_160.limits.elems);\n                  if (prStack_1e4 == (re_dfastate_t *)0x0) {\n                    if (*pprVar22 == (re_dfastate_t *)0x0) {\n                      (**(code **)(puVar56 + 0x28520))(pprVar22);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar56 + 0x28520))(auStack_144._100_4_);\n                    auStack_144._92_4_ = prVar38;\n                    auStack_144._96_4_ = pIVar23;\n                    auStack_144._100_4_ = pprVar22;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  pprStack_1ec = (re_dfastate_t **)0x0;\n                }\n                else {\n                  pprStack_1ec = (re_dfastate_t **)\n                                 (**(code **)(puVar56 + 0x28450))((int)prStack_1f0 * 4);\n                  if (pprStack_1ec == (re_dfastate_t **)0x0) {\n                    (**(code **)(puVar56 + 0x28520))(pprVar22);\n                    prStack_1e4 = (re_dfastate_t *)0xc;\n                    pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar35 = *(int *)(puVar56 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar56 + 0x283f8))(pprStack_1ec,0,(int)prStack_1f0 * 4);\n                    rStack_160.limits.alloc = 0;\n                    rStack_160.limits.nelem = 0;\n                    rStack_160.limits.elems = (Idx *)0x0;\n                    rStack_160.sifted_states = pprVar22;\n                    rStack_160.limited_states = pprStack_1ec;\n                    rStack_160.last_node = (Idx)pIVar23;\n                    rStack_160.last_str_idx = (Idx)prVar38;\n                    prStack_1e4 = (re_dfastate_t *)\n                                  (*(code *)(iVar35 + -0x2cf4))\n                                            ((re_match_context_t *)auStack_144,auStack_168 + 8);\n                    (**(code **)(puVar56 + 0x28520))(rStack_160.limits.elems);\n                    if (prStack_1e4 != (re_dfastate_t *)0x0) break;\n                    if ((*pprVar22 != (re_dfastate_t *)0x0) ||\n                       (*pprStack_1ec != (re_dfastate_t *)0x0)) {\n                      prStack_1e4 = (re_dfastate_t *)\n                                    merge_state_array((re_dfa_t *)uVar44,pprVar22,pprStack_1ec,\n                                                      (Idx)prStack_1f0);\n                      (**(code **)(puVar56 + 0x28520))(pprStack_1ec);\n                      if (prStack_1e4 != (re_dfastate_t *)0x0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    iVar19 = auStack_144._100_4_ + (int)prStack_1f0 * 4 + -4;\n                    prStack_1f0 = prVar38;\n                    while( true ) {\n                      prVar38 = (re_dfastate_t *)&prStack_1f0[-1].field_0x37;\n                      if (prVar38 == (re_dfastate_t *)0xffffffff) {\n                        (**(code **)(puVar56 + 0x28520))(pprVar22);\n                        (**(code **)(puVar56 + 0x28520))(pprStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar20 = *(int *)(iVar19 + -4);\n                      if ((iVar20 != 0) && ((*(byte *)(iVar20 + 0x34) & 8) != 0)) break;\n                      iVar19 = iVar19 + -4;\n                      prStack_1f0 = prVar38;\n                    }\n                    pIVar23 = (Idx *)(*pcVar55)((re_match_context_t *)auStack_144,\n                                                *(undefined4 *)(iVar20 + 8),iVar20 + 0xc,prVar38);\n                  }\n                }\n                (**(code **)(puVar56 + 0x28520))(pprVar22);\n                (**(code **)(puVar56 + 0x28520))(pprStack_1ec);\n                pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n                if (prStack_1e4 == (re_dfastate_t *)0x1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }\n              prStack_1e4 = (re_dfastate_t *)0xc;\n              goto LAB_0004dbbc;\n            }\n          }\nLAB_0004e7e0:\n          pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n          prStack_1e4 = prVar18;\n          if (prStack_78 == (re_dfa_t *)0x0) goto LAB_0004dbbc;\n          IVar21 = (preg->input).valid_len;\n          if (bVar2) {\n            prVar27 = prStack_74 + 1;\n            do {\n              prVar27->rm_eo = -1;\n              prVar26 = prVar27 + 1;\n              prVar27->rm_so = -1;\n              prVar27 = prVar26;\n            } while (prStack_74 + (int)prStack_78 != prVar26);\n            prStack_74->rm_so = 0;\n            prStack_74->rm_eo = auStack_144._92_4_;\n            if ((IVar21 & 0x8000000) == 0) {\n              if ((char)prVar53->field_0x58 < '\0') {\n                bVar30 = 0 < prVar53->nbackref;\n              }\n              else {\n                bVar30 = false;\n              }\n              prStack_1e4 = (re_dfastate_t *)\n                            set_regs((regex_t *)preg,(re_match_context_t *)auStack_144,\n                                     (size_t)prStack_78,prStack_74,bVar30);\n              pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n              if (prStack_1e4 != (re_dfastate_t *)0x0) goto LAB_0004dbbc;\n              prVar46 = (re_dfa_t *)prStack_74->rm_so;\n            }\n            else {\nLAB_0004e838:\n              prVar46 = (re_dfa_t *)0x0;\n            }\n            prVar48 = (re_dfa_t *)0x0;\n            prVar27 = prStack_74;\n            while( true ) {\n              if (prVar46 != (re_dfa_t *)0xffffffff) {\n                prVar42 = (re_dfa_t *)prVar27->rm_eo;\n                prVar50 = prVar46;\n                prVar43 = prVar42;\n                if (auStack_144[0x4c] != '\0') {\n                  prVar50 = (re_dfa_t *)auStack_144._32_4_;\n                  if ((re_dfa_t *)auStack_144._28_4_ != prVar46) {\n                    prVar50 = (re_dfa_t *)((re_hashval_t *)auStack_144._12_4_)[(int)prVar46];\n                  }\n                  prVar27->rm_so = (regoff_t)prVar50;\n                  prVar43 = (re_dfa_t *)auStack_144._32_4_;\n                  if ((re_dfa_t *)auStack_144._28_4_ != prVar42) {\n                    prVar43 = (re_dfa_t *)((re_hashval_t *)auStack_144._12_4_)[(int)prVar42];\n                  }\n                }\n                prVar27->rm_so =\n                     (int)(((re_dfa_t *)\n                           (((re_dfa_t *)(prVar50->word_char + -0x18))->word_char + -0x18))->\n                           word_char + 0xffffffe8) +\n                     (int)((re_dfa_t *)\n                          (((re_dfa_t *)\n                           (((re_dfa_t *)(prStack_16c->word_char + -0x18))->word_char + -0x18))->\n                           word_char + -0x18))->word_char + 0xffffffa0U;\n                prVar27->rm_eo =\n                     (int)(((re_dfa_t *)\n                           (((re_dfa_t *)(prVar43->word_char + -0x18))->word_char + -0x18))->\n                           word_char + 0xffffffe8) +\n                     (int)((re_dfa_t *)\n                          (((re_dfa_t *)\n                           (((re_dfa_t *)(prStack_16c->word_char + -0x18))->word_char + -0x18))->\n                           word_char + -0x18))->word_char + 0xffffffa0U;\n              }\n              prVar48 = (re_dfa_t *)((int)&prVar48->nodes + 1);\n              prVar27 = prVar27 + 1;\n              if (prVar48 == prStack_78) break;\n              prVar46 = (re_dfa_t *)prVar27->rm_so;\n            }\n            if (0 < iStack_180) {\n              prVar27 = prStack_74 + (int)prStack_78;\n              do {\n                prVar27->rm_so = -1;\n                prVar26 = prVar27 + 1;\n                prVar27->rm_eo = -1;\n                prVar27 = prVar26;\n              } while (prStack_74 + (int)prStack_78->word_char + iStack_180 + -0x60 != prVar26);\n            }\n            pIVar23 = prVar53->subexp_map;\n            pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n            prStack_1e4 = prVar18;\n            if (pIVar23 != (Idx *)0x0) {\n              puVar45 = (undefined1 *)0x0;\n              prVar27 = prStack_74;\n              do {\n                pcVar55 = *(code **)(puVar56 + 0x28520);\n                if (puVar45 == (undefined1 *)((int)&prStack_78[-1].lock + 0x17)) goto LAB_0004dbc0;\n                if ((undefined1 *)*pIVar23 != puVar45) {\n                  prVar27[1].rm_so = prStack_74[(int)((undefined1 *)*pIVar23 + 1)].rm_so;\n                  prVar27[1].rm_eo = prStack_74[*pIVar23 + 1].rm_eo;\n                }\n                puVar45 = puVar45 + 1;\n                pIVar23 = pIVar23 + 1;\n                prVar27 = prVar27 + 1;\n              } while( true );\n            }\n            goto LAB_0004dbbc;\n          }\n          prStack_74->rm_so = 0;\n          prStack_74->rm_eo = auStack_144._92_4_;\n          goto LAB_0004e838;\n        }\nLAB_0004e2d4:\n        match_ctx_clean((re_match_context_t *)auStack_144);\n        in_a3 = prStack_16c;\n      }\n      in_a3 = (re_dfa_t *)((int)in_a3->word_char + iVar11 + -0x60);\n      prStack_16c = in_a3;\n      if (((int)in_a3 < (int)prVar46) ||\n         (pbVar36 = (re_bitset_ptr_t)auStack_144._24_4_, prVar48 = prStack_88,\n         (int)in_stack_ffffff80 < (int)in_a3)) break;\n    } while( true );\n  }\nLAB_0004df68:\n  prStack_1e4 = (re_dfastate_t *)0x1;\n  pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n  goto LAB_0004dbbc;\ncode_r0x0004ea7c:\n  prStack_1e4 = (re_dfastate_t *)auStack_168._0_4_;\n  pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n  if ((re_dfastate_t *)auStack_168._0_4_ == (re_dfastate_t *)0xc) goto LAB_0004dbbc;\n  uVar44 = 0x435;\nLAB_0004ea9c:\n  (**(code **)(puVar56 + 0x282f4))\n            (*(int *)(puVar56 + 0x27edc) + 0x2b30,*(int *)(puVar56 + 0x27edc) + 0x2ac0,uVar44,\n             *(int *)(puVar56 + 0x27edc) + 0x3030);\n  uVar32 = extraout_v1;\n  preg = (re_match_context_t *)auStack_144;\nLAB_0004eabc:\n  uVar41 = 8;\n  goto LAB_0004dab0;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "bool bVar4;" primitive_type identifier ;) (declaration "bool bVar5;" primitive_type identifier ;) (declaration "re_dfastate_t *prVar6;" type_identifier (pointer_declarator "*prVar6" * identifier) ;) (declaration "undefined3 extraout_var;" type_identifier identifier ;) (declaration "reg_errcode_t rVar7;" type_identifier identifier ;) (declaration "code *pcVar8;" type_identifier (pointer_declarator "*pcVar8" * identifier) ;) (declaration "code *pcVar9;" type_identifier (pointer_declarator "*pcVar9" * identifier) ;) (declaration "code *pcVar10;" type_identifier (pointer_declarator "*pcVar10" * identifier) ;) (declaration "_Bool _Var28;" type_identifier identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "wint_t *pwVar13;" type_identifier (pointer_declarator "*pwVar13" * identifier) ;) (declaration "re_backref_cache_entry *prVar14;" type_identifier (pointer_declarator "*prVar14" * identifier) ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "re_dfa_t **pprVar16;" type_identifier (pointer_declarator "**pprVar16" * (pointer_declarator "*pprVar16" * identifier)) ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "re_dfastate_t *prVar18;" type_identifier (pointer_declarator "*prVar18" * identifier) ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "Idx IVar21;" type_identifier identifier ;) (declaration "re_dfastate_t **pprVar22;" type_identifier (pointer_declarator "**pprVar22" * (pointer_declarator "*pprVar22" * identifier)) ;) (declaration "char cVar29;" primitive_type identifier ;) (declaration "Idx *pIVar23;" type_identifier (pointer_declarator "*pIVar23" * identifier) ;) (declaration "int iVar24;" primitive_type identifier ;) (declaration "anon_union_4_2_9a799d16_for___pthread_mutex_s_5 aVar25;" type_identifier identifier ;) (declaration "regmatch_t *prVar26;" type_identifier (pointer_declarator "*prVar26" * identifier) ;) (declaration "regmatch_t *prVar27;" type_identifier (pointer_declarator "*prVar27" * identifier) ;) (declaration "bool bVar30;" primitive_type identifier ;) (declaration "re_match_context_t *preg;" type_identifier (pointer_declarator "*preg" * identifier) ;) (declaration "int iVar31;" primitive_type identifier ;) (declaration "uint uVar32;" type_identifier identifier ;) (declaration "uint extraout_v1;" type_identifier identifier ;) (declaration "int iVar33;" primitive_type identifier ;) (declaration "int iVar34;" primitive_type identifier ;) (declaration "int iVar35;" primitive_type identifier ;) (declaration "re_bitset_ptr_t pbVar36;" type_identifier identifier ;) (declaration "uint uVar37;" type_identifier identifier ;) (declaration "re_dfastate_t *prVar38;" type_identifier (pointer_declarator "*prVar38" * identifier) ;) (declaration "re_dfastate_t *prVar39;" type_identifier (pointer_declarator "*prVar39" * identifier) ;) (declaration "re_token_t *prVar40;" type_identifier (pointer_declarator "*prVar40" * identifier) ;) (declaration "undefined1 *new_buf_len;" type_identifier (pointer_declarator "*new_buf_len" * identifier) ;) (declaration "uint uVar41;" type_identifier identifier ;) (declaration "re_dfa_t *prVar42;" type_identifier (pointer_declarator "*prVar42" * identifier) ;) (declaration "re_dfa_t *prVar43;" type_identifier (pointer_declarator "*prVar43" * identifier) ;) (declaration "re_dfa_t *in_a2;" type_identifier (pointer_declarator "*in_a2" * identifier) ;) (declaration "re_node_set *src2;" type_identifier (pointer_declarator "*src2" * identifier) ;) (declaration "undefined4 uVar44;" type_identifier identifier ;) (declaration "re_dfa_t *in_a3;" type_identifier (pointer_declarator "*in_a3" * identifier) ;) (declaration "undefined1 *puVar45;" type_identifier (pointer_declarator "*puVar45" * identifier) ;) (declaration "re_dfa_t *prVar46;" type_identifier (pointer_declarator "*prVar46" * identifier) ;) (declaration "uchar *puVar47;" type_identifier (pointer_declarator "*puVar47" * identifier) ;) (declaration "re_dfa_t *prVar48;" type_identifier (pointer_declarator "*prVar48" * identifier) ;) (declaration "re_dfastate_t *prVar49;" type_identifier (pointer_declarator "*prVar49" * identifier) ;) (declaration "Idx **nodes_1;" type_identifier (pointer_declarator "**nodes_1" * (pointer_declarator "*nodes_1" * identifier)) ;) (declaration "re_dfa_t *prVar50;" type_identifier (pointer_declarator "*prVar50" * identifier) ;) (declaration "re_dfastate_t *prVar51;" type_identifier (pointer_declarator "*prVar51" * identifier) ;) (declaration "re_dfa_t *unaff_s4;" type_identifier (pointer_declarator "*unaff_s4" * identifier) ;) (declaration "re_dfastate_t *prVar52;" type_identifier (pointer_declarator "*prVar52" * identifier) ;) (declaration "int unaff_s5;" primitive_type identifier ;) (declaration "re_dfastate_t *unaff_s6;" type_identifier (pointer_declarator "*unaff_s6" * identifier) ;) (declaration "re_dfa_t *prVar53;" type_identifier (pointer_declarator "*prVar53" * identifier) ;) (declaration "int iVar54;" primitive_type identifier ;) (declaration "re_dfa_t *unaff_s7;" type_identifier (pointer_declarator "*unaff_s7" * identifier) ;) (declaration "code *pcVar55;" type_identifier (pointer_declarator "*pcVar55" * identifier) ;) (declaration "undefined *puVar56;" type_identifier (pointer_declarator "*puVar56" * identifier) ;) (declaration "int unaff_s8;" primitive_type identifier ;) (declaration "re_dfastate_t *prStack_1f0;" type_identifier (pointer_declarator "*prStack_1f0" * identifier) ;) (declaration "re_dfastate_t **pprStack_1ec;" type_identifier (pointer_declarator "**pprStack_1ec" * (pointer_declarator "*pprStack_1ec" * identifier)) ;) (declaration "re_dfastate_t *prStack_1e4;" type_identifier (pointer_declarator "*prStack_1e4" * identifier) ;) (declaration "char *pcStack_1e0;" primitive_type (pointer_declarator "*pcStack_1e0" * identifier) ;) (declaration "re_dfa_t **pprStack_1dc;" type_identifier (pointer_declarator "**pprStack_1dc" * (pointer_declarator "*pprStack_1dc" * identifier)) ;) (declaration "re_dfastate_t *prStack_1d0;" type_identifier (pointer_declarator "*prStack_1d0" * identifier) ;) (declaration "int iStack_180;" primitive_type identifier ;) (declaration "re_dfa_t *prStack_16c;" type_identifier (pointer_declarator "*prStack_16c" * identifier) ;) (declaration "undefined1 auStack_168 [8];" type_identifier (array_declarator "auStack_168 [8]" identifier [ number_literal ]) ;) (declaration "re_sift_context_t rStack_160;" type_identifier identifier ;) (declaration "undefined1 auStack_144 [128];" type_identifier (array_declarator "auStack_144 [128]" identifier [ number_literal ]) ;) (declaration "int iStack_c4;" primitive_type identifier ;) (declaration "re_sub_match_top_t **pprStack_c0;" type_identifier (pointer_declarator "**pprStack_c0" * (pointer_declarator "*pprStack_c0" * identifier)) ;) (declaration "int iStack_bc;" primitive_type identifier ;) (declaration "re_dfa_t *prStack_b8;" type_identifier (pointer_declarator "*prStack_b8" * identifier) ;) (declaration "re_sift_context_t *prStack_b4;" type_identifier (pointer_declarator "*prStack_b4" * identifier) ;) (declaration "re_match_context_t *prStack_b0;" type_identifier (pointer_declarator "*prStack_b0" * identifier) ;) (declaration "re_dfa_t *prStack_ac;" type_identifier (pointer_declarator "*prStack_ac" * identifier) ;) (declaration "re_dfa_t *prStack_a8;" type_identifier (pointer_declarator "*prStack_a8" * identifier) ;) (declaration "int iStack_a4;" primitive_type identifier ;) (declaration "re_dfastate_t *prStack_a0;" type_identifier (pointer_declarator "*prStack_a0" * identifier) ;) (declaration "re_dfa_t *prStack_9c;" type_identifier (pointer_declarator "*prStack_9c" * identifier) ;) (declaration "int iStack_98;" primitive_type identifier ;) (declaration "code *pcStack_94;" type_identifier (pointer_declarator "*pcStack_94" * identifier) ;) (declaration "re_dfa_t *prStack_88;" type_identifier (pointer_declarator "*prStack_88" * identifier) ;) (declaration "re_dfa_t *in_stack_ffffff80;" type_identifier (pointer_declarator "*in_stack_ffffff80" * identifier) ;) (declaration "re_dfa_t *prStack_7c;" type_identifier (pointer_declarator "*prStack_7c" * identifier) ;) (declaration "re_dfa_t *prStack_78;" type_identifier (pointer_declarator "*prStack_78" * identifier) ;) (declaration "regmatch_t *prStack_74;" type_identifier (pointer_declarator "*prStack_74" * identifier) ;) (declaration "int iStack_64;" primitive_type identifier ;) (declaration "re_node_set cur_dest;" type_identifier identifier ;) (expression_statement "puVar56 = PTR___stack_chk_guard_00075be8;" (assignment_expression "puVar56 = PTR___stack_chk_guard_00075be8" identifier = identifier) ;) (expression_statement "cur_dest.alloc = 1;" (assignment_expression "cur_dest.alloc = 1" (field_expression "cur_dest.alloc" identifier . field_identifier) = number_literal) ;) (expression_statement "cur_dest.nelem = 1;" (assignment_expression "cur_dest.nelem = 1" (field_expression "cur_dest.nelem" identifier . field_identifier) = number_literal) ;) (expression_statement "preg = *(re_match_context_t **)PTR___stack_chk_guard_00075be8;" (assignment_expression "preg = *(re_match_context_t **)PTR___stack_chk_guard_00075be8" identifier = (pointer_expression "*(re_match_context_t **)PTR___stack_chk_guard_00075be8" * (cast_expression "(re_match_context_t **)PTR___stack_chk_guard_00075be8" ( (type_descriptor "re_match_context_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "prVar48 = (re_dfa_t *)sctx->last_str_idx;" (assignment_expression "prVar48 = (re_dfa_t *)sctx->last_str_idx" identifier = (cast_expression "(re_dfa_t *)sctx->last_str_idx" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "sctx->last_str_idx" identifier -> field_identifier))) ;) (expression_statement "prVar50 = (re_dfa_t *)sctx->last_node;" (assignment_expression "prVar50 = (re_dfa_t *)sctx->last_node" identifier = (cast_expression "(re_dfa_t *)sctx->last_node" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "sctx->last_node" identifier -> field_identifier))) ;) (expression_statement "prVar46 = (re_dfa_t *)sctx;" (assignment_expression "prVar46 = (re_dfa_t *)sctx" identifier = (cast_expression "(re_dfa_t *)sctx" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "cur_dest.elems = (Idx *)(*(code *)PTR_malloc_00075b2c)(4);" (assignment_expression "cur_dest.elems = (Idx *)(*(code *)PTR_malloc_00075b2c)(4)" (field_expression "cur_dest.elems" identifier . field_identifier) = (cast_expression "(Idx *)(*(code *)PTR_malloc_00075b2c)(4)" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_malloc_00075b2c)(4)" (parenthesized_expression "(*(code *)PTR_malloc_00075b2c)" ( (pointer_expression "*(code *)PTR_malloc_00075b2c" * (cast_expression "(code *)PTR_malloc_00075b2c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(4)" ( number_literal ))))) ;) (if_statement "if (cur_dest.elems == (Idx *)0x0) {\n    rVar7 = _REG_ESPACE;\n  }\n  else {\n    *cur_dest.elems = (Idx)prVar50;\n    pcVar55 = (code *)(PTR_LAB_00075978 + -0x1248);\n    prVar46 = (re_dfa_t *)sctx;\n    in_a2 = prVar48;\n    in_a3 = (re_dfa_t *)&cur_dest;\n    rVar7 = update_cur_sifted_state(mctx,sctx,(Idx)prVar48,&cur_dest);\n    if (rVar7 == _REG_NOERROR) {\n      iStack_64 = 0;\n      if (0 < (int)prVar48) {\n        pcVar8 = (code *)(PTR_LAB_00075920 + 0x5610);\n        pcVar9 = (code *)(PTR_LAB_00075920 + 0x33f8);\n        pcVar10 = (code *)(PTR_LAB_00075920 + 0x5230);\n        do {\n          unaff_s7 = (re_dfa_t *)((int)prVar48 * 4);\n          if (*(int *)((int)unaff_s7->word_char + (int)(sctx->sifted_states + -0x18)) == 0) {\n            iStack_64 = iStack_64 + 1;\n            if (mctx->max_mb_elem_len < iStack_64) goto LAB_0004d6a0;\n          }\n          else {\n            iStack_64 = 0;\n            if (mctx->max_mb_elem_len < 0) {\nLAB_0004d6a0:\n              prVar46 = (re_dfa_t *)0x0;\n              in_a2 = unaff_s7;\n              (*(code *)PTR_memset_00075ad4)();\n              (*(code *)PTR_free_00075bfc)(cur_dest.elems);\n              rVar7 = _REG_NOERROR;\n              goto LAB_0004d644;\n            }\n          }\n          cur_dest.nelem = 0;\n          unaff_s6 = (mctx->state_log + (int)prVar48)[-1];\n          prVar48 = (re_dfa_t *)(prVar48[-1].lock.__size + 0x17);\n          if ((unaff_s6 != (re_dfastate_t *)0x0) &&\n             (unaff_s4 = mctx->dfa, 0 < (unaff_s6->non_eps_nodes).nelem)) {\n            unaff_s5 = 0;\n            do {\n              prVar50 = (re_dfa_t *)(unaff_s6->non_eps_nodes).elems[unaff_s5];\n              unaff_s8 = (int)prVar50 * 8;\n              prVar40 = unaff_s4->nodes + (int)prVar50;\n              if ((*(uint *)&prVar40->field_0x4 & 0x800) == 0) {\nLAB_0004d464:\n                _Var28 = check_node_accept(mctx,prVar40,(Idx)prVar48);\n                if ((CONCAT31(extraout_var,_Var28) != 0) &&\n                   (iVar11 = *(int *)((int)unaff_s7->word_char + (int)(sctx->sifted_states + -0x18))\n                   , iVar11 != 0)) {\n                  in_a2 = (re_dfa_t *)unaff_s4->nexts[(int)prVar50];\n                  iVar31 = (*pcVar10)(*(undefined4 *)(iVar11 + 8),iVar11 + 0xc);\n                  iVar11 = 1;\n                  if (iVar31 != 0) goto LAB_0004d4b4;\n                }\n              }\n              else {\n                prVar46 = mctx->dfa;\n                iVar31 = sctx->last_str_idx;\n                in_a2 = prVar50;\n                in_a3 = (re_dfa_t *)mctx;\n                in_stack_ffffff80 = prVar48;\n                iVar11 = check_node_accept_bytes\n                                   ((re_dfa_t *)prVar46->nodes,(Idx)&prVar46->syntax,\n                                    (re_string_t *)prVar50,(Idx)mctx,prVar48);\n                if (iVar11 < 1) {\n                  if (iVar11 == 0) {\n                    prVar40 = unaff_s4->nodes;\n                    goto LAB_0004d460;\n                  }\n                }\n                else {\n                  iVar17 = (int)prVar48->word_char + iVar11 + -0x60;\n                  if (iVar17 <= iVar31) {\n                    prVar39 = sctx->sifted_states[iVar17];\n                    if (prVar39 != (re_dfastate_t *)0x0) {\n                      in_a2 = (re_dfa_t *)prVar46->nexts[(int)prVar50];\n                      iVar31 = (*pcVar10)((prVar39->nodes).nelem,&(prVar39->nodes).elems);\n                      if (iVar31 != 0) goto LAB_0004d4b4;\n                    }\n                    prVar40 = unaff_s4->nodes;\nLAB_0004d460:\n                    prVar40 = prVar40 + (int)prVar50;\n                    goto LAB_0004d464;\n                  }\n                }\nLAB_0004d4b4:\n                if ((sctx->limits).nelem != 0) {\n                  in_stack_ffffff80 = (re_dfa_t *)((int)prVar48->word_char + iVar11 + -0x60);\n                  in_a2 = (re_dfa_t *)&(sctx->limits).elems;\n                  in_a3 = (re_dfa_t *)unaff_s4->nexts[(int)prVar50];\n                  iVar11 = (*pcVar8)(mctx,&(sctx->limits).nelem);\n                  prStack_7c = prVar50;\n                  prStack_78 = prVar48;\n                  if (iVar11 != 0) goto LAB_0004d510;\n                }\n                prVar46 = prVar50;\n                iVar11 = (*pcVar9)((re_dfa_t *)&cur_dest);\n                if (iVar11 == 0) {\n                  rVar7 = _REG_ESPACE;\n                  goto LAB_0004d62c;\n                }\n              }\nLAB_0004d510:\n              unaff_s5 = unaff_s5 + 1;\n              in_a3 = (re_dfa_t *)&cur_dest;\n            } while (unaff_s5 < (unaff_s6->non_eps_nodes).nelem);\n          }\n          prVar46 = (re_dfa_t *)sctx;\n          in_a2 = prVar48;\n          in_a3 = (re_dfa_t *)&cur_dest;\n          rVar7 = (*pcVar55)(mctx);\n          if (rVar7 != _REG_NOERROR) goto LAB_0004d62c;\n        } while (prVar48 != (re_dfa_t *)0x0);\n      }\n      rVar7 = _REG_NOERROR;\n    }\nLAB_0004d62c:\n    (*(code *)PTR_free_00075bfc)(cur_dest.elems);\n  }" if (parenthesized_expression "(cur_dest.elems == (Idx *)0x0)" ( (binary_expression "cur_dest.elems == (Idx *)0x0" (field_expression "cur_dest.elems" identifier . field_identifier) == (cast_expression "(Idx *)0x0" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    rVar7 = _REG_ESPACE;\n  }" { (expression_statement "rVar7 = _REG_ESPACE;" (assignment_expression "rVar7 = _REG_ESPACE" identifier = identifier) ;) }) (else_clause "else {\n    *cur_dest.elems = (Idx)prVar50;\n    pcVar55 = (code *)(PTR_LAB_00075978 + -0x1248);\n    prVar46 = (re_dfa_t *)sctx;\n    in_a2 = prVar48;\n    in_a3 = (re_dfa_t *)&cur_dest;\n    rVar7 = update_cur_sifted_state(mctx,sctx,(Idx)prVar48,&cur_dest);\n    if (rVar7 == _REG_NOERROR) {\n      iStack_64 = 0;\n      if (0 < (int)prVar48) {\n        pcVar8 = (code *)(PTR_LAB_00075920 + 0x5610);\n        pcVar9 = (code *)(PTR_LAB_00075920 + 0x33f8);\n        pcVar10 = (code *)(PTR_LAB_00075920 + 0x5230);\n        do {\n          unaff_s7 = (re_dfa_t *)((int)prVar48 * 4);\n          if (*(int *)((int)unaff_s7->word_char + (int)(sctx->sifted_states + -0x18)) == 0) {\n            iStack_64 = iStack_64 + 1;\n            if (mctx->max_mb_elem_len < iStack_64) goto LAB_0004d6a0;\n          }\n          else {\n            iStack_64 = 0;\n            if (mctx->max_mb_elem_len < 0) {\nLAB_0004d6a0:\n              prVar46 = (re_dfa_t *)0x0;\n              in_a2 = unaff_s7;\n              (*(code *)PTR_memset_00075ad4)();\n              (*(code *)PTR_free_00075bfc)(cur_dest.elems);\n              rVar7 = _REG_NOERROR;\n              goto LAB_0004d644;\n            }\n          }\n          cur_dest.nelem = 0;\n          unaff_s6 = (mctx->state_log + (int)prVar48)[-1];\n          prVar48 = (re_dfa_t *)(prVar48[-1].lock.__size + 0x17);\n          if ((unaff_s6 != (re_dfastate_t *)0x0) &&\n             (unaff_s4 = mctx->dfa, 0 < (unaff_s6->non_eps_nodes).nelem)) {\n            unaff_s5 = 0;\n            do {\n              prVar50 = (re_dfa_t *)(unaff_s6->non_eps_nodes).elems[unaff_s5];\n              unaff_s8 = (int)prVar50 * 8;\n              prVar40 = unaff_s4->nodes + (int)prVar50;\n              if ((*(uint *)&prVar40->field_0x4 & 0x800) == 0) {\nLAB_0004d464:\n                _Var28 = check_node_accept(mctx,prVar40,(Idx)prVar48);\n                if ((CONCAT31(extraout_var,_Var28) != 0) &&\n                   (iVar11 = *(int *)((int)unaff_s7->word_char + (int)(sctx->sifted_states + -0x18))\n                   , iVar11 != 0)) {\n                  in_a2 = (re_dfa_t *)unaff_s4->nexts[(int)prVar50];\n                  iVar31 = (*pcVar10)(*(undefined4 *)(iVar11 + 8),iVar11 + 0xc);\n                  iVar11 = 1;\n                  if (iVar31 != 0) goto LAB_0004d4b4;\n                }\n              }\n              else {\n                prVar46 = mctx->dfa;\n                iVar31 = sctx->last_str_idx;\n                in_a2 = prVar50;\n                in_a3 = (re_dfa_t *)mctx;\n                in_stack_ffffff80 = prVar48;\n                iVar11 = check_node_accept_bytes\n                                   ((re_dfa_t *)prVar46->nodes,(Idx)&prVar46->syntax,\n                                    (re_string_t *)prVar50,(Idx)mctx,prVar48);\n                if (iVar11 < 1) {\n                  if (iVar11 == 0) {\n                    prVar40 = unaff_s4->nodes;\n                    goto LAB_0004d460;\n                  }\n                }\n                else {\n                  iVar17 = (int)prVar48->word_char + iVar11 + -0x60;\n                  if (iVar17 <= iVar31) {\n                    prVar39 = sctx->sifted_states[iVar17];\n                    if (prVar39 != (re_dfastate_t *)0x0) {\n                      in_a2 = (re_dfa_t *)prVar46->nexts[(int)prVar50];\n                      iVar31 = (*pcVar10)((prVar39->nodes).nelem,&(prVar39->nodes).elems);\n                      if (iVar31 != 0) goto LAB_0004d4b4;\n                    }\n                    prVar40 = unaff_s4->nodes;\nLAB_0004d460:\n                    prVar40 = prVar40 + (int)prVar50;\n                    goto LAB_0004d464;\n                  }\n                }\nLAB_0004d4b4:\n                if ((sctx->limits).nelem != 0) {\n                  in_stack_ffffff80 = (re_dfa_t *)((int)prVar48->word_char + iVar11 + -0x60);\n                  in_a2 = (re_dfa_t *)&(sctx->limits).elems;\n                  in_a3 = (re_dfa_t *)unaff_s4->nexts[(int)prVar50];\n                  iVar11 = (*pcVar8)(mctx,&(sctx->limits).nelem);\n                  prStack_7c = prVar50;\n                  prStack_78 = prVar48;\n                  if (iVar11 != 0) goto LAB_0004d510;\n                }\n                prVar46 = prVar50;\n                iVar11 = (*pcVar9)((re_dfa_t *)&cur_dest);\n                if (iVar11 == 0) {\n                  rVar7 = _REG_ESPACE;\n                  goto LAB_0004d62c;\n                }\n              }\nLAB_0004d510:\n              unaff_s5 = unaff_s5 + 1;\n              in_a3 = (re_dfa_t *)&cur_dest;\n            } while (unaff_s5 < (unaff_s6->non_eps_nodes).nelem);\n          }\n          prVar46 = (re_dfa_t *)sctx;\n          in_a2 = prVar48;\n          in_a3 = (re_dfa_t *)&cur_dest;\n          rVar7 = (*pcVar55)(mctx);\n          if (rVar7 != _REG_NOERROR) goto LAB_0004d62c;\n        } while (prVar48 != (re_dfa_t *)0x0);\n      }\n      rVar7 = _REG_NOERROR;\n    }\nLAB_0004d62c:\n    (*(code *)PTR_free_00075bfc)(cur_dest.elems);\n  }" else (compound_statement "{\n    *cur_dest.elems = (Idx)prVar50;\n    pcVar55 = (code *)(PTR_LAB_00075978 + -0x1248);\n    prVar46 = (re_dfa_t *)sctx;\n    in_a2 = prVar48;\n    in_a3 = (re_dfa_t *)&cur_dest;\n    rVar7 = update_cur_sifted_state(mctx,sctx,(Idx)prVar48,&cur_dest);\n    if (rVar7 == _REG_NOERROR) {\n      iStack_64 = 0;\n      if (0 < (int)prVar48) {\n        pcVar8 = (code *)(PTR_LAB_00075920 + 0x5610);\n        pcVar9 = (code *)(PTR_LAB_00075920 + 0x33f8);\n        pcVar10 = (code *)(PTR_LAB_00075920 + 0x5230);\n        do {\n          unaff_s7 = (re_dfa_t *)((int)prVar48 * 4);\n          if (*(int *)((int)unaff_s7->word_char + (int)(sctx->sifted_states + -0x18)) == 0) {\n            iStack_64 = iStack_64 + 1;\n            if (mctx->max_mb_elem_len < iStack_64) goto LAB_0004d6a0;\n          }\n          else {\n            iStack_64 = 0;\n            if (mctx->max_mb_elem_len < 0) {\nLAB_0004d6a0:\n              prVar46 = (re_dfa_t *)0x0;\n              in_a2 = unaff_s7;\n              (*(code *)PTR_memset_00075ad4)();\n              (*(code *)PTR_free_00075bfc)(cur_dest.elems);\n              rVar7 = _REG_NOERROR;\n              goto LAB_0004d644;\n            }\n          }\n          cur_dest.nelem = 0;\n          unaff_s6 = (mctx->state_log + (int)prVar48)[-1];\n          prVar48 = (re_dfa_t *)(prVar48[-1].lock.__size + 0x17);\n          if ((unaff_s6 != (re_dfastate_t *)0x0) &&\n             (unaff_s4 = mctx->dfa, 0 < (unaff_s6->non_eps_nodes).nelem)) {\n            unaff_s5 = 0;\n            do {\n              prVar50 = (re_dfa_t *)(unaff_s6->non_eps_nodes).elems[unaff_s5];\n              unaff_s8 = (int)prVar50 * 8;\n              prVar40 = unaff_s4->nodes + (int)prVar50;\n              if ((*(uint *)&prVar40->field_0x4 & 0x800) == 0) {\nLAB_0004d464:\n                _Var28 = check_node_accept(mctx,prVar40,(Idx)prVar48);\n                if ((CONCAT31(extraout_var,_Var28) != 0) &&\n                   (iVar11 = *(int *)((int)unaff_s7->word_char + (int)(sctx->sifted_states + -0x18))\n                   , iVar11 != 0)) {\n                  in_a2 = (re_dfa_t *)unaff_s4->nexts[(int)prVar50];\n                  iVar31 = (*pcVar10)(*(undefined4 *)(iVar11 + 8),iVar11 + 0xc);\n                  iVar11 = 1;\n                  if (iVar31 != 0) goto LAB_0004d4b4;\n                }\n              }\n              else {\n                prVar46 = mctx->dfa;\n                iVar31 = sctx->last_str_idx;\n                in_a2 = prVar50;\n                in_a3 = (re_dfa_t *)mctx;\n                in_stack_ffffff80 = prVar48;\n                iVar11 = check_node_accept_bytes\n                                   ((re_dfa_t *)prVar46->nodes,(Idx)&prVar46->syntax,\n                                    (re_string_t *)prVar50,(Idx)mctx,prVar48);\n                if (iVar11 < 1) {\n                  if (iVar11 == 0) {\n                    prVar40 = unaff_s4->nodes;\n                    goto LAB_0004d460;\n                  }\n                }\n                else {\n                  iVar17 = (int)prVar48->word_char + iVar11 + -0x60;\n                  if (iVar17 <= iVar31) {\n                    prVar39 = sctx->sifted_states[iVar17];\n                    if (prVar39 != (re_dfastate_t *)0x0) {\n                      in_a2 = (re_dfa_t *)prVar46->nexts[(int)prVar50];\n                      iVar31 = (*pcVar10)((prVar39->nodes).nelem,&(prVar39->nodes).elems);\n                      if (iVar31 != 0) goto LAB_0004d4b4;\n                    }\n                    prVar40 = unaff_s4->nodes;\nLAB_0004d460:\n                    prVar40 = prVar40 + (int)prVar50;\n                    goto LAB_0004d464;\n                  }\n                }\nLAB_0004d4b4:\n                if ((sctx->limits).nelem != 0) {\n                  in_stack_ffffff80 = (re_dfa_t *)((int)prVar48->word_char + iVar11 + -0x60);\n                  in_a2 = (re_dfa_t *)&(sctx->limits).elems;\n                  in_a3 = (re_dfa_t *)unaff_s4->nexts[(int)prVar50];\n                  iVar11 = (*pcVar8)(mctx,&(sctx->limits).nelem);\n                  prStack_7c = prVar50;\n                  prStack_78 = prVar48;\n                  if (iVar11 != 0) goto LAB_0004d510;\n                }\n                prVar46 = prVar50;\n                iVar11 = (*pcVar9)((re_dfa_t *)&cur_dest);\n                if (iVar11 == 0) {\n                  rVar7 = _REG_ESPACE;\n                  goto LAB_0004d62c;\n                }\n              }\nLAB_0004d510:\n              unaff_s5 = unaff_s5 + 1;\n              in_a3 = (re_dfa_t *)&cur_dest;\n            } while (unaff_s5 < (unaff_s6->non_eps_nodes).nelem);\n          }\n          prVar46 = (re_dfa_t *)sctx;\n          in_a2 = prVar48;\n          in_a3 = (re_dfa_t *)&cur_dest;\n          rVar7 = (*pcVar55)(mctx);\n          if (rVar7 != _REG_NOERROR) goto LAB_0004d62c;\n        } while (prVar48 != (re_dfa_t *)0x0);\n      }\n      rVar7 = _REG_NOERROR;\n    }\nLAB_0004d62c:\n    (*(code *)PTR_free_00075bfc)(cur_dest.elems);\n  }" { (expression_statement "*cur_dest.elems = (Idx)prVar50;" (assignment_expression "*cur_dest.elems = (Idx)prVar50" (pointer_expression "*cur_dest.elems" * (field_expression "cur_dest.elems" identifier . field_identifier)) = (cast_expression "(Idx)prVar50" ( (type_descriptor "Idx" type_identifier) ) identifier)) ;) (expression_statement "pcVar55 = (code *)(PTR_LAB_00075978 + -0x1248);" (assignment_expression "pcVar55 = (code *)(PTR_LAB_00075978 + -0x1248)" identifier = (cast_expression "(code *)(PTR_LAB_00075978 + -0x1248)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00075978 + -0x1248)" ( (binary_expression "PTR_LAB_00075978 + -0x1248" identifier + number_literal) )))) ;) (expression_statement "prVar46 = (re_dfa_t *)sctx;" (assignment_expression "prVar46 = (re_dfa_t *)sctx" identifier = (cast_expression "(re_dfa_t *)sctx" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "in_a2 = prVar48;" (assignment_expression "in_a2 = prVar48" identifier = identifier) ;) (expression_statement "in_a3 = (re_dfa_t *)&cur_dest;" (assignment_expression "in_a3 = (re_dfa_t *)&cur_dest" identifier = (cast_expression "(re_dfa_t *)&cur_dest" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&cur_dest" & identifier))) ;) (expression_statement "rVar7 = update_cur_sifted_state(mctx,sctx,(Idx)prVar48,&cur_dest);" (assignment_expression "rVar7 = update_cur_sifted_state(mctx,sctx,(Idx)prVar48,&cur_dest)" identifier = (call_expression "update_cur_sifted_state(mctx,sctx,(Idx)prVar48,&cur_dest)" identifier (argument_list "(mctx,sctx,(Idx)prVar48,&cur_dest)" ( identifier , identifier , (cast_expression "(Idx)prVar48" ( (type_descriptor "Idx" type_identifier) ) identifier) , (pointer_expression "&cur_dest" & identifier) )))) ;) (if_statement "if (rVar7 == _REG_NOERROR) {\n      iStack_64 = 0;\n      if (0 < (int)prVar48) {\n        pcVar8 = (code *)(PTR_LAB_00075920 + 0x5610);\n        pcVar9 = (code *)(PTR_LAB_00075920 + 0x33f8);\n        pcVar10 = (code *)(PTR_LAB_00075920 + 0x5230);\n        do {\n          unaff_s7 = (re_dfa_t *)((int)prVar48 * 4);\n          if (*(int *)((int)unaff_s7->word_char + (int)(sctx->sifted_states + -0x18)) == 0) {\n            iStack_64 = iStack_64 + 1;\n            if (mctx->max_mb_elem_len < iStack_64) goto LAB_0004d6a0;\n          }\n          else {\n            iStack_64 = 0;\n            if (mctx->max_mb_elem_len < 0) {\nLAB_0004d6a0:\n              prVar46 = (re_dfa_t *)0x0;\n              in_a2 = unaff_s7;\n              (*(code *)PTR_memset_00075ad4)();\n              (*(code *)PTR_free_00075bfc)(cur_dest.elems);\n              rVar7 = _REG_NOERROR;\n              goto LAB_0004d644;\n            }\n          }\n          cur_dest.nelem = 0;\n          unaff_s6 = (mctx->state_log + (int)prVar48)[-1];\n          prVar48 = (re_dfa_t *)(prVar48[-1].lock.__size + 0x17);\n          if ((unaff_s6 != (re_dfastate_t *)0x0) &&\n             (unaff_s4 = mctx->dfa, 0 < (unaff_s6->non_eps_nodes).nelem)) {\n            unaff_s5 = 0;\n            do {\n              prVar50 = (re_dfa_t *)(unaff_s6->non_eps_nodes).elems[unaff_s5];\n              unaff_s8 = (int)prVar50 * 8;\n              prVar40 = unaff_s4->nodes + (int)prVar50;\n              if ((*(uint *)&prVar40->field_0x4 & 0x800) == 0) {\nLAB_0004d464:\n                _Var28 = check_node_accept(mctx,prVar40,(Idx)prVar48);\n                if ((CONCAT31(extraout_var,_Var28) != 0) &&\n                   (iVar11 = *(int *)((int)unaff_s7->word_char + (int)(sctx->sifted_states + -0x18))\n                   , iVar11 != 0)) {\n                  in_a2 = (re_dfa_t *)unaff_s4->nexts[(int)prVar50];\n                  iVar31 = (*pcVar10)(*(undefined4 *)(iVar11 + 8),iVar11 + 0xc);\n                  iVar11 = 1;\n                  if (iVar31 != 0) goto LAB_0004d4b4;\n                }\n              }\n              else {\n                prVar46 = mctx->dfa;\n                iVar31 = sctx->last_str_idx;\n                in_a2 = prVar50;\n                in_a3 = (re_dfa_t *)mctx;\n                in_stack_ffffff80 = prVar48;\n                iVar11 = check_node_accept_bytes\n                                   ((re_dfa_t *)prVar46->nodes,(Idx)&prVar46->syntax,\n                                    (re_string_t *)prVar50,(Idx)mctx,prVar48);\n                if (iVar11 < 1) {\n                  if (iVar11 == 0) {\n                    prVar40 = unaff_s4->nodes;\n                    goto LAB_0004d460;\n                  }\n                }\n                else {\n                  iVar17 = (int)prVar48->word_char + iVar11 + -0x60;\n                  if (iVar17 <= iVar31) {\n                    prVar39 = sctx->sifted_states[iVar17];\n                    if (prVar39 != (re_dfastate_t *)0x0) {\n                      in_a2 = (re_dfa_t *)prVar46->nexts[(int)prVar50];\n                      iVar31 = (*pcVar10)((prVar39->nodes).nelem,&(prVar39->nodes).elems);\n                      if (iVar31 != 0) goto LAB_0004d4b4;\n                    }\n                    prVar40 = unaff_s4->nodes;\nLAB_0004d460:\n                    prVar40 = prVar40 + (int)prVar50;\n                    goto LAB_0004d464;\n                  }\n                }\nLAB_0004d4b4:\n                if ((sctx->limits).nelem != 0) {\n                  in_stack_ffffff80 = (re_dfa_t *)((int)prVar48->word_char + iVar11 + -0x60);\n                  in_a2 = (re_dfa_t *)&(sctx->limits).elems;\n                  in_a3 = (re_dfa_t *)unaff_s4->nexts[(int)prVar50];\n                  iVar11 = (*pcVar8)(mctx,&(sctx->limits).nelem);\n                  prStack_7c = prVar50;\n                  prStack_78 = prVar48;\n                  if (iVar11 != 0) goto LAB_0004d510;\n                }\n                prVar46 = prVar50;\n                iVar11 = (*pcVar9)((re_dfa_t *)&cur_dest);\n                if (iVar11 == 0) {\n                  rVar7 = _REG_ESPACE;\n                  goto LAB_0004d62c;\n                }\n              }\nLAB_0004d510:\n              unaff_s5 = unaff_s5 + 1;\n              in_a3 = (re_dfa_t *)&cur_dest;\n            } while (unaff_s5 < (unaff_s6->non_eps_nodes).nelem);\n          }\n          prVar46 = (re_dfa_t *)sctx;\n          in_a2 = prVar48;\n          in_a3 = (re_dfa_t *)&cur_dest;\n          rVar7 = (*pcVar55)(mctx);\n          if (rVar7 != _REG_NOERROR) goto LAB_0004d62c;\n        } while (prVar48 != (re_dfa_t *)0x0);\n      }\n      rVar7 = _REG_NOERROR;\n    }" if (parenthesized_expression "(rVar7 == _REG_NOERROR)" ( (binary_expression "rVar7 == _REG_NOERROR" identifier == identifier) )) (compound_statement "{\n      iStack_64 = 0;\n      if (0 < (int)prVar48) {\n        pcVar8 = (code *)(PTR_LAB_00075920 + 0x5610);\n        pcVar9 = (code *)(PTR_LAB_00075920 + 0x33f8);\n        pcVar10 = (code *)(PTR_LAB_00075920 + 0x5230);\n        do {\n          unaff_s7 = (re_dfa_t *)((int)prVar48 * 4);\n          if (*(int *)((int)unaff_s7->word_char + (int)(sctx->sifted_states + -0x18)) == 0) {\n            iStack_64 = iStack_64 + 1;\n            if (mctx->max_mb_elem_len < iStack_64) goto LAB_0004d6a0;\n          }\n          else {\n            iStack_64 = 0;\n            if (mctx->max_mb_elem_len < 0) {\nLAB_0004d6a0:\n              prVar46 = (re_dfa_t *)0x0;\n              in_a2 = unaff_s7;\n              (*(code *)PTR_memset_00075ad4)();\n              (*(code *)PTR_free_00075bfc)(cur_dest.elems);\n              rVar7 = _REG_NOERROR;\n              goto LAB_0004d644;\n            }\n          }\n          cur_dest.nelem = 0;\n          unaff_s6 = (mctx->state_log + (int)prVar48)[-1];\n          prVar48 = (re_dfa_t *)(prVar48[-1].lock.__size + 0x17);\n          if ((unaff_s6 != (re_dfastate_t *)0x0) &&\n             (unaff_s4 = mctx->dfa, 0 < (unaff_s6->non_eps_nodes).nelem)) {\n            unaff_s5 = 0;\n            do {\n              prVar50 = (re_dfa_t *)(unaff_s6->non_eps_nodes).elems[unaff_s5];\n              unaff_s8 = (int)prVar50 * 8;\n              prVar40 = unaff_s4->nodes + (int)prVar50;\n              if ((*(uint *)&prVar40->field_0x4 & 0x800) == 0) {\nLAB_0004d464:\n                _Var28 = check_node_accept(mctx,prVar40,(Idx)prVar48);\n                if ((CONCAT31(extraout_var,_Var28) != 0) &&\n                   (iVar11 = *(int *)((int)unaff_s7->word_char + (int)(sctx->sifted_states + -0x18))\n                   , iVar11 != 0)) {\n                  in_a2 = (re_dfa_t *)unaff_s4->nexts[(int)prVar50];\n                  iVar31 = (*pcVar10)(*(undefined4 *)(iVar11 + 8),iVar11 + 0xc);\n                  iVar11 = 1;\n                  if (iVar31 != 0) goto LAB_0004d4b4;\n                }\n              }\n              else {\n                prVar46 = mctx->dfa;\n                iVar31 = sctx->last_str_idx;\n                in_a2 = prVar50;\n                in_a3 = (re_dfa_t *)mctx;\n                in_stack_ffffff80 = prVar48;\n                iVar11 = check_node_accept_bytes\n                                   ((re_dfa_t *)prVar46->nodes,(Idx)&prVar46->syntax,\n                                    (re_string_t *)prVar50,(Idx)mctx,prVar48);\n                if (iVar11 < 1) {\n                  if (iVar11 == 0) {\n                    prVar40 = unaff_s4->nodes;\n                    goto LAB_0004d460;\n                  }\n                }\n                else {\n                  iVar17 = (int)prVar48->word_char + iVar11 + -0x60;\n                  if (iVar17 <= iVar31) {\n                    prVar39 = sctx->sifted_states[iVar17];\n                    if (prVar39 != (re_dfastate_t *)0x0) {\n                      in_a2 = (re_dfa_t *)prVar46->nexts[(int)prVar50];\n                      iVar31 = (*pcVar10)((prVar39->nodes).nelem,&(prVar39->nodes).elems);\n                      if (iVar31 != 0) goto LAB_0004d4b4;\n                    }\n                    prVar40 = unaff_s4->nodes;\nLAB_0004d460:\n                    prVar40 = prVar40 + (int)prVar50;\n                    goto LAB_0004d464;\n                  }\n                }\nLAB_0004d4b4:\n                if ((sctx->limits).nelem != 0) {\n                  in_stack_ffffff80 = (re_dfa_t *)((int)prVar48->word_char + iVar11 + -0x60);\n                  in_a2 = (re_dfa_t *)&(sctx->limits).elems;\n                  in_a3 = (re_dfa_t *)unaff_s4->nexts[(int)prVar50];\n                  iVar11 = (*pcVar8)(mctx,&(sctx->limits).nelem);\n                  prStack_7c = prVar50;\n                  prStack_78 = prVar48;\n                  if (iVar11 != 0) goto LAB_0004d510;\n                }\n                prVar46 = prVar50;\n                iVar11 = (*pcVar9)((re_dfa_t *)&cur_dest);\n                if (iVar11 == 0) {\n                  rVar7 = _REG_ESPACE;\n                  goto LAB_0004d62c;\n                }\n              }\nLAB_0004d510:\n              unaff_s5 = unaff_s5 + 1;\n              in_a3 = (re_dfa_t *)&cur_dest;\n            } while (unaff_s5 < (unaff_s6->non_eps_nodes).nelem);\n          }\n          prVar46 = (re_dfa_t *)sctx;\n          in_a2 = prVar48;\n          in_a3 = (re_dfa_t *)&cur_dest;\n          rVar7 = (*pcVar55)(mctx);\n          if (rVar7 != _REG_NOERROR) goto LAB_0004d62c;\n        } while (prVar48 != (re_dfa_t *)0x0);\n      }\n      rVar7 = _REG_NOERROR;\n    }" { (expression_statement "iStack_64 = 0;" (assignment_expression "iStack_64 = 0" identifier = number_literal) ;) (if_statement "if (0 < (int)prVar48) {\n        pcVar8 = (code *)(PTR_LAB_00075920 + 0x5610);\n        pcVar9 = (code *)(PTR_LAB_00075920 + 0x33f8);\n        pcVar10 = (code *)(PTR_LAB_00075920 + 0x5230);\n        do {\n          unaff_s7 = (re_dfa_t *)((int)prVar48 * 4);\n          if (*(int *)((int)unaff_s7->word_char + (int)(sctx->sifted_states + -0x18)) == 0) {\n            iStack_64 = iStack_64 + 1;\n            if (mctx->max_mb_elem_len < iStack_64) goto LAB_0004d6a0;\n          }\n          else {\n            iStack_64 = 0;\n            if (mctx->max_mb_elem_len < 0) {\nLAB_0004d6a0:\n              prVar46 = (re_dfa_t *)0x0;\n              in_a2 = unaff_s7;\n              (*(code *)PTR_memset_00075ad4)();\n              (*(code *)PTR_free_00075bfc)(cur_dest.elems);\n              rVar7 = _REG_NOERROR;\n              goto LAB_0004d644;\n            }\n          }\n          cur_dest.nelem = 0;\n          unaff_s6 = (mctx->state_log + (int)prVar48)[-1];\n          prVar48 = (re_dfa_t *)(prVar48[-1].lock.__size + 0x17);\n          if ((unaff_s6 != (re_dfastate_t *)0x0) &&\n             (unaff_s4 = mctx->dfa, 0 < (unaff_s6->non_eps_nodes).nelem)) {\n            unaff_s5 = 0;\n            do {\n              prVar50 = (re_dfa_t *)(unaff_s6->non_eps_nodes).elems[unaff_s5];\n              unaff_s8 = (int)prVar50 * 8;\n              prVar40 = unaff_s4->nodes + (int)prVar50;\n              if ((*(uint *)&prVar40->field_0x4 & 0x800) == 0) {\nLAB_0004d464:\n                _Var28 = check_node_accept(mctx,prVar40,(Idx)prVar48);\n                if ((CONCAT31(extraout_var,_Var28) != 0) &&\n                   (iVar11 = *(int *)((int)unaff_s7->word_char + (int)(sctx->sifted_states + -0x18))\n                   , iVar11 != 0)) {\n                  in_a2 = (re_dfa_t *)unaff_s4->nexts[(int)prVar50];\n                  iVar31 = (*pcVar10)(*(undefined4 *)(iVar11 + 8),iVar11 + 0xc);\n                  iVar11 = 1;\n                  if (iVar31 != 0) goto LAB_0004d4b4;\n                }\n              }\n              else {\n                prVar46 = mctx->dfa;\n                iVar31 = sctx->last_str_idx;\n                in_a2 = prVar50;\n                in_a3 = (re_dfa_t *)mctx;\n                in_stack_ffffff80 = prVar48;\n                iVar11 = check_node_accept_bytes\n                                   ((re_dfa_t *)prVar46->nodes,(Idx)&prVar46->syntax,\n                                    (re_string_t *)prVar50,(Idx)mctx,prVar48);\n                if (iVar11 < 1) {\n                  if (iVar11 == 0) {\n                    prVar40 = unaff_s4->nodes;\n                    goto LAB_0004d460;\n                  }\n                }\n                else {\n                  iVar17 = (int)prVar48->word_char + iVar11 + -0x60;\n                  if (iVar17 <= iVar31) {\n                    prVar39 = sctx->sifted_states[iVar17];\n                    if (prVar39 != (re_dfastate_t *)0x0) {\n                      in_a2 = (re_dfa_t *)prVar46->nexts[(int)prVar50];\n                      iVar31 = (*pcVar10)((prVar39->nodes).nelem,&(prVar39->nodes).elems);\n                      if (iVar31 != 0) goto LAB_0004d4b4;\n                    }\n                    prVar40 = unaff_s4->nodes;\nLAB_0004d460:\n                    prVar40 = prVar40 + (int)prVar50;\n                    goto LAB_0004d464;\n                  }\n                }\nLAB_0004d4b4:\n                if ((sctx->limits).nelem != 0) {\n                  in_stack_ffffff80 = (re_dfa_t *)((int)prVar48->word_char + iVar11 + -0x60);\n                  in_a2 = (re_dfa_t *)&(sctx->limits).elems;\n                  in_a3 = (re_dfa_t *)unaff_s4->nexts[(int)prVar50];\n                  iVar11 = (*pcVar8)(mctx,&(sctx->limits).nelem);\n                  prStack_7c = prVar50;\n                  prStack_78 = prVar48;\n                  if (iVar11 != 0) goto LAB_0004d510;\n                }\n                prVar46 = prVar50;\n                iVar11 = (*pcVar9)((re_dfa_t *)&cur_dest);\n                if (iVar11 == 0) {\n                  rVar7 = _REG_ESPACE;\n                  goto LAB_0004d62c;\n                }\n              }\nLAB_0004d510:\n              unaff_s5 = unaff_s5 + 1;\n              in_a3 = (re_dfa_t *)&cur_dest;\n            } while (unaff_s5 < (unaff_s6->non_eps_nodes).nelem);\n          }\n          prVar46 = (re_dfa_t *)sctx;\n          in_a2 = prVar48;\n          in_a3 = (re_dfa_t *)&cur_dest;\n          rVar7 = (*pcVar55)(mctx);\n          if (rVar7 != _REG_NOERROR) goto LAB_0004d62c;\n        } while (prVar48 != (re_dfa_t *)0x0);\n      }" if (parenthesized_expression "(0 < (int)prVar48)" ( (binary_expression "0 < (int)prVar48" number_literal < (cast_expression "(int)prVar48" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        pcVar8 = (code *)(PTR_LAB_00075920 + 0x5610);\n        pcVar9 = (code *)(PTR_LAB_00075920 + 0x33f8);\n        pcVar10 = (code *)(PTR_LAB_00075920 + 0x5230);\n        do {\n          unaff_s7 = (re_dfa_t *)((int)prVar48 * 4);\n          if (*(int *)((int)unaff_s7->word_char + (int)(sctx->sifted_states + -0x18)) == 0) {\n            iStack_64 = iStack_64 + 1;\n            if (mctx->max_mb_elem_len < iStack_64) goto LAB_0004d6a0;\n          }\n          else {\n            iStack_64 = 0;\n            if (mctx->max_mb_elem_len < 0) {\nLAB_0004d6a0:\n              prVar46 = (re_dfa_t *)0x0;\n              in_a2 = unaff_s7;\n              (*(code *)PTR_memset_00075ad4)();\n              (*(code *)PTR_free_00075bfc)(cur_dest.elems);\n              rVar7 = _REG_NOERROR;\n              goto LAB_0004d644;\n            }\n          }\n          cur_dest.nelem = 0;\n          unaff_s6 = (mctx->state_log + (int)prVar48)[-1];\n          prVar48 = (re_dfa_t *)(prVar48[-1].lock.__size + 0x17);\n          if ((unaff_s6 != (re_dfastate_t *)0x0) &&\n             (unaff_s4 = mctx->dfa, 0 < (unaff_s6->non_eps_nodes).nelem)) {\n            unaff_s5 = 0;\n            do {\n              prVar50 = (re_dfa_t *)(unaff_s6->non_eps_nodes).elems[unaff_s5];\n              unaff_s8 = (int)prVar50 * 8;\n              prVar40 = unaff_s4->nodes + (int)prVar50;\n              if ((*(uint *)&prVar40->field_0x4 & 0x800) == 0) {\nLAB_0004d464:\n                _Var28 = check_node_accept(mctx,prVar40,(Idx)prVar48);\n                if ((CONCAT31(extraout_var,_Var28) != 0) &&\n                   (iVar11 = *(int *)((int)unaff_s7->word_char + (int)(sctx->sifted_states + -0x18))\n                   , iVar11 != 0)) {\n                  in_a2 = (re_dfa_t *)unaff_s4->nexts[(int)prVar50];\n                  iVar31 = (*pcVar10)(*(undefined4 *)(iVar11 + 8),iVar11 + 0xc);\n                  iVar11 = 1;\n                  if (iVar31 != 0) goto LAB_0004d4b4;\n                }\n              }\n              else {\n                prVar46 = mctx->dfa;\n                iVar31 = sctx->last_str_idx;\n                in_a2 = prVar50;\n                in_a3 = (re_dfa_t *)mctx;\n                in_stack_ffffff80 = prVar48;\n                iVar11 = check_node_accept_bytes\n                                   ((re_dfa_t *)prVar46->nodes,(Idx)&prVar46->syntax,\n                                    (re_string_t *)prVar50,(Idx)mctx,prVar48);\n                if (iVar11 < 1) {\n                  if (iVar11 == 0) {\n                    prVar40 = unaff_s4->nodes;\n                    goto LAB_0004d460;\n                  }\n                }\n                else {\n                  iVar17 = (int)prVar48->word_char + iVar11 + -0x60;\n                  if (iVar17 <= iVar31) {\n                    prVar39 = sctx->sifted_states[iVar17];\n                    if (prVar39 != (re_dfastate_t *)0x0) {\n                      in_a2 = (re_dfa_t *)prVar46->nexts[(int)prVar50];\n                      iVar31 = (*pcVar10)((prVar39->nodes).nelem,&(prVar39->nodes).elems);\n                      if (iVar31 != 0) goto LAB_0004d4b4;\n                    }\n                    prVar40 = unaff_s4->nodes;\nLAB_0004d460:\n                    prVar40 = prVar40 + (int)prVar50;\n                    goto LAB_0004d464;\n                  }\n                }\nLAB_0004d4b4:\n                if ((sctx->limits).nelem != 0) {\n                  in_stack_ffffff80 = (re_dfa_t *)((int)prVar48->word_char + iVar11 + -0x60);\n                  in_a2 = (re_dfa_t *)&(sctx->limits).elems;\n                  in_a3 = (re_dfa_t *)unaff_s4->nexts[(int)prVar50];\n                  iVar11 = (*pcVar8)(mctx,&(sctx->limits).nelem);\n                  prStack_7c = prVar50;\n                  prStack_78 = prVar48;\n                  if (iVar11 != 0) goto LAB_0004d510;\n                }\n                prVar46 = prVar50;\n                iVar11 = (*pcVar9)((re_dfa_t *)&cur_dest);\n                if (iVar11 == 0) {\n                  rVar7 = _REG_ESPACE;\n                  goto LAB_0004d62c;\n                }\n              }\nLAB_0004d510:\n              unaff_s5 = unaff_s5 + 1;\n              in_a3 = (re_dfa_t *)&cur_dest;\n            } while (unaff_s5 < (unaff_s6->non_eps_nodes).nelem);\n          }\n          prVar46 = (re_dfa_t *)sctx;\n          in_a2 = prVar48;\n          in_a3 = (re_dfa_t *)&cur_dest;\n          rVar7 = (*pcVar55)(mctx);\n          if (rVar7 != _REG_NOERROR) goto LAB_0004d62c;\n        } while (prVar48 != (re_dfa_t *)0x0);\n      }" { (expression_statement "pcVar8 = (code *)(PTR_LAB_00075920 + 0x5610);" (assignment_expression "pcVar8 = (code *)(PTR_LAB_00075920 + 0x5610)" identifier = (cast_expression "(code *)(PTR_LAB_00075920 + 0x5610)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00075920 + 0x5610)" ( (binary_expression "PTR_LAB_00075920 + 0x5610" identifier + number_literal) )))) ;) (expression_statement "pcVar9 = (code *)(PTR_LAB_00075920 + 0x33f8);" (assignment_expression "pcVar9 = (code *)(PTR_LAB_00075920 + 0x33f8)" identifier = (cast_expression "(code *)(PTR_LAB_00075920 + 0x33f8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00075920 + 0x33f8)" ( (binary_expression "PTR_LAB_00075920 + 0x33f8" identifier + number_literal) )))) ;) (expression_statement "pcVar10 = (code *)(PTR_LAB_00075920 + 0x5230);" (assignment_expression "pcVar10 = (code *)(PTR_LAB_00075920 + 0x5230)" identifier = (cast_expression "(code *)(PTR_LAB_00075920 + 0x5230)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00075920 + 0x5230)" ( (binary_expression "PTR_LAB_00075920 + 0x5230" identifier + number_literal) )))) ;) (do_statement "do {\n          unaff_s7 = (re_dfa_t *)((int)prVar48 * 4);\n          if (*(int *)((int)unaff_s7->word_char + (int)(sctx->sifted_states + -0x18)) == 0) {\n            iStack_64 = iStack_64 + 1;\n            if (mctx->max_mb_elem_len < iStack_64) goto LAB_0004d6a0;\n          }\n          else {\n            iStack_64 = 0;\n            if (mctx->max_mb_elem_len < 0) {\nLAB_0004d6a0:\n              prVar46 = (re_dfa_t *)0x0;\n              in_a2 = unaff_s7;\n              (*(code *)PTR_memset_00075ad4)();\n              (*(code *)PTR_free_00075bfc)(cur_dest.elems);\n              rVar7 = _REG_NOERROR;\n              goto LAB_0004d644;\n            }\n          }\n          cur_dest.nelem = 0;\n          unaff_s6 = (mctx->state_log + (int)prVar48)[-1];\n          prVar48 = (re_dfa_t *)(prVar48[-1].lock.__size + 0x17);\n          if ((unaff_s6 != (re_dfastate_t *)0x0) &&\n             (unaff_s4 = mctx->dfa, 0 < (unaff_s6->non_eps_nodes).nelem)) {\n            unaff_s5 = 0;\n            do {\n              prVar50 = (re_dfa_t *)(unaff_s6->non_eps_nodes).elems[unaff_s5];\n              unaff_s8 = (int)prVar50 * 8;\n              prVar40 = unaff_s4->nodes + (int)prVar50;\n              if ((*(uint *)&prVar40->field_0x4 & 0x800) == 0) {\nLAB_0004d464:\n                _Var28 = check_node_accept(mctx,prVar40,(Idx)prVar48);\n                if ((CONCAT31(extraout_var,_Var28) != 0) &&\n                   (iVar11 = *(int *)((int)unaff_s7->word_char + (int)(sctx->sifted_states + -0x18))\n                   , iVar11 != 0)) {\n                  in_a2 = (re_dfa_t *)unaff_s4->nexts[(int)prVar50];\n                  iVar31 = (*pcVar10)(*(undefined4 *)(iVar11 + 8),iVar11 + 0xc);\n                  iVar11 = 1;\n                  if (iVar31 != 0) goto LAB_0004d4b4;\n                }\n              }\n              else {\n                prVar46 = mctx->dfa;\n                iVar31 = sctx->last_str_idx;\n                in_a2 = prVar50;\n                in_a3 = (re_dfa_t *)mctx;\n                in_stack_ffffff80 = prVar48;\n                iVar11 = check_node_accept_bytes\n                                   ((re_dfa_t *)prVar46->nodes,(Idx)&prVar46->syntax,\n                                    (re_string_t *)prVar50,(Idx)mctx,prVar48);\n                if (iVar11 < 1) {\n                  if (iVar11 == 0) {\n                    prVar40 = unaff_s4->nodes;\n                    goto LAB_0004d460;\n                  }\n                }\n                else {\n                  iVar17 = (int)prVar48->word_char + iVar11 + -0x60;\n                  if (iVar17 <= iVar31) {\n                    prVar39 = sctx->sifted_states[iVar17];\n                    if (prVar39 != (re_dfastate_t *)0x0) {\n                      in_a2 = (re_dfa_t *)prVar46->nexts[(int)prVar50];\n                      iVar31 = (*pcVar10)((prVar39->nodes).nelem,&(prVar39->nodes).elems);\n                      if (iVar31 != 0) goto LAB_0004d4b4;\n                    }\n                    prVar40 = unaff_s4->nodes;\nLAB_0004d460:\n                    prVar40 = prVar40 + (int)prVar50;\n                    goto LAB_0004d464;\n                  }\n                }\nLAB_0004d4b4:\n                if ((sctx->limits).nelem != 0) {\n                  in_stack_ffffff80 = (re_dfa_t *)((int)prVar48->word_char + iVar11 + -0x60);\n                  in_a2 = (re_dfa_t *)&(sctx->limits).elems;\n                  in_a3 = (re_dfa_t *)unaff_s4->nexts[(int)prVar50];\n                  iVar11 = (*pcVar8)(mctx,&(sctx->limits).nelem);\n                  prStack_7c = prVar50;\n                  prStack_78 = prVar48;\n                  if (iVar11 != 0) goto LAB_0004d510;\n                }\n                prVar46 = prVar50;\n                iVar11 = (*pcVar9)((re_dfa_t *)&cur_dest);\n                if (iVar11 == 0) {\n                  rVar7 = _REG_ESPACE;\n                  goto LAB_0004d62c;\n                }\n              }\nLAB_0004d510:\n              unaff_s5 = unaff_s5 + 1;\n              in_a3 = (re_dfa_t *)&cur_dest;\n            } while (unaff_s5 < (unaff_s6->non_eps_nodes).nelem);\n          }\n          prVar46 = (re_dfa_t *)sctx;\n          in_a2 = prVar48;\n          in_a3 = (re_dfa_t *)&cur_dest;\n          rVar7 = (*pcVar55)(mctx);\n          if (rVar7 != _REG_NOERROR) goto LAB_0004d62c;\n        } while (prVar48 != (re_dfa_t *)0x0);" do (compound_statement "{\n          unaff_s7 = (re_dfa_t *)((int)prVar48 * 4);\n          if (*(int *)((int)unaff_s7->word_char + (int)(sctx->sifted_states + -0x18)) == 0) {\n            iStack_64 = iStack_64 + 1;\n            if (mctx->max_mb_elem_len < iStack_64) goto LAB_0004d6a0;\n          }\n          else {\n            iStack_64 = 0;\n            if (mctx->max_mb_elem_len < 0) {\nLAB_0004d6a0:\n              prVar46 = (re_dfa_t *)0x0;\n              in_a2 = unaff_s7;\n              (*(code *)PTR_memset_00075ad4)();\n              (*(code *)PTR_free_00075bfc)(cur_dest.elems);\n              rVar7 = _REG_NOERROR;\n              goto LAB_0004d644;\n            }\n          }\n          cur_dest.nelem = 0;\n          unaff_s6 = (mctx->state_log + (int)prVar48)[-1];\n          prVar48 = (re_dfa_t *)(prVar48[-1].lock.__size + 0x17);\n          if ((unaff_s6 != (re_dfastate_t *)0x0) &&\n             (unaff_s4 = mctx->dfa, 0 < (unaff_s6->non_eps_nodes).nelem)) {\n            unaff_s5 = 0;\n            do {\n              prVar50 = (re_dfa_t *)(unaff_s6->non_eps_nodes).elems[unaff_s5];\n              unaff_s8 = (int)prVar50 * 8;\n              prVar40 = unaff_s4->nodes + (int)prVar50;\n              if ((*(uint *)&prVar40->field_0x4 & 0x800) == 0) {\nLAB_0004d464:\n                _Var28 = check_node_accept(mctx,prVar40,(Idx)prVar48);\n                if ((CONCAT31(extraout_var,_Var28) != 0) &&\n                   (iVar11 = *(int *)((int)unaff_s7->word_char + (int)(sctx->sifted_states + -0x18))\n                   , iVar11 != 0)) {\n                  in_a2 = (re_dfa_t *)unaff_s4->nexts[(int)prVar50];\n                  iVar31 = (*pcVar10)(*(undefined4 *)(iVar11 + 8),iVar11 + 0xc);\n                  iVar11 = 1;\n                  if (iVar31 != 0) goto LAB_0004d4b4;\n                }\n              }\n              else {\n                prVar46 = mctx->dfa;\n                iVar31 = sctx->last_str_idx;\n                in_a2 = prVar50;\n                in_a3 = (re_dfa_t *)mctx;\n                in_stack_ffffff80 = prVar48;\n                iVar11 = check_node_accept_bytes\n                                   ((re_dfa_t *)prVar46->nodes,(Idx)&prVar46->syntax,\n                                    (re_string_t *)prVar50,(Idx)mctx,prVar48);\n                if (iVar11 < 1) {\n                  if (iVar11 == 0) {\n                    prVar40 = unaff_s4->nodes;\n                    goto LAB_0004d460;\n                  }\n                }\n                else {\n                  iVar17 = (int)prVar48->word_char + iVar11 + -0x60;\n                  if (iVar17 <= iVar31) {\n                    prVar39 = sctx->sifted_states[iVar17];\n                    if (prVar39 != (re_dfastate_t *)0x0) {\n                      in_a2 = (re_dfa_t *)prVar46->nexts[(int)prVar50];\n                      iVar31 = (*pcVar10)((prVar39->nodes).nelem,&(prVar39->nodes).elems);\n                      if (iVar31 != 0) goto LAB_0004d4b4;\n                    }\n                    prVar40 = unaff_s4->nodes;\nLAB_0004d460:\n                    prVar40 = prVar40 + (int)prVar50;\n                    goto LAB_0004d464;\n                  }\n                }\nLAB_0004d4b4:\n                if ((sctx->limits).nelem != 0) {\n                  in_stack_ffffff80 = (re_dfa_t *)((int)prVar48->word_char + iVar11 + -0x60);\n                  in_a2 = (re_dfa_t *)&(sctx->limits).elems;\n                  in_a3 = (re_dfa_t *)unaff_s4->nexts[(int)prVar50];\n                  iVar11 = (*pcVar8)(mctx,&(sctx->limits).nelem);\n                  prStack_7c = prVar50;\n                  prStack_78 = prVar48;\n                  if (iVar11 != 0) goto LAB_0004d510;\n                }\n                prVar46 = prVar50;\n                iVar11 = (*pcVar9)((re_dfa_t *)&cur_dest);\n                if (iVar11 == 0) {\n                  rVar7 = _REG_ESPACE;\n                  goto LAB_0004d62c;\n                }\n              }\nLAB_0004d510:\n              unaff_s5 = unaff_s5 + 1;\n              in_a3 = (re_dfa_t *)&cur_dest;\n            } while (unaff_s5 < (unaff_s6->non_eps_nodes).nelem);\n          }\n          prVar46 = (re_dfa_t *)sctx;\n          in_a2 = prVar48;\n          in_a3 = (re_dfa_t *)&cur_dest;\n          rVar7 = (*pcVar55)(mctx);\n          if (rVar7 != _REG_NOERROR) goto LAB_0004d62c;\n        }" { (expression_statement "unaff_s7 = (re_dfa_t *)((int)prVar48 * 4);" (assignment_expression "unaff_s7 = (re_dfa_t *)((int)prVar48 * 4)" identifier = (cast_expression "(re_dfa_t *)((int)prVar48 * 4)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)prVar48 * 4)" ( (binary_expression "(int)prVar48 * 4" (cast_expression "(int)prVar48" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (if_statement "if (*(int *)((int)unaff_s7->word_char + (int)(sctx->sifted_states + -0x18)) == 0) {\n            iStack_64 = iStack_64 + 1;\n            if (mctx->max_mb_elem_len < iStack_64) goto LAB_0004d6a0;\n          }\n          else {\n            iStack_64 = 0;\n            if (mctx->max_mb_elem_len < 0) {\nLAB_0004d6a0:\n              prVar46 = (re_dfa_t *)0x0;\n              in_a2 = unaff_s7;\n              (*(code *)PTR_memset_00075ad4)();\n              (*(code *)PTR_free_00075bfc)(cur_dest.elems);\n              rVar7 = _REG_NOERROR;\n              goto LAB_0004d644;\n            }\n          }" if (parenthesized_expression "(*(int *)((int)unaff_s7->word_char + (int)(sctx->sifted_states + -0x18)) == 0)" ( (binary_expression "*(int *)((int)unaff_s7->word_char + (int)(sctx->sifted_states + -0x18)) == 0" (pointer_expression "*(int *)((int)unaff_s7->word_char + (int)(sctx->sifted_states + -0x18))" * (cast_expression "(int *)((int)unaff_s7->word_char + (int)(sctx->sifted_states + -0x18))" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s7->word_char + (int)(sctx->sifted_states + -0x18))" ( (binary_expression "(int)unaff_s7->word_char + (int)(sctx->sifted_states + -0x18)" (cast_expression "(int)unaff_s7->word_char" ( (type_descriptor "int" primitive_type) ) (field_expression "unaff_s7->word_char" identifier -> field_identifier)) + (cast_expression "(int)(sctx->sifted_states + -0x18)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(sctx->sifted_states + -0x18)" ( (binary_expression "sctx->sifted_states + -0x18" (field_expression "sctx->sifted_states" identifier -> field_identifier) + number_literal) )))) )))) == number_literal) )) (compound_statement "{\n            iStack_64 = iStack_64 + 1;\n            if (mctx->max_mb_elem_len < iStack_64) goto LAB_0004d6a0;\n          }" { (expression_statement "iStack_64 = iStack_64 + 1;" (assignment_expression "iStack_64 = iStack_64 + 1" identifier = (binary_expression "iStack_64 + 1" identifier + number_literal)) ;) (if_statement "if (mctx->max_mb_elem_len < iStack_64) goto LAB_0004d6a0;" if (parenthesized_expression "(mctx->max_mb_elem_len < iStack_64)" ( (binary_expression "mctx->max_mb_elem_len < iStack_64" (field_expression "mctx->max_mb_elem_len" identifier -> field_identifier) < identifier) )) (goto_statement "goto LAB_0004d6a0;" goto statement_identifier ;)) }) (else_clause "else {\n            iStack_64 = 0;\n            if (mctx->max_mb_elem_len < 0) {\nLAB_0004d6a0:\n              prVar46 = (re_dfa_t *)0x0;\n              in_a2 = unaff_s7;\n              (*(code *)PTR_memset_00075ad4)();\n              (*(code *)PTR_free_00075bfc)(cur_dest.elems);\n              rVar7 = _REG_NOERROR;\n              goto LAB_0004d644;\n            }\n          }" else (compound_statement "{\n            iStack_64 = 0;\n            if (mctx->max_mb_elem_len < 0) {\nLAB_0004d6a0:\n              prVar46 = (re_dfa_t *)0x0;\n              in_a2 = unaff_s7;\n              (*(code *)PTR_memset_00075ad4)();\n              (*(code *)PTR_free_00075bfc)(cur_dest.elems);\n              rVar7 = _REG_NOERROR;\n              goto LAB_0004d644;\n            }\n          }" { (expression_statement "iStack_64 = 0;" (assignment_expression "iStack_64 = 0" identifier = number_literal) ;) (if_statement "if (mctx->max_mb_elem_len < 0) {\nLAB_0004d6a0:\n              prVar46 = (re_dfa_t *)0x0;\n              in_a2 = unaff_s7;\n              (*(code *)PTR_memset_00075ad4)();\n              (*(code *)PTR_free_00075bfc)(cur_dest.elems);\n              rVar7 = _REG_NOERROR;\n              goto LAB_0004d644;\n            }" if (parenthesized_expression "(mctx->max_mb_elem_len < 0)" ( (binary_expression "mctx->max_mb_elem_len < 0" (field_expression "mctx->max_mb_elem_len" identifier -> field_identifier) < number_literal) )) (compound_statement "{\nLAB_0004d6a0:\n              prVar46 = (re_dfa_t *)0x0;\n              in_a2 = unaff_s7;\n              (*(code *)PTR_memset_00075ad4)();\n              (*(code *)PTR_free_00075bfc)(cur_dest.elems);\n              rVar7 = _REG_NOERROR;\n              goto LAB_0004d644;\n            }" { (labeled_statement "LAB_0004d6a0:\n              prVar46 = (re_dfa_t *)0x0;" statement_identifier : (expression_statement "prVar46 = (re_dfa_t *)0x0;" (assignment_expression "prVar46 = (re_dfa_t *)0x0" identifier = (cast_expression "(re_dfa_t *)0x0" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "in_a2 = unaff_s7;" (assignment_expression "in_a2 = unaff_s7" identifier = identifier) ;) (expression_statement "(*(code *)PTR_memset_00075ad4)();" (call_expression "(*(code *)PTR_memset_00075ad4)()" (parenthesized_expression "(*(code *)PTR_memset_00075ad4)" ( (pointer_expression "*(code *)PTR_memset_00075ad4" * (cast_expression "(code *)PTR_memset_00075ad4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "(*(code *)PTR_free_00075bfc)(cur_dest.elems);" (call_expression "(*(code *)PTR_free_00075bfc)(cur_dest.elems)" (parenthesized_expression "(*(code *)PTR_free_00075bfc)" ( (pointer_expression "*(code *)PTR_free_00075bfc" * (cast_expression "(code *)PTR_free_00075bfc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(cur_dest.elems)" ( (field_expression "cur_dest.elems" identifier . field_identifier) ))) ;) (expression_statement "rVar7 = _REG_NOERROR;" (assignment_expression "rVar7 = _REG_NOERROR" identifier = identifier) ;) (goto_statement "goto LAB_0004d644;" goto statement_identifier ;) })) }))) (expression_statement "cur_dest.nelem = 0;" (assignment_expression "cur_dest.nelem = 0" (field_expression "cur_dest.nelem" identifier . field_identifier) = number_literal) ;) (expression_statement "unaff_s6 = (mctx->state_log + (int)prVar48)[-1];" (assignment_expression "unaff_s6 = (mctx->state_log + (int)prVar48)[-1]" identifier = (subscript_expression "(mctx->state_log + (int)prVar48)[-1]" (parenthesized_expression "(mctx->state_log + (int)prVar48)" ( (binary_expression "mctx->state_log + (int)prVar48" (field_expression "mctx->state_log" identifier -> field_identifier) + (cast_expression "(int)prVar48" ( (type_descriptor "int" primitive_type) ) identifier)) )) [ number_literal ])) ;) (expression_statement "prVar48 = (re_dfa_t *)(prVar48[-1].lock.__size + 0x17);" (assignment_expression "prVar48 = (re_dfa_t *)(prVar48[-1].lock.__size + 0x17)" identifier = (cast_expression "(re_dfa_t *)(prVar48[-1].lock.__size + 0x17)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(prVar48[-1].lock.__size + 0x17)" ( (binary_expression "prVar48[-1].lock.__size + 0x17" (field_expression "prVar48[-1].lock.__size" (field_expression "prVar48[-1].lock" (subscript_expression "prVar48[-1]" identifier [ number_literal ]) . field_identifier) . field_identifier) + number_literal) )))) ;) (if_statement "if ((unaff_s6 != (re_dfastate_t *)0x0) &&\n             (unaff_s4 = mctx->dfa, 0 < (unaff_s6->non_eps_nodes).nelem)) {\n            unaff_s5 = 0;\n            do {\n              prVar50 = (re_dfa_t *)(unaff_s6->non_eps_nodes).elems[unaff_s5];\n              unaff_s8 = (int)prVar50 * 8;\n              prVar40 = unaff_s4->nodes + (int)prVar50;\n              if ((*(uint *)&prVar40->field_0x4 & 0x800) == 0) {\nLAB_0004d464:\n                _Var28 = check_node_accept(mctx,prVar40,(Idx)prVar48);\n                if ((CONCAT31(extraout_var,_Var28) != 0) &&\n                   (iVar11 = *(int *)((int)unaff_s7->word_char + (int)(sctx->sifted_states + -0x18))\n                   , iVar11 != 0)) {\n                  in_a2 = (re_dfa_t *)unaff_s4->nexts[(int)prVar50];\n                  iVar31 = (*pcVar10)(*(undefined4 *)(iVar11 + 8),iVar11 + 0xc);\n                  iVar11 = 1;\n                  if (iVar31 != 0) goto LAB_0004d4b4;\n                }\n              }\n              else {\n                prVar46 = mctx->dfa;\n                iVar31 = sctx->last_str_idx;\n                in_a2 = prVar50;\n                in_a3 = (re_dfa_t *)mctx;\n                in_stack_ffffff80 = prVar48;\n                iVar11 = check_node_accept_bytes\n                                   ((re_dfa_t *)prVar46->nodes,(Idx)&prVar46->syntax,\n                                    (re_string_t *)prVar50,(Idx)mctx,prVar48);\n                if (iVar11 < 1) {\n                  if (iVar11 == 0) {\n                    prVar40 = unaff_s4->nodes;\n                    goto LAB_0004d460;\n                  }\n                }\n                else {\n                  iVar17 = (int)prVar48->word_char + iVar11 + -0x60;\n                  if (iVar17 <= iVar31) {\n                    prVar39 = sctx->sifted_states[iVar17];\n                    if (prVar39 != (re_dfastate_t *)0x0) {\n                      in_a2 = (re_dfa_t *)prVar46->nexts[(int)prVar50];\n                      iVar31 = (*pcVar10)((prVar39->nodes).nelem,&(prVar39->nodes).elems);\n                      if (iVar31 != 0) goto LAB_0004d4b4;\n                    }\n                    prVar40 = unaff_s4->nodes;\nLAB_0004d460:\n                    prVar40 = prVar40 + (int)prVar50;\n                    goto LAB_0004d464;\n                  }\n                }\nLAB_0004d4b4:\n                if ((sctx->limits).nelem != 0) {\n                  in_stack_ffffff80 = (re_dfa_t *)((int)prVar48->word_char + iVar11 + -0x60);\n                  in_a2 = (re_dfa_t *)&(sctx->limits).elems;\n                  in_a3 = (re_dfa_t *)unaff_s4->nexts[(int)prVar50];\n                  iVar11 = (*pcVar8)(mctx,&(sctx->limits).nelem);\n                  prStack_7c = prVar50;\n                  prStack_78 = prVar48;\n                  if (iVar11 != 0) goto LAB_0004d510;\n                }\n                prVar46 = prVar50;\n                iVar11 = (*pcVar9)((re_dfa_t *)&cur_dest);\n                if (iVar11 == 0) {\n                  rVar7 = _REG_ESPACE;\n                  goto LAB_0004d62c;\n                }\n              }\nLAB_0004d510:\n              unaff_s5 = unaff_s5 + 1;\n              in_a3 = (re_dfa_t *)&cur_dest;\n            } while (unaff_s5 < (unaff_s6->non_eps_nodes).nelem);\n          }" if (parenthesized_expression "((unaff_s6 != (re_dfastate_t *)0x0) &&\n             (unaff_s4 = mctx->dfa, 0 < (unaff_s6->non_eps_nodes).nelem))" ( (binary_expression "(unaff_s6 != (re_dfastate_t *)0x0) &&\n             (unaff_s4 = mctx->dfa, 0 < (unaff_s6->non_eps_nodes).nelem)" (parenthesized_expression "(unaff_s6 != (re_dfastate_t *)0x0)" ( (binary_expression "unaff_s6 != (re_dfastate_t *)0x0" identifier != (cast_expression "(re_dfastate_t *)0x0" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(unaff_s4 = mctx->dfa, 0 < (unaff_s6->non_eps_nodes).nelem)" ( (comma_expression "unaff_s4 = mctx->dfa, 0 < (unaff_s6->non_eps_nodes).nelem" (assignment_expression "unaff_s4 = mctx->dfa" identifier = (field_expression "mctx->dfa" identifier -> field_identifier)) , (binary_expression "0 < (unaff_s6->non_eps_nodes).nelem" number_literal < (field_expression "(unaff_s6->non_eps_nodes).nelem" (parenthesized_expression "(unaff_s6->non_eps_nodes)" ( (field_expression "unaff_s6->non_eps_nodes" identifier -> field_identifier) )) . field_identifier))) ))) )) (compound_statement "{\n            unaff_s5 = 0;\n            do {\n              prVar50 = (re_dfa_t *)(unaff_s6->non_eps_nodes).elems[unaff_s5];\n              unaff_s8 = (int)prVar50 * 8;\n              prVar40 = unaff_s4->nodes + (int)prVar50;\n              if ((*(uint *)&prVar40->field_0x4 & 0x800) == 0) {\nLAB_0004d464:\n                _Var28 = check_node_accept(mctx,prVar40,(Idx)prVar48);\n                if ((CONCAT31(extraout_var,_Var28) != 0) &&\n                   (iVar11 = *(int *)((int)unaff_s7->word_char + (int)(sctx->sifted_states + -0x18))\n                   , iVar11 != 0)) {\n                  in_a2 = (re_dfa_t *)unaff_s4->nexts[(int)prVar50];\n                  iVar31 = (*pcVar10)(*(undefined4 *)(iVar11 + 8),iVar11 + 0xc);\n                  iVar11 = 1;\n                  if (iVar31 != 0) goto LAB_0004d4b4;\n                }\n              }\n              else {\n                prVar46 = mctx->dfa;\n                iVar31 = sctx->last_str_idx;\n                in_a2 = prVar50;\n                in_a3 = (re_dfa_t *)mctx;\n                in_stack_ffffff80 = prVar48;\n                iVar11 = check_node_accept_bytes\n                                   ((re_dfa_t *)prVar46->nodes,(Idx)&prVar46->syntax,\n                                    (re_string_t *)prVar50,(Idx)mctx,prVar48);\n                if (iVar11 < 1) {\n                  if (iVar11 == 0) {\n                    prVar40 = unaff_s4->nodes;\n                    goto LAB_0004d460;\n                  }\n                }\n                else {\n                  iVar17 = (int)prVar48->word_char + iVar11 + -0x60;\n                  if (iVar17 <= iVar31) {\n                    prVar39 = sctx->sifted_states[iVar17];\n                    if (prVar39 != (re_dfastate_t *)0x0) {\n                      in_a2 = (re_dfa_t *)prVar46->nexts[(int)prVar50];\n                      iVar31 = (*pcVar10)((prVar39->nodes).nelem,&(prVar39->nodes).elems);\n                      if (iVar31 != 0) goto LAB_0004d4b4;\n                    }\n                    prVar40 = unaff_s4->nodes;\nLAB_0004d460:\n                    prVar40 = prVar40 + (int)prVar50;\n                    goto LAB_0004d464;\n                  }\n                }\nLAB_0004d4b4:\n                if ((sctx->limits).nelem != 0) {\n                  in_stack_ffffff80 = (re_dfa_t *)((int)prVar48->word_char + iVar11 + -0x60);\n                  in_a2 = (re_dfa_t *)&(sctx->limits).elems;\n                  in_a3 = (re_dfa_t *)unaff_s4->nexts[(int)prVar50];\n                  iVar11 = (*pcVar8)(mctx,&(sctx->limits).nelem);\n                  prStack_7c = prVar50;\n                  prStack_78 = prVar48;\n                  if (iVar11 != 0) goto LAB_0004d510;\n                }\n                prVar46 = prVar50;\n                iVar11 = (*pcVar9)((re_dfa_t *)&cur_dest);\n                if (iVar11 == 0) {\n                  rVar7 = _REG_ESPACE;\n                  goto LAB_0004d62c;\n                }\n              }\nLAB_0004d510:\n              unaff_s5 = unaff_s5 + 1;\n              in_a3 = (re_dfa_t *)&cur_dest;\n            } while (unaff_s5 < (unaff_s6->non_eps_nodes).nelem);\n          }" { (expression_statement "unaff_s5 = 0;" (assignment_expression "unaff_s5 = 0" identifier = number_literal) ;) (do_statement "do {\n              prVar50 = (re_dfa_t *)(unaff_s6->non_eps_nodes).elems[unaff_s5];\n              unaff_s8 = (int)prVar50 * 8;\n              prVar40 = unaff_s4->nodes + (int)prVar50;\n              if ((*(uint *)&prVar40->field_0x4 & 0x800) == 0) {\nLAB_0004d464:\n                _Var28 = check_node_accept(mctx,prVar40,(Idx)prVar48);\n                if ((CONCAT31(extraout_var,_Var28) != 0) &&\n                   (iVar11 = *(int *)((int)unaff_s7->word_char + (int)(sctx->sifted_states + -0x18))\n                   , iVar11 != 0)) {\n                  in_a2 = (re_dfa_t *)unaff_s4->nexts[(int)prVar50];\n                  iVar31 = (*pcVar10)(*(undefined4 *)(iVar11 + 8),iVar11 + 0xc);\n                  iVar11 = 1;\n                  if (iVar31 != 0) goto LAB_0004d4b4;\n                }\n              }\n              else {\n                prVar46 = mctx->dfa;\n                iVar31 = sctx->last_str_idx;\n                in_a2 = prVar50;\n                in_a3 = (re_dfa_t *)mctx;\n                in_stack_ffffff80 = prVar48;\n                iVar11 = check_node_accept_bytes\n                                   ((re_dfa_t *)prVar46->nodes,(Idx)&prVar46->syntax,\n                                    (re_string_t *)prVar50,(Idx)mctx,prVar48);\n                if (iVar11 < 1) {\n                  if (iVar11 == 0) {\n                    prVar40 = unaff_s4->nodes;\n                    goto LAB_0004d460;\n                  }\n                }\n                else {\n                  iVar17 = (int)prVar48->word_char + iVar11 + -0x60;\n                  if (iVar17 <= iVar31) {\n                    prVar39 = sctx->sifted_states[iVar17];\n                    if (prVar39 != (re_dfastate_t *)0x0) {\n                      in_a2 = (re_dfa_t *)prVar46->nexts[(int)prVar50];\n                      iVar31 = (*pcVar10)((prVar39->nodes).nelem,&(prVar39->nodes).elems);\n                      if (iVar31 != 0) goto LAB_0004d4b4;\n                    }\n                    prVar40 = unaff_s4->nodes;\nLAB_0004d460:\n                    prVar40 = prVar40 + (int)prVar50;\n                    goto LAB_0004d464;\n                  }\n                }\nLAB_0004d4b4:\n                if ((sctx->limits).nelem != 0) {\n                  in_stack_ffffff80 = (re_dfa_t *)((int)prVar48->word_char + iVar11 + -0x60);\n                  in_a2 = (re_dfa_t *)&(sctx->limits).elems;\n                  in_a3 = (re_dfa_t *)unaff_s4->nexts[(int)prVar50];\n                  iVar11 = (*pcVar8)(mctx,&(sctx->limits).nelem);\n                  prStack_7c = prVar50;\n                  prStack_78 = prVar48;\n                  if (iVar11 != 0) goto LAB_0004d510;\n                }\n                prVar46 = prVar50;\n                iVar11 = (*pcVar9)((re_dfa_t *)&cur_dest);\n                if (iVar11 == 0) {\n                  rVar7 = _REG_ESPACE;\n                  goto LAB_0004d62c;\n                }\n              }\nLAB_0004d510:\n              unaff_s5 = unaff_s5 + 1;\n              in_a3 = (re_dfa_t *)&cur_dest;\n            } while (unaff_s5 < (unaff_s6->non_eps_nodes).nelem);" do (compound_statement "{\n              prVar50 = (re_dfa_t *)(unaff_s6->non_eps_nodes).elems[unaff_s5];\n              unaff_s8 = (int)prVar50 * 8;\n              prVar40 = unaff_s4->nodes + (int)prVar50;\n              if ((*(uint *)&prVar40->field_0x4 & 0x800) == 0) {\nLAB_0004d464:\n                _Var28 = check_node_accept(mctx,prVar40,(Idx)prVar48);\n                if ((CONCAT31(extraout_var,_Var28) != 0) &&\n                   (iVar11 = *(int *)((int)unaff_s7->word_char + (int)(sctx->sifted_states + -0x18))\n                   , iVar11 != 0)) {\n                  in_a2 = (re_dfa_t *)unaff_s4->nexts[(int)prVar50];\n                  iVar31 = (*pcVar10)(*(undefined4 *)(iVar11 + 8),iVar11 + 0xc);\n                  iVar11 = 1;\n                  if (iVar31 != 0) goto LAB_0004d4b4;\n                }\n              }\n              else {\n                prVar46 = mctx->dfa;\n                iVar31 = sctx->last_str_idx;\n                in_a2 = prVar50;\n                in_a3 = (re_dfa_t *)mctx;\n                in_stack_ffffff80 = prVar48;\n                iVar11 = check_node_accept_bytes\n                                   ((re_dfa_t *)prVar46->nodes,(Idx)&prVar46->syntax,\n                                    (re_string_t *)prVar50,(Idx)mctx,prVar48);\n                if (iVar11 < 1) {\n                  if (iVar11 == 0) {\n                    prVar40 = unaff_s4->nodes;\n                    goto LAB_0004d460;\n                  }\n                }\n                else {\n                  iVar17 = (int)prVar48->word_char + iVar11 + -0x60;\n                  if (iVar17 <= iVar31) {\n                    prVar39 = sctx->sifted_states[iVar17];\n                    if (prVar39 != (re_dfastate_t *)0x0) {\n                      in_a2 = (re_dfa_t *)prVar46->nexts[(int)prVar50];\n                      iVar31 = (*pcVar10)((prVar39->nodes).nelem,&(prVar39->nodes).elems);\n                      if (iVar31 != 0) goto LAB_0004d4b4;\n                    }\n                    prVar40 = unaff_s4->nodes;\nLAB_0004d460:\n                    prVar40 = prVar40 + (int)prVar50;\n                    goto LAB_0004d464;\n                  }\n                }\nLAB_0004d4b4:\n                if ((sctx->limits).nelem != 0) {\n                  in_stack_ffffff80 = (re_dfa_t *)((int)prVar48->word_char + iVar11 + -0x60);\n                  in_a2 = (re_dfa_t *)&(sctx->limits).elems;\n                  in_a3 = (re_dfa_t *)unaff_s4->nexts[(int)prVar50];\n                  iVar11 = (*pcVar8)(mctx,&(sctx->limits).nelem);\n                  prStack_7c = prVar50;\n                  prStack_78 = prVar48;\n                  if (iVar11 != 0) goto LAB_0004d510;\n                }\n                prVar46 = prVar50;\n                iVar11 = (*pcVar9)((re_dfa_t *)&cur_dest);\n                if (iVar11 == 0) {\n                  rVar7 = _REG_ESPACE;\n                  goto LAB_0004d62c;\n                }\n              }\nLAB_0004d510:\n              unaff_s5 = unaff_s5 + 1;\n              in_a3 = (re_dfa_t *)&cur_dest;\n            }" { (expression_statement "prVar50 = (re_dfa_t *)(unaff_s6->non_eps_nodes).elems[unaff_s5];" (assignment_expression "prVar50 = (re_dfa_t *)(unaff_s6->non_eps_nodes).elems[unaff_s5]" identifier = (cast_expression "(re_dfa_t *)(unaff_s6->non_eps_nodes).elems[unaff_s5]" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "(unaff_s6->non_eps_nodes).elems[unaff_s5]" (field_expression "(unaff_s6->non_eps_nodes).elems" (parenthesized_expression "(unaff_s6->non_eps_nodes)" ( (field_expression "unaff_s6->non_eps_nodes" identifier -> field_identifier) )) . field_identifier) [ identifier ]))) ;) (expression_statement "unaff_s8 = (int)prVar50 * 8;" (assignment_expression "unaff_s8 = (int)prVar50 * 8" identifier = (binary_expression "(int)prVar50 * 8" (cast_expression "(int)prVar50" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (expression_statement "prVar40 = unaff_s4->nodes + (int)prVar50;" (assignment_expression "prVar40 = unaff_s4->nodes + (int)prVar50" identifier = (binary_expression "unaff_s4->nodes + (int)prVar50" (field_expression "unaff_s4->nodes" identifier -> field_identifier) + (cast_expression "(int)prVar50" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((*(uint *)&prVar40->field_0x4 & 0x800) == 0) {\nLAB_0004d464:\n                _Var28 = check_node_accept(mctx,prVar40,(Idx)prVar48);\n                if ((CONCAT31(extraout_var,_Var28) != 0) &&\n                   (iVar11 = *(int *)((int)unaff_s7->word_char + (int)(sctx->sifted_states + -0x18))\n                   , iVar11 != 0)) {\n                  in_a2 = (re_dfa_t *)unaff_s4->nexts[(int)prVar50];\n                  iVar31 = (*pcVar10)(*(undefined4 *)(iVar11 + 8),iVar11 + 0xc);\n                  iVar11 = 1;\n                  if (iVar31 != 0) goto LAB_0004d4b4;\n                }\n              }\n              else {\n                prVar46 = mctx->dfa;\n                iVar31 = sctx->last_str_idx;\n                in_a2 = prVar50;\n                in_a3 = (re_dfa_t *)mctx;\n                in_stack_ffffff80 = prVar48;\n                iVar11 = check_node_accept_bytes\n                                   ((re_dfa_t *)prVar46->nodes,(Idx)&prVar46->syntax,\n                                    (re_string_t *)prVar50,(Idx)mctx,prVar48);\n                if (iVar11 < 1) {\n                  if (iVar11 == 0) {\n                    prVar40 = unaff_s4->nodes;\n                    goto LAB_0004d460;\n                  }\n                }\n                else {\n                  iVar17 = (int)prVar48->word_char + iVar11 + -0x60;\n                  if (iVar17 <= iVar31) {\n                    prVar39 = sctx->sifted_states[iVar17];\n                    if (prVar39 != (re_dfastate_t *)0x0) {\n                      in_a2 = (re_dfa_t *)prVar46->nexts[(int)prVar50];\n                      iVar31 = (*pcVar10)((prVar39->nodes).nelem,&(prVar39->nodes).elems);\n                      if (iVar31 != 0) goto LAB_0004d4b4;\n                    }\n                    prVar40 = unaff_s4->nodes;\nLAB_0004d460:\n                    prVar40 = prVar40 + (int)prVar50;\n                    goto LAB_0004d464;\n                  }\n                }\nLAB_0004d4b4:\n                if ((sctx->limits).nelem != 0) {\n                  in_stack_ffffff80 = (re_dfa_t *)((int)prVar48->word_char + iVar11 + -0x60);\n                  in_a2 = (re_dfa_t *)&(sctx->limits).elems;\n                  in_a3 = (re_dfa_t *)unaff_s4->nexts[(int)prVar50];\n                  iVar11 = (*pcVar8)(mctx,&(sctx->limits).nelem);\n                  prStack_7c = prVar50;\n                  prStack_78 = prVar48;\n                  if (iVar11 != 0) goto LAB_0004d510;\n                }\n                prVar46 = prVar50;\n                iVar11 = (*pcVar9)((re_dfa_t *)&cur_dest);\n                if (iVar11 == 0) {\n                  rVar7 = _REG_ESPACE;\n                  goto LAB_0004d62c;\n                }\n              }" if (parenthesized_expression "((*(uint *)&prVar40->field_0x4 & 0x800) == 0)" ( (binary_expression "(*(uint *)&prVar40->field_0x4 & 0x800) == 0" (parenthesized_expression "(*(uint *)&prVar40->field_0x4 & 0x800)" ( (binary_expression "*(uint *)&prVar40->field_0x4 & 0x800" (pointer_expression "*(uint *)&prVar40->field_0x4" * (cast_expression "(uint *)&prVar40->field_0x4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&prVar40->field_0x4" & (field_expression "prVar40->field_0x4" identifier -> field_identifier)))) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_0004d464:\n                _Var28 = check_node_accept(mctx,prVar40,(Idx)prVar48);\n                if ((CONCAT31(extraout_var,_Var28) != 0) &&\n                   (iVar11 = *(int *)((int)unaff_s7->word_char + (int)(sctx->sifted_states + -0x18))\n                   , iVar11 != 0)) {\n                  in_a2 = (re_dfa_t *)unaff_s4->nexts[(int)prVar50];\n                  iVar31 = (*pcVar10)(*(undefined4 *)(iVar11 + 8),iVar11 + 0xc);\n                  iVar11 = 1;\n                  if (iVar31 != 0) goto LAB_0004d4b4;\n                }\n              }" { (labeled_statement "LAB_0004d464:\n                _Var28 = check_node_accept(mctx,prVar40,(Idx)prVar48);" statement_identifier : (expression_statement "_Var28 = check_node_accept(mctx,prVar40,(Idx)prVar48);" (assignment_expression "_Var28 = check_node_accept(mctx,prVar40,(Idx)prVar48)" identifier = (call_expression "check_node_accept(mctx,prVar40,(Idx)prVar48)" identifier (argument_list "(mctx,prVar40,(Idx)prVar48)" ( identifier , identifier , (cast_expression "(Idx)prVar48" ( (type_descriptor "Idx" type_identifier) ) identifier) )))) ;)) (if_statement "if ((CONCAT31(extraout_var,_Var28) != 0) &&\n                   (iVar11 = *(int *)((int)unaff_s7->word_char + (int)(sctx->sifted_states + -0x18))\n                   , iVar11 != 0)) {\n                  in_a2 = (re_dfa_t *)unaff_s4->nexts[(int)prVar50];\n                  iVar31 = (*pcVar10)(*(undefined4 *)(iVar11 + 8),iVar11 + 0xc);\n                  iVar11 = 1;\n                  if (iVar31 != 0) goto LAB_0004d4b4;\n                }" if (parenthesized_expression "((CONCAT31(extraout_var,_Var28) != 0) &&\n                   (iVar11 = *(int *)((int)unaff_s7->word_char + (int)(sctx->sifted_states + -0x18))\n                   , iVar11 != 0))" ( (binary_expression "(CONCAT31(extraout_var,_Var28) != 0) &&\n                   (iVar11 = *(int *)((int)unaff_s7->word_char + (int)(sctx->sifted_states + -0x18))\n                   , iVar11 != 0)" (parenthesized_expression "(CONCAT31(extraout_var,_Var28) != 0)" ( (binary_expression "CONCAT31(extraout_var,_Var28) != 0" (call_expression "CONCAT31(extraout_var,_Var28)" identifier (argument_list "(extraout_var,_Var28)" ( identifier , identifier ))) != number_literal) )) && (parenthesized_expression "(iVar11 = *(int *)((int)unaff_s7->word_char + (int)(sctx->sifted_states + -0x18))\n                   , iVar11 != 0)" ( (comma_expression "iVar11 = *(int *)((int)unaff_s7->word_char + (int)(sctx->sifted_states + -0x18))\n                   , iVar11 != 0" (assignment_expression "iVar11 = *(int *)((int)unaff_s7->word_char + (int)(sctx->sifted_states + -0x18))" identifier = (pointer_expression "*(int *)((int)unaff_s7->word_char + (int)(sctx->sifted_states + -0x18))" * (cast_expression "(int *)((int)unaff_s7->word_char + (int)(sctx->sifted_states + -0x18))" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s7->word_char + (int)(sctx->sifted_states + -0x18))" ( (binary_expression "(int)unaff_s7->word_char + (int)(sctx->sifted_states + -0x18)" (cast_expression "(int)unaff_s7->word_char" ( (type_descriptor "int" primitive_type) ) (field_expression "unaff_s7->word_char" identifier -> field_identifier)) + (cast_expression "(int)(sctx->sifted_states + -0x18)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(sctx->sifted_states + -0x18)" ( (binary_expression "sctx->sifted_states + -0x18" (field_expression "sctx->sifted_states" identifier -> field_identifier) + number_literal) )))) ))))) , (binary_expression "iVar11 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n                  in_a2 = (re_dfa_t *)unaff_s4->nexts[(int)prVar50];\n                  iVar31 = (*pcVar10)(*(undefined4 *)(iVar11 + 8),iVar11 + 0xc);\n                  iVar11 = 1;\n                  if (iVar31 != 0) goto LAB_0004d4b4;\n                }" { (expression_statement "in_a2 = (re_dfa_t *)unaff_s4->nexts[(int)prVar50];" (assignment_expression "in_a2 = (re_dfa_t *)unaff_s4->nexts[(int)prVar50]" identifier = (cast_expression "(re_dfa_t *)unaff_s4->nexts[(int)prVar50]" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "unaff_s4->nexts[(int)prVar50]" (field_expression "unaff_s4->nexts" identifier -> field_identifier) [ (cast_expression "(int)prVar50" ( (type_descriptor "int" primitive_type) ) identifier) ]))) ;) (expression_statement "iVar31 = (*pcVar10)(*(undefined4 *)(iVar11 + 8),iVar11 + 0xc);" (assignment_expression "iVar31 = (*pcVar10)(*(undefined4 *)(iVar11 + 8),iVar11 + 0xc)" identifier = (call_expression "(*pcVar10)(*(undefined4 *)(iVar11 + 8),iVar11 + 0xc)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(*(undefined4 *)(iVar11 + 8),iVar11 + 0xc)" ( (pointer_expression "*(undefined4 *)(iVar11 + 8)" * (cast_expression "(undefined4 *)(iVar11 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 8)" ( (binary_expression "iVar11 + 8" identifier + number_literal) )))) , (binary_expression "iVar11 + 0xc" identifier + number_literal) )))) ;) (expression_statement "iVar11 = 1;" (assignment_expression "iVar11 = 1" identifier = number_literal) ;) (if_statement "if (iVar31 != 0) goto LAB_0004d4b4;" if (parenthesized_expression "(iVar31 != 0)" ( (binary_expression "iVar31 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0004d4b4;" goto statement_identifier ;)) })) }) (else_clause "else {\n                prVar46 = mctx->dfa;\n                iVar31 = sctx->last_str_idx;\n                in_a2 = prVar50;\n                in_a3 = (re_dfa_t *)mctx;\n                in_stack_ffffff80 = prVar48;\n                iVar11 = check_node_accept_bytes\n                                   ((re_dfa_t *)prVar46->nodes,(Idx)&prVar46->syntax,\n                                    (re_string_t *)prVar50,(Idx)mctx,prVar48);\n                if (iVar11 < 1) {\n                  if (iVar11 == 0) {\n                    prVar40 = unaff_s4->nodes;\n                    goto LAB_0004d460;\n                  }\n                }\n                else {\n                  iVar17 = (int)prVar48->word_char + iVar11 + -0x60;\n                  if (iVar17 <= iVar31) {\n                    prVar39 = sctx->sifted_states[iVar17];\n                    if (prVar39 != (re_dfastate_t *)0x0) {\n                      in_a2 = (re_dfa_t *)prVar46->nexts[(int)prVar50];\n                      iVar31 = (*pcVar10)((prVar39->nodes).nelem,&(prVar39->nodes).elems);\n                      if (iVar31 != 0) goto LAB_0004d4b4;\n                    }\n                    prVar40 = unaff_s4->nodes;\nLAB_0004d460:\n                    prVar40 = prVar40 + (int)prVar50;\n                    goto LAB_0004d464;\n                  }\n                }\nLAB_0004d4b4:\n                if ((sctx->limits).nelem != 0) {\n                  in_stack_ffffff80 = (re_dfa_t *)((int)prVar48->word_char + iVar11 + -0x60);\n                  in_a2 = (re_dfa_t *)&(sctx->limits).elems;\n                  in_a3 = (re_dfa_t *)unaff_s4->nexts[(int)prVar50];\n                  iVar11 = (*pcVar8)(mctx,&(sctx->limits).nelem);\n                  prStack_7c = prVar50;\n                  prStack_78 = prVar48;\n                  if (iVar11 != 0) goto LAB_0004d510;\n                }\n                prVar46 = prVar50;\n                iVar11 = (*pcVar9)((re_dfa_t *)&cur_dest);\n                if (iVar11 == 0) {\n                  rVar7 = _REG_ESPACE;\n                  goto LAB_0004d62c;\n                }\n              }" else (compound_statement "{\n                prVar46 = mctx->dfa;\n                iVar31 = sctx->last_str_idx;\n                in_a2 = prVar50;\n                in_a3 = (re_dfa_t *)mctx;\n                in_stack_ffffff80 = prVar48;\n                iVar11 = check_node_accept_bytes\n                                   ((re_dfa_t *)prVar46->nodes,(Idx)&prVar46->syntax,\n                                    (re_string_t *)prVar50,(Idx)mctx,prVar48);\n                if (iVar11 < 1) {\n                  if (iVar11 == 0) {\n                    prVar40 = unaff_s4->nodes;\n                    goto LAB_0004d460;\n                  }\n                }\n                else {\n                  iVar17 = (int)prVar48->word_char + iVar11 + -0x60;\n                  if (iVar17 <= iVar31) {\n                    prVar39 = sctx->sifted_states[iVar17];\n                    if (prVar39 != (re_dfastate_t *)0x0) {\n                      in_a2 = (re_dfa_t *)prVar46->nexts[(int)prVar50];\n                      iVar31 = (*pcVar10)((prVar39->nodes).nelem,&(prVar39->nodes).elems);\n                      if (iVar31 != 0) goto LAB_0004d4b4;\n                    }\n                    prVar40 = unaff_s4->nodes;\nLAB_0004d460:\n                    prVar40 = prVar40 + (int)prVar50;\n                    goto LAB_0004d464;\n                  }\n                }\nLAB_0004d4b4:\n                if ((sctx->limits).nelem != 0) {\n                  in_stack_ffffff80 = (re_dfa_t *)((int)prVar48->word_char + iVar11 + -0x60);\n                  in_a2 = (re_dfa_t *)&(sctx->limits).elems;\n                  in_a3 = (re_dfa_t *)unaff_s4->nexts[(int)prVar50];\n                  iVar11 = (*pcVar8)(mctx,&(sctx->limits).nelem);\n                  prStack_7c = prVar50;\n                  prStack_78 = prVar48;\n                  if (iVar11 != 0) goto LAB_0004d510;\n                }\n                prVar46 = prVar50;\n                iVar11 = (*pcVar9)((re_dfa_t *)&cur_dest);\n                if (iVar11 == 0) {\n                  rVar7 = _REG_ESPACE;\n                  goto LAB_0004d62c;\n                }\n              }" { (expression_statement "prVar46 = mctx->dfa;" (assignment_expression "prVar46 = mctx->dfa" identifier = (field_expression "mctx->dfa" identifier -> field_identifier)) ;) (expression_statement "iVar31 = sctx->last_str_idx;" (assignment_expression "iVar31 = sctx->last_str_idx" identifier = (field_expression "sctx->last_str_idx" identifier -> field_identifier)) ;) (expression_statement "in_a2 = prVar50;" (assignment_expression "in_a2 = prVar50" identifier = identifier) ;) (expression_statement "in_a3 = (re_dfa_t *)mctx;" (assignment_expression "in_a3 = (re_dfa_t *)mctx" identifier = (cast_expression "(re_dfa_t *)mctx" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "in_stack_ffffff80 = prVar48;" (assignment_expression "in_stack_ffffff80 = prVar48" identifier = identifier) ;) (expression_statement "iVar11 = check_node_accept_bytes\n                                   ((re_dfa_t *)prVar46->nodes,(Idx)&prVar46->syntax,\n                                    (re_string_t *)prVar50,(Idx)mctx,prVar48);" (assignment_expression "iVar11 = check_node_accept_bytes\n                                   ((re_dfa_t *)prVar46->nodes,(Idx)&prVar46->syntax,\n                                    (re_string_t *)prVar50,(Idx)mctx,prVar48)" identifier = (call_expression "check_node_accept_bytes\n                                   ((re_dfa_t *)prVar46->nodes,(Idx)&prVar46->syntax,\n                                    (re_string_t *)prVar50,(Idx)mctx,prVar48)" identifier (argument_list "((re_dfa_t *)prVar46->nodes,(Idx)&prVar46->syntax,\n                                    (re_string_t *)prVar50,(Idx)mctx,prVar48)" ( (cast_expression "(re_dfa_t *)prVar46->nodes" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "prVar46->nodes" identifier -> field_identifier)) , (binary_expression "(Idx)&prVar46->syntax" (parenthesized_expression "(Idx)" ( identifier )) & (field_expression "prVar46->syntax" identifier -> field_identifier)) , (cast_expression "(re_string_t *)prVar50" ( (type_descriptor "re_string_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(Idx)mctx" ( (type_descriptor "Idx" type_identifier) ) identifier) , identifier )))) ;) (if_statement "if (iVar11 < 1) {\n                  if (iVar11 == 0) {\n                    prVar40 = unaff_s4->nodes;\n                    goto LAB_0004d460;\n                  }\n                }\n                else {\n                  iVar17 = (int)prVar48->word_char + iVar11 + -0x60;\n                  if (iVar17 <= iVar31) {\n                    prVar39 = sctx->sifted_states[iVar17];\n                    if (prVar39 != (re_dfastate_t *)0x0) {\n                      in_a2 = (re_dfa_t *)prVar46->nexts[(int)prVar50];\n                      iVar31 = (*pcVar10)((prVar39->nodes).nelem,&(prVar39->nodes).elems);\n                      if (iVar31 != 0) goto LAB_0004d4b4;\n                    }\n                    prVar40 = unaff_s4->nodes;\nLAB_0004d460:\n                    prVar40 = prVar40 + (int)prVar50;\n                    goto LAB_0004d464;\n                  }\n                }" if (parenthesized_expression "(iVar11 < 1)" ( (binary_expression "iVar11 < 1" identifier < number_literal) )) (compound_statement "{\n                  if (iVar11 == 0) {\n                    prVar40 = unaff_s4->nodes;\n                    goto LAB_0004d460;\n                  }\n                }" { (if_statement "if (iVar11 == 0) {\n                    prVar40 = unaff_s4->nodes;\n                    goto LAB_0004d460;\n                  }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n                    prVar40 = unaff_s4->nodes;\n                    goto LAB_0004d460;\n                  }" { (expression_statement "prVar40 = unaff_s4->nodes;" (assignment_expression "prVar40 = unaff_s4->nodes" identifier = (field_expression "unaff_s4->nodes" identifier -> field_identifier)) ;) (goto_statement "goto LAB_0004d460;" goto statement_identifier ;) })) }) (else_clause "else {\n                  iVar17 = (int)prVar48->word_char + iVar11 + -0x60;\n                  if (iVar17 <= iVar31) {\n                    prVar39 = sctx->sifted_states[iVar17];\n                    if (prVar39 != (re_dfastate_t *)0x0) {\n                      in_a2 = (re_dfa_t *)prVar46->nexts[(int)prVar50];\n                      iVar31 = (*pcVar10)((prVar39->nodes).nelem,&(prVar39->nodes).elems);\n                      if (iVar31 != 0) goto LAB_0004d4b4;\n                    }\n                    prVar40 = unaff_s4->nodes;\nLAB_0004d460:\n                    prVar40 = prVar40 + (int)prVar50;\n                    goto LAB_0004d464;\n                  }\n                }" else (compound_statement "{\n                  iVar17 = (int)prVar48->word_char + iVar11 + -0x60;\n                  if (iVar17 <= iVar31) {\n                    prVar39 = sctx->sifted_states[iVar17];\n                    if (prVar39 != (re_dfastate_t *)0x0) {\n                      in_a2 = (re_dfa_t *)prVar46->nexts[(int)prVar50];\n                      iVar31 = (*pcVar10)((prVar39->nodes).nelem,&(prVar39->nodes).elems);\n                      if (iVar31 != 0) goto LAB_0004d4b4;\n                    }\n                    prVar40 = unaff_s4->nodes;\nLAB_0004d460:\n                    prVar40 = prVar40 + (int)prVar50;\n                    goto LAB_0004d464;\n                  }\n                }" { (expression_statement "iVar17 = (int)prVar48->word_char + iVar11 + -0x60;" (assignment_expression "iVar17 = (int)prVar48->word_char + iVar11 + -0x60" identifier = (binary_expression "(int)prVar48->word_char + iVar11 + -0x60" (binary_expression "(int)prVar48->word_char + iVar11" (cast_expression "(int)prVar48->word_char" ( (type_descriptor "int" primitive_type) ) (field_expression "prVar48->word_char" identifier -> field_identifier)) + identifier) + number_literal)) ;) (if_statement "if (iVar17 <= iVar31) {\n                    prVar39 = sctx->sifted_states[iVar17];\n                    if (prVar39 != (re_dfastate_t *)0x0) {\n                      in_a2 = (re_dfa_t *)prVar46->nexts[(int)prVar50];\n                      iVar31 = (*pcVar10)((prVar39->nodes).nelem,&(prVar39->nodes).elems);\n                      if (iVar31 != 0) goto LAB_0004d4b4;\n                    }\n                    prVar40 = unaff_s4->nodes;\nLAB_0004d460:\n                    prVar40 = prVar40 + (int)prVar50;\n                    goto LAB_0004d464;\n                  }" if (parenthesized_expression "(iVar17 <= iVar31)" ( (binary_expression "iVar17 <= iVar31" identifier <= identifier) )) (compound_statement "{\n                    prVar39 = sctx->sifted_states[iVar17];\n                    if (prVar39 != (re_dfastate_t *)0x0) {\n                      in_a2 = (re_dfa_t *)prVar46->nexts[(int)prVar50];\n                      iVar31 = (*pcVar10)((prVar39->nodes).nelem,&(prVar39->nodes).elems);\n                      if (iVar31 != 0) goto LAB_0004d4b4;\n                    }\n                    prVar40 = unaff_s4->nodes;\nLAB_0004d460:\n                    prVar40 = prVar40 + (int)prVar50;\n                    goto LAB_0004d464;\n                  }" { (expression_statement "prVar39 = sctx->sifted_states[iVar17];" (assignment_expression "prVar39 = sctx->sifted_states[iVar17]" identifier = (subscript_expression "sctx->sifted_states[iVar17]" (field_expression "sctx->sifted_states" identifier -> field_identifier) [ identifier ])) ;) (if_statement "if (prVar39 != (re_dfastate_t *)0x0) {\n                      in_a2 = (re_dfa_t *)prVar46->nexts[(int)prVar50];\n                      iVar31 = (*pcVar10)((prVar39->nodes).nelem,&(prVar39->nodes).elems);\n                      if (iVar31 != 0) goto LAB_0004d4b4;\n                    }" if (parenthesized_expression "(prVar39 != (re_dfastate_t *)0x0)" ( (binary_expression "prVar39 != (re_dfastate_t *)0x0" identifier != (cast_expression "(re_dfastate_t *)0x0" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                      in_a2 = (re_dfa_t *)prVar46->nexts[(int)prVar50];\n                      iVar31 = (*pcVar10)((prVar39->nodes).nelem,&(prVar39->nodes).elems);\n                      if (iVar31 != 0) goto LAB_0004d4b4;\n                    }" { (expression_statement "in_a2 = (re_dfa_t *)prVar46->nexts[(int)prVar50];" (assignment_expression "in_a2 = (re_dfa_t *)prVar46->nexts[(int)prVar50]" identifier = (cast_expression "(re_dfa_t *)prVar46->nexts[(int)prVar50]" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "prVar46->nexts[(int)prVar50]" (field_expression "prVar46->nexts" identifier -> field_identifier) [ (cast_expression "(int)prVar50" ( (type_descriptor "int" primitive_type) ) identifier) ]))) ;) (expression_statement "iVar31 = (*pcVar10)((prVar39->nodes).nelem,&(prVar39->nodes).elems);" (assignment_expression "iVar31 = (*pcVar10)((prVar39->nodes).nelem,&(prVar39->nodes).elems)" identifier = (call_expression "(*pcVar10)((prVar39->nodes).nelem,&(prVar39->nodes).elems)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "((prVar39->nodes).nelem,&(prVar39->nodes).elems)" ( (field_expression "(prVar39->nodes).nelem" (parenthesized_expression "(prVar39->nodes)" ( (field_expression "prVar39->nodes" identifier -> field_identifier) )) . field_identifier) , (pointer_expression "&(prVar39->nodes).elems" & (field_expression "(prVar39->nodes).elems" (parenthesized_expression "(prVar39->nodes)" ( (field_expression "prVar39->nodes" identifier -> field_identifier) )) . field_identifier)) )))) ;) (if_statement "if (iVar31 != 0) goto LAB_0004d4b4;" if (parenthesized_expression "(iVar31 != 0)" ( (binary_expression "iVar31 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0004d4b4;" goto statement_identifier ;)) })) (expression_statement "prVar40 = unaff_s4->nodes;" (assignment_expression "prVar40 = unaff_s4->nodes" identifier = (field_expression "unaff_s4->nodes" identifier -> field_identifier)) ;) (labeled_statement "LAB_0004d460:\n                    prVar40 = prVar40 + (int)prVar50;" statement_identifier : (expression_statement "prVar40 = prVar40 + (int)prVar50;" (assignment_expression "prVar40 = prVar40 + (int)prVar50" identifier = (binary_expression "prVar40 + (int)prVar50" identifier + (cast_expression "(int)prVar50" ( (type_descriptor "int" primitive_type) ) identifier))) ;)) (goto_statement "goto LAB_0004d464;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_0004d4b4:\n                if ((sctx->limits).nelem != 0) {\n                  in_stack_ffffff80 = (re_dfa_t *)((int)prVar48->word_char + iVar11 + -0x60);\n                  in_a2 = (re_dfa_t *)&(sctx->limits).elems;\n                  in_a3 = (re_dfa_t *)unaff_s4->nexts[(int)prVar50];\n                  iVar11 = (*pcVar8)(mctx,&(sctx->limits).nelem);\n                  prStack_7c = prVar50;\n                  prStack_78 = prVar48;\n                  if (iVar11 != 0) goto LAB_0004d510;\n                }" statement_identifier : (if_statement "if ((sctx->limits).nelem != 0) {\n                  in_stack_ffffff80 = (re_dfa_t *)((int)prVar48->word_char + iVar11 + -0x60);\n                  in_a2 = (re_dfa_t *)&(sctx->limits).elems;\n                  in_a3 = (re_dfa_t *)unaff_s4->nexts[(int)prVar50];\n                  iVar11 = (*pcVar8)(mctx,&(sctx->limits).nelem);\n                  prStack_7c = prVar50;\n                  prStack_78 = prVar48;\n                  if (iVar11 != 0) goto LAB_0004d510;\n                }" if (parenthesized_expression "((sctx->limits).nelem != 0)" ( (binary_expression "(sctx->limits).nelem != 0" (field_expression "(sctx->limits).nelem" (parenthesized_expression "(sctx->limits)" ( (field_expression "sctx->limits" identifier -> field_identifier) )) . field_identifier) != number_literal) )) (compound_statement "{\n                  in_stack_ffffff80 = (re_dfa_t *)((int)prVar48->word_char + iVar11 + -0x60);\n                  in_a2 = (re_dfa_t *)&(sctx->limits).elems;\n                  in_a3 = (re_dfa_t *)unaff_s4->nexts[(int)prVar50];\n                  iVar11 = (*pcVar8)(mctx,&(sctx->limits).nelem);\n                  prStack_7c = prVar50;\n                  prStack_78 = prVar48;\n                  if (iVar11 != 0) goto LAB_0004d510;\n                }" { (expression_statement "in_stack_ffffff80 = (re_dfa_t *)((int)prVar48->word_char + iVar11 + -0x60);" (assignment_expression "in_stack_ffffff80 = (re_dfa_t *)((int)prVar48->word_char + iVar11 + -0x60)" identifier = (cast_expression "(re_dfa_t *)((int)prVar48->word_char + iVar11 + -0x60)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)prVar48->word_char + iVar11 + -0x60)" ( (binary_expression "(int)prVar48->word_char + iVar11 + -0x60" (binary_expression "(int)prVar48->word_char + iVar11" (cast_expression "(int)prVar48->word_char" ( (type_descriptor "int" primitive_type) ) (field_expression "prVar48->word_char" identifier -> field_identifier)) + identifier) + number_literal) )))) ;) (expression_statement "in_a2 = (re_dfa_t *)&(sctx->limits).elems;" (assignment_expression "in_a2 = (re_dfa_t *)&(sctx->limits).elems" identifier = (cast_expression "(re_dfa_t *)&(sctx->limits).elems" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(sctx->limits).elems" & (field_expression "(sctx->limits).elems" (parenthesized_expression "(sctx->limits)" ( (field_expression "sctx->limits" identifier -> field_identifier) )) . field_identifier)))) ;) (expression_statement "in_a3 = (re_dfa_t *)unaff_s4->nexts[(int)prVar50];" (assignment_expression "in_a3 = (re_dfa_t *)unaff_s4->nexts[(int)prVar50]" identifier = (cast_expression "(re_dfa_t *)unaff_s4->nexts[(int)prVar50]" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "unaff_s4->nexts[(int)prVar50]" (field_expression "unaff_s4->nexts" identifier -> field_identifier) [ (cast_expression "(int)prVar50" ( (type_descriptor "int" primitive_type) ) identifier) ]))) ;) (expression_statement "iVar11 = (*pcVar8)(mctx,&(sctx->limits).nelem);" (assignment_expression "iVar11 = (*pcVar8)(mctx,&(sctx->limits).nelem)" identifier = (call_expression "(*pcVar8)(mctx,&(sctx->limits).nelem)" (parenthesized_expression "(*pcVar8)" ( (pointer_expression "*pcVar8" * identifier) )) (argument_list "(mctx,&(sctx->limits).nelem)" ( identifier , (pointer_expression "&(sctx->limits).nelem" & (field_expression "(sctx->limits).nelem" (parenthesized_expression "(sctx->limits)" ( (field_expression "sctx->limits" identifier -> field_identifier) )) . field_identifier)) )))) ;) (expression_statement "prStack_7c = prVar50;" (assignment_expression "prStack_7c = prVar50" identifier = identifier) ;) (expression_statement "prStack_78 = prVar48;" (assignment_expression "prStack_78 = prVar48" identifier = identifier) ;) (if_statement "if (iVar11 != 0) goto LAB_0004d510;" if (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0004d510;" goto statement_identifier ;)) }))) (expression_statement "prVar46 = prVar50;" (assignment_expression "prVar46 = prVar50" identifier = identifier) ;) (expression_statement "iVar11 = (*pcVar9)((re_dfa_t *)&cur_dest);" (assignment_expression "iVar11 = (*pcVar9)((re_dfa_t *)&cur_dest)" identifier = (call_expression "(*pcVar9)((re_dfa_t *)&cur_dest)" (parenthesized_expression "(*pcVar9)" ( (pointer_expression "*pcVar9" * identifier) )) (argument_list "((re_dfa_t *)&cur_dest)" ( (cast_expression "(re_dfa_t *)&cur_dest" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&cur_dest" & identifier)) )))) ;) (if_statement "if (iVar11 == 0) {\n                  rVar7 = _REG_ESPACE;\n                  goto LAB_0004d62c;\n                }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n                  rVar7 = _REG_ESPACE;\n                  goto LAB_0004d62c;\n                }" { (expression_statement "rVar7 = _REG_ESPACE;" (assignment_expression "rVar7 = _REG_ESPACE" identifier = identifier) ;) (goto_statement "goto LAB_0004d62c;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_0004d510:\n              unaff_s5 = unaff_s5 + 1;" statement_identifier : (expression_statement "unaff_s5 = unaff_s5 + 1;" (assignment_expression "unaff_s5 = unaff_s5 + 1" identifier = (binary_expression "unaff_s5 + 1" identifier + number_literal)) ;)) (expression_statement "in_a3 = (re_dfa_t *)&cur_dest;" (assignment_expression "in_a3 = (re_dfa_t *)&cur_dest" identifier = (cast_expression "(re_dfa_t *)&cur_dest" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&cur_dest" & identifier))) ;) }) while (parenthesized_expression "(unaff_s5 < (unaff_s6->non_eps_nodes).nelem)" ( (binary_expression "unaff_s5 < (unaff_s6->non_eps_nodes).nelem" identifier < (field_expression "(unaff_s6->non_eps_nodes).nelem" (parenthesized_expression "(unaff_s6->non_eps_nodes)" ( (field_expression "unaff_s6->non_eps_nodes" identifier -> field_identifier) )) . field_identifier)) )) ;) })) (expression_statement "prVar46 = (re_dfa_t *)sctx;" (assignment_expression "prVar46 = (re_dfa_t *)sctx" identifier = (cast_expression "(re_dfa_t *)sctx" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "in_a2 = prVar48;" (assignment_expression "in_a2 = prVar48" identifier = identifier) ;) (expression_statement "in_a3 = (re_dfa_t *)&cur_dest;" (assignment_expression "in_a3 = (re_dfa_t *)&cur_dest" identifier = (cast_expression "(re_dfa_t *)&cur_dest" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&cur_dest" & identifier))) ;) (expression_statement "rVar7 = (*pcVar55)(mctx);" (assignment_expression "rVar7 = (*pcVar55)(mctx)" identifier = (call_expression "(*pcVar55)(mctx)" (parenthesized_expression "(*pcVar55)" ( (pointer_expression "*pcVar55" * identifier) )) (argument_list "(mctx)" ( identifier )))) ;) (if_statement "if (rVar7 != _REG_NOERROR) goto LAB_0004d62c;" if (parenthesized_expression "(rVar7 != _REG_NOERROR)" ( (binary_expression "rVar7 != _REG_NOERROR" identifier != identifier) )) (goto_statement "goto LAB_0004d62c;" goto statement_identifier ;)) }) while (parenthesized_expression "(prVar48 != (re_dfa_t *)0x0)" ( (binary_expression "prVar48 != (re_dfa_t *)0x0" identifier != (cast_expression "(re_dfa_t *)0x0" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (expression_statement "rVar7 = _REG_NOERROR;" (assignment_expression "rVar7 = _REG_NOERROR" identifier = identifier) ;) })) (labeled_statement "LAB_0004d62c:\n    (*(code *)PTR_free_00075bfc)(cur_dest.elems);" statement_identifier : (expression_statement "(*(code *)PTR_free_00075bfc)(cur_dest.elems);" (call_expression "(*(code *)PTR_free_00075bfc)(cur_dest.elems)" (parenthesized_expression "(*(code *)PTR_free_00075bfc)" ( (pointer_expression "*(code *)PTR_free_00075bfc" * (cast_expression "(code *)PTR_free_00075bfc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(cur_dest.elems)" ( (field_expression "cur_dest.elems" identifier . field_identifier) ))) ;)) }))) (labeled_statement "LAB_0004d644:\n  if (preg == *(re_match_context_t **)puVar56) {\n    return rVar7;\n  }" statement_identifier : (if_statement "if (preg == *(re_match_context_t **)puVar56) {\n    return rVar7;\n  }" if (parenthesized_expression "(preg == *(re_match_context_t **)puVar56)" ( (binary_expression "preg == *(re_match_context_t **)puVar56" identifier == (pointer_expression "*(re_match_context_t **)puVar56" * (cast_expression "(re_match_context_t **)puVar56" ( (type_descriptor "re_match_context_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return rVar7;\n  }" { (return_statement "return rVar7;" return identifier ;) }))) (expression_statement "pcVar55 = re_search_internal;" (assignment_expression "pcVar55 = re_search_internal" identifier = identifier) ;) (expression_statement "puVar56 = PTR___stack_chk_fail_00075ba8;" (assignment_expression "puVar56 = PTR___stack_chk_fail_00075ba8" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_00075ba8)();" (call_expression "(*(code *)PTR___stack_chk_fail_00075ba8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00075ba8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00075ba8" * (cast_expression "(code *)PTR___stack_chk_fail_00075ba8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "piVar12 = *(int **)(puVar56 + 0x2850c);" (assignment_expression "piVar12 = *(int **)(puVar56 + 0x2850c)" identifier = (pointer_expression "*(int **)(puVar56 + 0x2850c)" * (cast_expression "(int **)(puVar56 + 0x2850c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x2850c)" ( (binary_expression "puVar56 + 0x2850c" identifier + number_literal) ))))) ;) (expression_statement "iStack_bc = *piVar12;" (assignment_expression "iStack_bc = *piVar12" identifier = (pointer_expression "*piVar12" * identifier)) ;) (expression_statement "prVar53 = (re_dfa_t *)(preg->input).raw_mbs;" (assignment_expression "prVar53 = (re_dfa_t *)(preg->input).raw_mbs" identifier = (cast_expression "(re_dfa_t *)(preg->input).raw_mbs" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(preg->input).raw_mbs" (parenthesized_expression "(preg->input)" ( (field_expression "preg->input" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "prStack_b8 = prVar48;" (assignment_expression "prStack_b8 = prVar48" identifier = identifier) ;) (expression_statement "prStack_b4 = sctx;" (assignment_expression "prStack_b4 = sctx" identifier = identifier) ;) (expression_statement "prStack_b0 = mctx;" (assignment_expression "prStack_b0 = mctx" identifier = identifier) ;) (expression_statement "prStack_ac = prVar50;" (assignment_expression "prStack_ac = prVar50" identifier = identifier) ;) (expression_statement "prStack_a8 = unaff_s4;" (assignment_expression "prStack_a8 = unaff_s4" identifier = identifier) ;) (expression_statement "iStack_a4 = unaff_s5;" (assignment_expression "iStack_a4 = unaff_s5" identifier = identifier) ;) (expression_statement "prStack_a0 = unaff_s6;" (assignment_expression "prStack_a0 = unaff_s6" identifier = identifier) ;) (expression_statement "prStack_9c = unaff_s7;" (assignment_expression "prStack_9c = unaff_s7" identifier = identifier) ;) (expression_statement "iStack_98 = unaff_s8;" (assignment_expression "iStack_98 = unaff_s8" identifier = identifier) ;) (expression_statement "pcStack_94 = pcVar55;" (assignment_expression "pcStack_94 = pcVar55" identifier = identifier) ;) (expression_statement "prStack_88 = in_a2;" (assignment_expression "prStack_88 = in_a2" identifier = identifier) ;) (expression_statement "(**(code **)(puVar56 + 0x283f8))((re_match_context_t *)auStack_144,0,0x88);" (call_expression "(**(code **)(puVar56 + 0x283f8))((re_match_context_t *)auStack_144,0,0x88)" (parenthesized_expression "(**(code **)(puVar56 + 0x283f8))" ( (pointer_expression "**(code **)(puVar56 + 0x283f8)" * (pointer_expression "*(code **)(puVar56 + 0x283f8)" * (cast_expression "(code **)(puVar56 + 0x283f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x283f8)" ( (binary_expression "puVar56 + 0x283f8" identifier + number_literal) ))))) )) (argument_list "((re_match_context_t *)auStack_144,0,0x88)" ( (cast_expression "(re_match_context_t *)auStack_144" ( (type_descriptor "re_match_context_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , number_literal , number_literal ))) ;) (expression_statement "pcStack_1e0 = (char *)(preg->input).cur_state.__count;" (assignment_expression "pcStack_1e0 = (char *)(preg->input).cur_state.__count" identifier = (cast_expression "(char *)(preg->input).cur_state.__count" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "(preg->input).cur_state.__count" (field_expression "(preg->input).cur_state" (parenthesized_expression "(preg->input)" ( (field_expression "preg->input" identifier -> field_identifier) )) . field_identifier) . field_identifier))) ;) (if_statement "if (pcStack_1e0 != (char *)0x0) {\n    bVar1 = *(byte *)&(preg->input).valid_len;\n    if (((bVar1 & 0x10) == 0) || (in_a3 == in_stack_ffffff80)) {\n      pcStack_1e0 = (char *)0x0;\n    }\n    else if ((char)bVar1 < '\0') {\n      pcStack_1e0 = (char *)0x0;\n    }\n  }" if (parenthesized_expression "(pcStack_1e0 != (char *)0x0)" ( (binary_expression "pcStack_1e0 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    bVar1 = *(byte *)&(preg->input).valid_len;\n    if (((bVar1 & 0x10) == 0) || (in_a3 == in_stack_ffffff80)) {\n      pcStack_1e0 = (char *)0x0;\n    }\n    else if ((char)bVar1 < '\0') {\n      pcStack_1e0 = (char *)0x0;\n    }\n  }" { (expression_statement "bVar1 = *(byte *)&(preg->input).valid_len;" (assignment_expression "bVar1 = *(byte *)&(preg->input).valid_len" identifier = (pointer_expression "*(byte *)&(preg->input).valid_len" * (cast_expression "(byte *)&(preg->input).valid_len" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(preg->input).valid_len" & (field_expression "(preg->input).valid_len" (parenthesized_expression "(preg->input)" ( (field_expression "preg->input" identifier -> field_identifier) )) . field_identifier))))) ;) (if_statement "if (((bVar1 & 0x10) == 0) || (in_a3 == in_stack_ffffff80)) {\n      pcStack_1e0 = (char *)0x0;\n    }\n    else if ((char)bVar1 < '\0') {\n      pcStack_1e0 = (char *)0x0;\n    }" if (parenthesized_expression "(((bVar1 & 0x10) == 0) || (in_a3 == in_stack_ffffff80))" ( (binary_expression "((bVar1 & 0x10) == 0) || (in_a3 == in_stack_ffffff80)" (parenthesized_expression "((bVar1 & 0x10) == 0)" ( (binary_expression "(bVar1 & 0x10) == 0" (parenthesized_expression "(bVar1 & 0x10)" ( (binary_expression "bVar1 & 0x10" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "(in_a3 == in_stack_ffffff80)" ( (binary_expression "in_a3 == in_stack_ffffff80" identifier == identifier) ))) )) (compound_statement "{\n      pcStack_1e0 = (char *)0x0;\n    }" { (expression_statement "pcStack_1e0 = (char *)0x0;" (assignment_expression "pcStack_1e0 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else if ((char)bVar1 < '\0') {\n      pcStack_1e0 = (char *)0x0;\n    }" else (if_statement "if ((char)bVar1 < '\0') {\n      pcStack_1e0 = (char *)0x0;\n    }" if (parenthesized_expression "((char)bVar1 < '\0')" ( (binary_expression "(char)bVar1 < '\0'" (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      pcStack_1e0 = (char *)0x0;\n    }" { (expression_statement "pcStack_1e0 = (char *)0x0;" (assignment_expression "pcStack_1e0 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })))) })) (expression_statement "prVar48 = (re_dfa_t *)(preg->input).raw_mbs_idx;" (assignment_expression "prVar48 = (re_dfa_t *)(preg->input).raw_mbs_idx" identifier = (cast_expression "(re_dfa_t *)(preg->input).raw_mbs_idx" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(preg->input).raw_mbs_idx" (parenthesized_expression "(preg->input)" ( (field_expression "preg->input" identifier -> field_identifier) )) . field_identifier))) ;) (if_statement "if (prVar48 < prStack_78) {\n    puVar45 = (undefined1 *)((int)&prStack_78[-1].lock + 0x17);\n    iStack_180 = (int)puVar45 - (int)prVar48;\n    prStack_78 = (re_dfa_t *)((int)prStack_78 + ((int)prVar48 - (int)puVar45));\n    pwVar13 = (preg->input).wcs;\n  }\n  else {\n    pwVar13 = (preg->input).wcs;\n    iStack_180 = 0;\n  }" if (parenthesized_expression "(prVar48 < prStack_78)" ( (binary_expression "prVar48 < prStack_78" identifier < identifier) )) (compound_statement "{\n    puVar45 = (undefined1 *)((int)&prStack_78[-1].lock + 0x17);\n    iStack_180 = (int)puVar45 - (int)prVar48;\n    prStack_78 = (re_dfa_t *)((int)prStack_78 + ((int)prVar48 - (int)puVar45));\n    pwVar13 = (preg->input).wcs;\n  }" { (expression_statement "puVar45 = (undefined1 *)((int)&prStack_78[-1].lock + 0x17);" (assignment_expression "puVar45 = (undefined1 *)((int)&prStack_78[-1].lock + 0x17)" identifier = (cast_expression "(undefined1 *)((int)&prStack_78[-1].lock + 0x17)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&prStack_78[-1].lock + 0x17)" ( (binary_expression "(int)&prStack_78[-1].lock + 0x17" (cast_expression "(int)&prStack_78[-1].lock" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prStack_78[-1].lock" & (field_expression "prStack_78[-1].lock" (subscript_expression "prStack_78[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "iStack_180 = (int)puVar45 - (int)prVar48;" (assignment_expression "iStack_180 = (int)puVar45 - (int)prVar48" identifier = (binary_expression "(int)puVar45 - (int)prVar48" (cast_expression "(int)puVar45" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)prVar48" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "prStack_78 = (re_dfa_t *)((int)prStack_78 + ((int)prVar48 - (int)puVar45));" (assignment_expression "prStack_78 = (re_dfa_t *)((int)prStack_78 + ((int)prVar48 - (int)puVar45))" identifier = (cast_expression "(re_dfa_t *)((int)prStack_78 + ((int)prVar48 - (int)puVar45))" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)prStack_78 + ((int)prVar48 - (int)puVar45))" ( (binary_expression "(int)prStack_78 + ((int)prVar48 - (int)puVar45)" (cast_expression "(int)prStack_78" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "((int)prVar48 - (int)puVar45)" ( (binary_expression "(int)prVar48 - (int)puVar45" (cast_expression "(int)prVar48" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar45" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;) (expression_statement "pwVar13 = (preg->input).wcs;" (assignment_expression "pwVar13 = (preg->input).wcs" identifier = (field_expression "(preg->input).wcs" (parenthesized_expression "(preg->input)" ( (field_expression "preg->input" identifier -> field_identifier) )) . field_identifier)) ;) }) (else_clause "else {\n    pwVar13 = (preg->input).wcs;\n    iStack_180 = 0;\n  }" else (compound_statement "{\n    pwVar13 = (preg->input).wcs;\n    iStack_180 = 0;\n  }" { (expression_statement "pwVar13 = (preg->input).wcs;" (assignment_expression "pwVar13 = (preg->input).wcs" identifier = (field_expression "(preg->input).wcs" (parenthesized_expression "(preg->input)" ( (field_expression "preg->input" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "iStack_180 = 0;" (assignment_expression "iStack_180 = 0" identifier = number_literal) ;) }))) (expression_statement "auStack_144._84_4_ = prVar53;" (assignment_expression "auStack_144._84_4_ = prVar53" (field_expression "auStack_144._84_4_" identifier . field_identifier) = identifier) ;) (if_statement "if ((((pwVar13 == (wint_t *)0x0) || (prVar53->init_state == (re_dfastate_t *)0x0)) ||\n      (prVar53->init_state_word == (re_dfastate_t *)0x0)) ||\n     ((prVar53->init_state_nl == (re_dfastate_t *)0x0 ||\n      (prVar53->init_state_begbuf == (re_dfastate_t *)0x0)))) {\nLAB_0004db54:\n    prStack_1e4 = (re_dfastate_t *)0x1;\n    goto LAB_0004db58;\n  }" if (parenthesized_expression "((((pwVar13 == (wint_t *)0x0) || (prVar53->init_state == (re_dfastate_t *)0x0)) ||\n      (prVar53->init_state_word == (re_dfastate_t *)0x0)) ||\n     ((prVar53->init_state_nl == (re_dfastate_t *)0x0 ||\n      (prVar53->init_state_begbuf == (re_dfastate_t *)0x0))))" ( (binary_expression "(((pwVar13 == (wint_t *)0x0) || (prVar53->init_state == (re_dfastate_t *)0x0)) ||\n      (prVar53->init_state_word == (re_dfastate_t *)0x0)) ||\n     ((prVar53->init_state_nl == (re_dfastate_t *)0x0 ||\n      (prVar53->init_state_begbuf == (re_dfastate_t *)0x0)))" (parenthesized_expression "(((pwVar13 == (wint_t *)0x0) || (prVar53->init_state == (re_dfastate_t *)0x0)) ||\n      (prVar53->init_state_word == (re_dfastate_t *)0x0))" ( (binary_expression "((pwVar13 == (wint_t *)0x0) || (prVar53->init_state == (re_dfastate_t *)0x0)) ||\n      (prVar53->init_state_word == (re_dfastate_t *)0x0)" (parenthesized_expression "((pwVar13 == (wint_t *)0x0) || (prVar53->init_state == (re_dfastate_t *)0x0))" ( (binary_expression "(pwVar13 == (wint_t *)0x0) || (prVar53->init_state == (re_dfastate_t *)0x0)" (parenthesized_expression "(pwVar13 == (wint_t *)0x0)" ( (binary_expression "pwVar13 == (wint_t *)0x0" identifier == (cast_expression "(wint_t *)0x0" ( (type_descriptor "wint_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(prVar53->init_state == (re_dfastate_t *)0x0)" ( (binary_expression "prVar53->init_state == (re_dfastate_t *)0x0" (field_expression "prVar53->init_state" identifier -> field_identifier) == (cast_expression "(re_dfastate_t *)0x0" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) || (parenthesized_expression "(prVar53->init_state_word == (re_dfastate_t *)0x0)" ( (binary_expression "prVar53->init_state_word == (re_dfastate_t *)0x0" (field_expression "prVar53->init_state_word" identifier -> field_identifier) == (cast_expression "(re_dfastate_t *)0x0" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) || (parenthesized_expression "((prVar53->init_state_nl == (re_dfastate_t *)0x0 ||\n      (prVar53->init_state_begbuf == (re_dfastate_t *)0x0)))" ( (parenthesized_expression "(prVar53->init_state_nl == (re_dfastate_t *)0x0 ||\n      (prVar53->init_state_begbuf == (re_dfastate_t *)0x0))" ( (binary_expression "prVar53->init_state_nl == (re_dfastate_t *)0x0 ||\n      (prVar53->init_state_begbuf == (re_dfastate_t *)0x0)" (binary_expression "prVar53->init_state_nl == (re_dfastate_t *)0x0" (field_expression "prVar53->init_state_nl" identifier -> field_identifier) == (cast_expression "(re_dfastate_t *)0x0" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) || (parenthesized_expression "(prVar53->init_state_begbuf == (re_dfastate_t *)0x0)" ( (binary_expression "prVar53->init_state_begbuf == (re_dfastate_t *)0x0" (field_expression "prVar53->init_state_begbuf" identifier -> field_identifier) == (cast_expression "(re_dfastate_t *)0x0" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) ))) )) (compound_statement "{\nLAB_0004db54:\n    prStack_1e4 = (re_dfastate_t *)0x1;\n    goto LAB_0004db58;\n  }" { (labeled_statement "LAB_0004db54:\n    prStack_1e4 = (re_dfastate_t *)0x1;" statement_identifier : (expression_statement "prStack_1e4 = (re_dfastate_t *)0x1;" (assignment_expression "prStack_1e4 = (re_dfastate_t *)0x1" identifier = (cast_expression "(re_dfastate_t *)0x1" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (goto_statement "goto LAB_0004db58;" goto statement_identifier ;) })) (if_statement "if ((((prVar53->init_state->nodes).nelem == 0) && ((prVar53->init_state_word->nodes).nelem == 0))\n     && (((prVar53->init_state_nl->nodes).nelem == 0 || (((preg->input).valid_len & 0x1000000) == 0)\n         ))) {\n    if (in_a3 == (re_dfa_t *)0x0) {\n      in_stack_ffffff80 = (re_dfa_t *)0x0;\n    }\n    else {\n      if (in_stack_ffffff80 != (re_dfa_t *)0x0) goto LAB_0004db54;\n      in_a3 = (re_dfa_t *)0x0;\n    }\n  }" if (parenthesized_expression "((((prVar53->init_state->nodes).nelem == 0) && ((prVar53->init_state_word->nodes).nelem == 0))\n     && (((prVar53->init_state_nl->nodes).nelem == 0 || (((preg->input).valid_len & 0x1000000) == 0)\n         )))" ( (binary_expression "(((prVar53->init_state->nodes).nelem == 0) && ((prVar53->init_state_word->nodes).nelem == 0))\n     && (((prVar53->init_state_nl->nodes).nelem == 0 || (((preg->input).valid_len & 0x1000000) == 0)\n         ))" (parenthesized_expression "(((prVar53->init_state->nodes).nelem == 0) && ((prVar53->init_state_word->nodes).nelem == 0))" ( (binary_expression "((prVar53->init_state->nodes).nelem == 0) && ((prVar53->init_state_word->nodes).nelem == 0)" (parenthesized_expression "((prVar53->init_state->nodes).nelem == 0)" ( (binary_expression "(prVar53->init_state->nodes).nelem == 0" (field_expression "(prVar53->init_state->nodes).nelem" (parenthesized_expression "(prVar53->init_state->nodes)" ( (field_expression "prVar53->init_state->nodes" (field_expression "prVar53->init_state" identifier -> field_identifier) -> field_identifier) )) . field_identifier) == number_literal) )) && (parenthesized_expression "((prVar53->init_state_word->nodes).nelem == 0)" ( (binary_expression "(prVar53->init_state_word->nodes).nelem == 0" (field_expression "(prVar53->init_state_word->nodes).nelem" (parenthesized_expression "(prVar53->init_state_word->nodes)" ( (field_expression "prVar53->init_state_word->nodes" (field_expression "prVar53->init_state_word" identifier -> field_identifier) -> field_identifier) )) . field_identifier) == number_literal) ))) )) && (parenthesized_expression "(((prVar53->init_state_nl->nodes).nelem == 0 || (((preg->input).valid_len & 0x1000000) == 0)\n         ))" ( (parenthesized_expression "((prVar53->init_state_nl->nodes).nelem == 0 || (((preg->input).valid_len & 0x1000000) == 0)\n         )" ( (binary_expression "(prVar53->init_state_nl->nodes).nelem == 0 || (((preg->input).valid_len & 0x1000000) == 0)" (binary_expression "(prVar53->init_state_nl->nodes).nelem == 0" (field_expression "(prVar53->init_state_nl->nodes).nelem" (parenthesized_expression "(prVar53->init_state_nl->nodes)" ( (field_expression "prVar53->init_state_nl->nodes" (field_expression "prVar53->init_state_nl" identifier -> field_identifier) -> field_identifier) )) . field_identifier) == number_literal) || (parenthesized_expression "(((preg->input).valid_len & 0x1000000) == 0)" ( (binary_expression "((preg->input).valid_len & 0x1000000) == 0" (parenthesized_expression "((preg->input).valid_len & 0x1000000)" ( (binary_expression "(preg->input).valid_len & 0x1000000" (field_expression "(preg->input).valid_len" (parenthesized_expression "(preg->input)" ( (field_expression "preg->input" identifier -> field_identifier) )) . field_identifier) & number_literal) )) == number_literal) ))) )) ))) )) (compound_statement "{\n    if (in_a3 == (re_dfa_t *)0x0) {\n      in_stack_ffffff80 = (re_dfa_t *)0x0;\n    }\n    else {\n      if (in_stack_ffffff80 != (re_dfa_t *)0x0) goto LAB_0004db54;\n      in_a3 = (re_dfa_t *)0x0;\n    }\n  }" { (if_statement "if (in_a3 == (re_dfa_t *)0x0) {\n      in_stack_ffffff80 = (re_dfa_t *)0x0;\n    }\n    else {\n      if (in_stack_ffffff80 != (re_dfa_t *)0x0) goto LAB_0004db54;\n      in_a3 = (re_dfa_t *)0x0;\n    }" if (parenthesized_expression "(in_a3 == (re_dfa_t *)0x0)" ( (binary_expression "in_a3 == (re_dfa_t *)0x0" identifier == (cast_expression "(re_dfa_t *)0x0" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      in_stack_ffffff80 = (re_dfa_t *)0x0;\n    }" { (expression_statement "in_stack_ffffff80 = (re_dfa_t *)0x0;" (assignment_expression "in_stack_ffffff80 = (re_dfa_t *)0x0" identifier = (cast_expression "(re_dfa_t *)0x0" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n      if (in_stack_ffffff80 != (re_dfa_t *)0x0) goto LAB_0004db54;\n      in_a3 = (re_dfa_t *)0x0;\n    }" else (compound_statement "{\n      if (in_stack_ffffff80 != (re_dfa_t *)0x0) goto LAB_0004db54;\n      in_a3 = (re_dfa_t *)0x0;\n    }" { (if_statement "if (in_stack_ffffff80 != (re_dfa_t *)0x0) goto LAB_0004db54;" if (parenthesized_expression "(in_stack_ffffff80 != (re_dfa_t *)0x0)" ( (binary_expression "in_stack_ffffff80 != (re_dfa_t *)0x0" identifier != (cast_expression "(re_dfa_t *)0x0" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004db54;" goto statement_identifier ;)) (expression_statement "in_a3 = (re_dfa_t *)0x0;" (assignment_expression "in_a3 = (re_dfa_t *)0x0" identifier = (cast_expression "(re_dfa_t *)0x0" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) })) (if_statement "if (prStack_78 == (re_dfa_t *)0x0) {\n    bVar30 = prVar53->nbackref != 0;\n  }\n  else {\n    bVar30 = true;\n  }" if (parenthesized_expression "(prStack_78 == (re_dfa_t *)0x0)" ( (binary_expression "prStack_78 == (re_dfa_t *)0x0" identifier == (cast_expression "(re_dfa_t *)0x0" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    bVar30 = prVar53->nbackref != 0;\n  }" { (expression_statement "bVar30 = prVar53->nbackref != 0;" (assignment_expression "bVar30 = prVar53->nbackref != 0" identifier = (binary_expression "prVar53->nbackref != 0" (field_expression "prVar53->nbackref" identifier -> field_identifier) != number_literal)) ;) }) (else_clause "else {\n    bVar30 = true;\n  }" else (compound_statement "{\n    bVar30 = true;\n  }" { (expression_statement "bVar30 = true;" (assignment_expression "bVar30 = true" identifier = true) ;) }))) (expression_statement "auStack_144._80_4_ = prVar53->mb_cur_max;" (assignment_expression "auStack_144._80_4_ = prVar53->mb_cur_max" (field_expression "auStack_144._80_4_" identifier . field_identifier) = (field_expression "prVar53->mb_cur_max" identifier -> field_identifier)) ;) (expression_statement "puVar45 = (undefined1 *)(prVar53->nodes_len + 1);" (assignment_expression "puVar45 = (undefined1 *)(prVar53->nodes_len + 1)" identifier = (cast_expression "(undefined1 *)(prVar53->nodes_len + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(prVar53->nodes_len + 1)" ( (binary_expression "prVar53->nodes_len + 1" (field_expression "prVar53->nodes_len" identifier -> field_identifier) + number_literal) )))) ;) (expression_statement "puVar47 = (uchar *)(preg->input).cur_state.__value.__wch;" (assignment_expression "puVar47 = (uchar *)(preg->input).cur_state.__value.__wch" identifier = (cast_expression "(uchar *)(preg->input).cur_state.__value.__wch" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(preg->input).cur_state.__value.__wch" (field_expression "(preg->input).cur_state.__value" (field_expression "(preg->input).cur_state" (parenthesized_expression "(preg->input)" ( (field_expression "preg->input" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier))) ;) (if_statement "if ((int)puVar45 < (int)auStack_144._80_4_) {\n    puVar45 = (undefined1 *)auStack_144._80_4_;\n  }" if (parenthesized_expression "((int)puVar45 < (int)auStack_144._80_4_)" ( (binary_expression "(int)puVar45 < (int)auStack_144._80_4_" (cast_expression "(int)puVar45" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)auStack_144._80_4_" ( (type_descriptor "int" primitive_type) ) (field_expression "auStack_144._80_4_" identifier . field_identifier))) )) (compound_statement "{\n    puVar45 = (undefined1 *)auStack_144._80_4_;\n  }" { (expression_statement "puVar45 = (undefined1 *)auStack_144._80_4_;" (assignment_expression "puVar45 = (undefined1 *)auStack_144._80_4_" identifier = (cast_expression "(undefined1 *)auStack_144._80_4_" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStack_144._80_4_" identifier . field_identifier))) ;) })) (expression_statement "new_buf_len = (undefined1 *)((int)&prStack_88->nodes + 1);" (assignment_expression "new_buf_len = (undefined1 *)((int)&prStack_88->nodes + 1)" identifier = (cast_expression "(undefined1 *)((int)&prStack_88->nodes + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&prStack_88->nodes + 1)" ( (binary_expression "(int)&prStack_88->nodes + 1" (cast_expression "(int)&prStack_88->nodes" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prStack_88->nodes" & (field_expression "prStack_88->nodes" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "auStack_144[0x48] = (byte)((uint)((int)(preg->input).offsets << 9) >> 0x1f);" (assignment_expression "auStack_144[0x48] = (byte)((uint)((int)(preg->input).offsets << 9) >> 0x1f)" (subscript_expression "auStack_144[0x48]" identifier [ number_literal ]) = (call_expression "(byte)((uint)((int)(preg->input).offsets << 9) >> 0x1f)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)((int)(preg->input).offsets << 9) >> 0x1f)" ( (binary_expression "(uint)((int)(preg->input).offsets << 9) >> 0x1f" (call_expression "(uint)((int)(preg->input).offsets << 9)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)(preg->input).offsets << 9)" ( (binary_expression "(int)(preg->input).offsets << 9" (cast_expression "(int)(preg->input).offsets" ( (type_descriptor "int" primitive_type) ) (field_expression "(preg->input).offsets" (parenthesized_expression "(preg->input)" ( (field_expression "preg->input" identifier -> field_identifier) )) . field_identifier)) << number_literal) ))) >> number_literal) )))) ;) (expression_statement "auStack_144[0x4b] = 1;" (assignment_expression "auStack_144[0x4b] = 1" (subscript_expression "auStack_144[0x4b]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (puVar47 == (uchar *)0x0) {\n    auStack_144[0x4b] = auStack_144[0x48];\n  }" if (parenthesized_expression "(puVar47 == (uchar *)0x0)" ( (binary_expression "puVar47 == (uchar *)0x0" identifier == (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    auStack_144[0x4b] = auStack_144[0x48];\n  }" { (expression_statement "auStack_144[0x4b] = auStack_144[0x48];" (assignment_expression "auStack_144[0x4b] = auStack_144[0x48]" (subscript_expression "auStack_144[0x4b]" identifier [ number_literal ]) = (subscript_expression "auStack_144[0x48]" identifier [ number_literal ])) ;) })) (if_statement "if ((int)puVar45 <= (int)new_buf_len) {\n    new_buf_len = puVar45;\n  }" if (parenthesized_expression "((int)puVar45 <= (int)new_buf_len)" ( (binary_expression "(int)puVar45 <= (int)new_buf_len" (cast_expression "(int)puVar45" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)new_buf_len" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    new_buf_len = puVar45;\n  }" { (expression_statement "new_buf_len = puVar45;" (assignment_expression "new_buf_len = puVar45" identifier = identifier) ;) })) (expression_statement "auStack_144[0x49] = (byte)((uint)(*(int *)&prVar53->field_0x58 << 2) >> 0x1f);" (assignment_expression "auStack_144[0x49] = (byte)((uint)(*(int *)&prVar53->field_0x58 << 2) >> 0x1f)" (subscript_expression "auStack_144[0x49]" identifier [ number_literal ]) = (call_expression "(byte)((uint)(*(int *)&prVar53->field_0x58 << 2) >> 0x1f)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)(*(int *)&prVar53->field_0x58 << 2) >> 0x1f)" ( (binary_expression "(uint)(*(int *)&prVar53->field_0x58 << 2) >> 0x1f" (call_expression "(uint)(*(int *)&prVar53->field_0x58 << 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)&prVar53->field_0x58 << 2)" ( (binary_expression "*(int *)&prVar53->field_0x58 << 2" (pointer_expression "*(int *)&prVar53->field_0x58" * (cast_expression "(int *)&prVar53->field_0x58" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&prVar53->field_0x58" & (field_expression "prVar53->field_0x58" identifier -> field_identifier)))) << number_literal) ))) >> number_literal) )))) ;) (expression_statement "auStack_144[0x4a] = (byte)((uint)(*(int *)&prVar53->field_0x58 << 3) >> 0x1f);" (assignment_expression "auStack_144[0x4a] = (byte)((uint)(*(int *)&prVar53->field_0x58 << 3) >> 0x1f)" (subscript_expression "auStack_144[0x4a]" identifier [ number_literal ]) = (call_expression "(byte)((uint)(*(int *)&prVar53->field_0x58 << 3) >> 0x1f)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)(*(int *)&prVar53->field_0x58 << 3) >> 0x1f)" ( (binary_expression "(uint)(*(int *)&prVar53->field_0x58 << 3) >> 0x1f" (call_expression "(uint)(*(int *)&prVar53->field_0x58 << 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)&prVar53->field_0x58 << 3)" ( (binary_expression "*(int *)&prVar53->field_0x58 << 3" (pointer_expression "*(int *)&prVar53->field_0x58" * (cast_expression "(int *)&prVar53->field_0x58" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&prVar53->field_0x58" & (field_expression "prVar53->field_0x58" identifier -> field_identifier)))) << number_literal) ))) >> number_literal) )))) ;) (expression_statement "auStack_144._48_4_ = prStack_88;" (assignment_expression "auStack_144._48_4_ = prStack_88" (field_expression "auStack_144._48_4_" identifier . field_identifier) = identifier) ;) (expression_statement "auStack_144._44_4_ = prStack_88;" (assignment_expression "auStack_144._44_4_ = prStack_88" (field_expression "auStack_144._44_4_" identifier . field_identifier) = identifier) ;) (expression_statement "auStack_144._56_4_ = prStack_88;" (assignment_expression "auStack_144._56_4_ = prStack_88" (field_expression "auStack_144._56_4_" identifier . field_identifier) = identifier) ;) (expression_statement "auStack_144._52_4_ = prStack_88;" (assignment_expression "auStack_144._52_4_ = prStack_88" (field_expression "auStack_144._52_4_" identifier . field_identifier) = identifier) ;) (expression_statement "auStack_144._0_4_ = prVar46;" (assignment_expression "auStack_144._0_4_ = prVar46" (field_expression "auStack_144._0_4_" identifier . field_identifier) = identifier) ;) (expression_statement "auStack_144._64_4_ = puVar47;" (assignment_expression "auStack_144._64_4_ = puVar47" (field_expression "auStack_144._64_4_" identifier . field_identifier) = identifier) ;) (expression_statement "prStack_1e4 = (re_dfastate_t *)\n                re_string_realloc_buffers((re_string_t *)auStack_144,(Idx)new_buf_len);" (assignment_expression "prStack_1e4 = (re_dfastate_t *)\n                re_string_realloc_buffers((re_string_t *)auStack_144,(Idx)new_buf_len)" identifier = (cast_expression "(re_dfastate_t *)\n                re_string_realloc_buffers((re_string_t *)auStack_144,(Idx)new_buf_len)" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "re_string_realloc_buffers((re_string_t *)auStack_144,(Idx)new_buf_len)" identifier (argument_list "((re_string_t *)auStack_144,(Idx)new_buf_len)" ( (cast_expression "(re_string_t *)auStack_144" ( (type_descriptor "re_string_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(Idx)new_buf_len" ( (type_descriptor "Idx" type_identifier) ) identifier) ))))) ;) (expression_statement "pprVar22 = (re_dfastate_t **)auStack_144._100_4_;" (assignment_expression "pprVar22 = (re_dfastate_t **)auStack_144._100_4_" identifier = (cast_expression "(re_dfastate_t **)auStack_144._100_4_" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (field_expression "auStack_144._100_4_" identifier . field_identifier))) ;) (if_statement "if (prStack_1e4 != (re_dfastate_t *)0x0) {\nLAB_0004dbbc:\n    while( true ) {\n      pcVar55 = *(code **)(puVar56 + 0x28520);\nLAB_0004dbc0:\n      (*pcVar55)(pprVar22);\n      if (prVar53->nbackref != 0) {\nLAB_0004dc14:\n        match_ctx_clean((re_match_context_t *)auStack_144);\n        (**(code **)(puVar56 + 0x28520))(pprStack_c0);\n        (**(code **)(puVar56 + 0x28520))(auStack_144._116_4_);\n      }\nLAB_0004dbd4:\n      re_string_destruct((re_string_t *)auStack_144);\nLAB_0004db58:\n      if (iStack_bc == *piVar12) break;\n      prStack_1e4 = (re_dfastate_t *)(**(code **)(puVar56 + 0x284cc))();\n      pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n    }\n    return (reg_errcode_t)prStack_1e4;\n  }" if (parenthesized_expression "(prStack_1e4 != (re_dfastate_t *)0x0)" ( (binary_expression "prStack_1e4 != (re_dfastate_t *)0x0" identifier != (cast_expression "(re_dfastate_t *)0x0" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0004dbbc:\n    while( true ) {\n      pcVar55 = *(code **)(puVar56 + 0x28520);\nLAB_0004dbc0:\n      (*pcVar55)(pprVar22);\n      if (prVar53->nbackref != 0) {\nLAB_0004dc14:\n        match_ctx_clean((re_match_context_t *)auStack_144);\n        (**(code **)(puVar56 + 0x28520))(pprStack_c0);\n        (**(code **)(puVar56 + 0x28520))(auStack_144._116_4_);\n      }\nLAB_0004dbd4:\n      re_string_destruct((re_string_t *)auStack_144);\nLAB_0004db58:\n      if (iStack_bc == *piVar12) break;\n      prStack_1e4 = (re_dfastate_t *)(**(code **)(puVar56 + 0x284cc))();\n      pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n    }\n    return (reg_errcode_t)prStack_1e4;\n  }" { (labeled_statement "LAB_0004dbbc:\n    while( true ) {\n      pcVar55 = *(code **)(puVar56 + 0x28520);\nLAB_0004dbc0:\n      (*pcVar55)(pprVar22);\n      if (prVar53->nbackref != 0) {\nLAB_0004dc14:\n        match_ctx_clean((re_match_context_t *)auStack_144);\n        (**(code **)(puVar56 + 0x28520))(pprStack_c0);\n        (**(code **)(puVar56 + 0x28520))(auStack_144._116_4_);\n      }\nLAB_0004dbd4:\n      re_string_destruct((re_string_t *)auStack_144);\nLAB_0004db58:\n      if (iStack_bc == *piVar12) break;\n      prStack_1e4 = (re_dfastate_t *)(**(code **)(puVar56 + 0x284cc))();\n      pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n    }" statement_identifier : (while_statement "while( true ) {\n      pcVar55 = *(code **)(puVar56 + 0x28520);\nLAB_0004dbc0:\n      (*pcVar55)(pprVar22);\n      if (prVar53->nbackref != 0) {\nLAB_0004dc14:\n        match_ctx_clean((re_match_context_t *)auStack_144);\n        (**(code **)(puVar56 + 0x28520))(pprStack_c0);\n        (**(code **)(puVar56 + 0x28520))(auStack_144._116_4_);\n      }\nLAB_0004dbd4:\n      re_string_destruct((re_string_t *)auStack_144);\nLAB_0004db58:\n      if (iStack_bc == *piVar12) break;\n      prStack_1e4 = (re_dfastate_t *)(**(code **)(puVar56 + 0x284cc))();\n      pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      pcVar55 = *(code **)(puVar56 + 0x28520);\nLAB_0004dbc0:\n      (*pcVar55)(pprVar22);\n      if (prVar53->nbackref != 0) {\nLAB_0004dc14:\n        match_ctx_clean((re_match_context_t *)auStack_144);\n        (**(code **)(puVar56 + 0x28520))(pprStack_c0);\n        (**(code **)(puVar56 + 0x28520))(auStack_144._116_4_);\n      }\nLAB_0004dbd4:\n      re_string_destruct((re_string_t *)auStack_144);\nLAB_0004db58:\n      if (iStack_bc == *piVar12) break;\n      prStack_1e4 = (re_dfastate_t *)(**(code **)(puVar56 + 0x284cc))();\n      pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n    }" { (expression_statement "pcVar55 = *(code **)(puVar56 + 0x28520);" (assignment_expression "pcVar55 = *(code **)(puVar56 + 0x28520)" identifier = (pointer_expression "*(code **)(puVar56 + 0x28520)" * (cast_expression "(code **)(puVar56 + 0x28520)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x28520)" ( (binary_expression "puVar56 + 0x28520" identifier + number_literal) ))))) ;) (labeled_statement "LAB_0004dbc0:\n      (*pcVar55)(pprVar22);" statement_identifier : (expression_statement "(*pcVar55)(pprVar22);" (call_expression "(*pcVar55)(pprVar22)" (parenthesized_expression "(*pcVar55)" ( (pointer_expression "*pcVar55" * identifier) )) (argument_list "(pprVar22)" ( identifier ))) ;)) (if_statement "if (prVar53->nbackref != 0) {\nLAB_0004dc14:\n        match_ctx_clean((re_match_context_t *)auStack_144);\n        (**(code **)(puVar56 + 0x28520))(pprStack_c0);\n        (**(code **)(puVar56 + 0x28520))(auStack_144._116_4_);\n      }" if (parenthesized_expression "(prVar53->nbackref != 0)" ( (binary_expression "prVar53->nbackref != 0" (field_expression "prVar53->nbackref" identifier -> field_identifier) != number_literal) )) (compound_statement "{\nLAB_0004dc14:\n        match_ctx_clean((re_match_context_t *)auStack_144);\n        (**(code **)(puVar56 + 0x28520))(pprStack_c0);\n        (**(code **)(puVar56 + 0x28520))(auStack_144._116_4_);\n      }" { (labeled_statement "LAB_0004dc14:\n        match_ctx_clean((re_match_context_t *)auStack_144);" statement_identifier : (expression_statement "match_ctx_clean((re_match_context_t *)auStack_144);" (call_expression "match_ctx_clean((re_match_context_t *)auStack_144)" identifier (argument_list "((re_match_context_t *)auStack_144)" ( (cast_expression "(re_match_context_t *)auStack_144" ( (type_descriptor "re_match_context_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;)) (expression_statement "(**(code **)(puVar56 + 0x28520))(pprStack_c0);" (call_expression "(**(code **)(puVar56 + 0x28520))(pprStack_c0)" (parenthesized_expression "(**(code **)(puVar56 + 0x28520))" ( (pointer_expression "**(code **)(puVar56 + 0x28520)" * (pointer_expression "*(code **)(puVar56 + 0x28520)" * (cast_expression "(code **)(puVar56 + 0x28520)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x28520)" ( (binary_expression "puVar56 + 0x28520" identifier + number_literal) ))))) )) (argument_list "(pprStack_c0)" ( identifier ))) ;) (expression_statement "(**(code **)(puVar56 + 0x28520))(auStack_144._116_4_);" (call_expression "(**(code **)(puVar56 + 0x28520))(auStack_144._116_4_)" (parenthesized_expression "(**(code **)(puVar56 + 0x28520))" ( (pointer_expression "**(code **)(puVar56 + 0x28520)" * (pointer_expression "*(code **)(puVar56 + 0x28520)" * (cast_expression "(code **)(puVar56 + 0x28520)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x28520)" ( (binary_expression "puVar56 + 0x28520" identifier + number_literal) ))))) )) (argument_list "(auStack_144._116_4_)" ( (field_expression "auStack_144._116_4_" identifier . field_identifier) ))) ;) })) (labeled_statement "LAB_0004dbd4:\n      re_string_destruct((re_string_t *)auStack_144);" statement_identifier : (expression_statement "re_string_destruct((re_string_t *)auStack_144);" (call_expression "re_string_destruct((re_string_t *)auStack_144)" identifier (argument_list "((re_string_t *)auStack_144)" ( (cast_expression "(re_string_t *)auStack_144" ( (type_descriptor "re_string_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;)) (labeled_statement "LAB_0004db58:\n      if (iStack_bc == *piVar12) break;" statement_identifier : (if_statement "if (iStack_bc == *piVar12) break;" if (parenthesized_expression "(iStack_bc == *piVar12)" ( (binary_expression "iStack_bc == *piVar12" identifier == (pointer_expression "*piVar12" * identifier)) )) (break_statement "break;" break ;))) (expression_statement "prStack_1e4 = (re_dfastate_t *)(**(code **)(puVar56 + 0x284cc))();" (assignment_expression "prStack_1e4 = (re_dfastate_t *)(**(code **)(puVar56 + 0x284cc))()" identifier = (cast_expression "(re_dfastate_t *)(**(code **)(puVar56 + 0x284cc))()" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar56 + 0x284cc))()" (parenthesized_expression "(**(code **)(puVar56 + 0x284cc))" ( (pointer_expression "**(code **)(puVar56 + 0x284cc)" * (pointer_expression "*(code **)(puVar56 + 0x284cc)" * (cast_expression "(code **)(puVar56 + 0x284cc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x284cc)" ( (binary_expression "puVar56 + 0x284cc" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "pprVar22 = (re_dfastate_t **)auStack_144._100_4_;" (assignment_expression "pprVar22 = (re_dfastate_t **)auStack_144._100_4_" identifier = (cast_expression "(re_dfastate_t **)auStack_144._100_4_" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (field_expression "auStack_144._100_4_" identifier . field_identifier))) ;) }))) (return_statement "return (reg_errcode_t)prStack_1e4;" return (cast_expression "(reg_errcode_t)prStack_1e4" ( (type_descriptor "reg_errcode_t" type_identifier) ) identifier) ;) })) (expression_statement "auStack_144._68_4_ = prVar53->word_char;" (assignment_expression "auStack_144._68_4_ = prVar53->word_char" (field_expression "auStack_144._68_4_" identifier . field_identifier) = (field_expression "prVar53->word_char" identifier -> field_identifier)) ;) (expression_statement "auStack_144[0x4e] = (byte)((uint)(*(int *)&prVar53->field_0x58 << 4) >> 0x1f);" (assignment_expression "auStack_144[0x4e] = (byte)((uint)(*(int *)&prVar53->field_0x58 << 4) >> 0x1f)" (subscript_expression "auStack_144[0x4e]" identifier [ number_literal ]) = (call_expression "(byte)((uint)(*(int *)&prVar53->field_0x58 << 4) >> 0x1f)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)(*(int *)&prVar53->field_0x58 << 4) >> 0x1f)" ( (binary_expression "(uint)(*(int *)&prVar53->field_0x58 << 4) >> 0x1f" (call_expression "(uint)(*(int *)&prVar53->field_0x58 << 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)&prVar53->field_0x58 << 4)" ( (binary_expression "*(int *)&prVar53->field_0x58 << 4" (pointer_expression "*(int *)&prVar53->field_0x58" * (cast_expression "(int *)&prVar53->field_0x58" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&prVar53->field_0x58" & (field_expression "prVar53->field_0x58" identifier -> field_identifier)))) << number_literal) ))) >> number_literal) )))) ;) (if_statement "if ((auStack_144[0x4b] != 0) ||\n     (auStack_144._4_4_ = prVar46, auStack_144._28_4_ = prStack_88, 1 < prVar53->mb_cur_max)) {\n    auStack_144._28_4_ = (re_dfa_t *)0x0;\n  }" if (parenthesized_expression "((auStack_144[0x4b] != 0) ||\n     (auStack_144._4_4_ = prVar46, auStack_144._28_4_ = prStack_88, 1 < prVar53->mb_cur_max))" ( (binary_expression "(auStack_144[0x4b] != 0) ||\n     (auStack_144._4_4_ = prVar46, auStack_144._28_4_ = prStack_88, 1 < prVar53->mb_cur_max)" (parenthesized_expression "(auStack_144[0x4b] != 0)" ( (binary_expression "auStack_144[0x4b] != 0" (subscript_expression "auStack_144[0x4b]" identifier [ number_literal ]) != number_literal) )) || (parenthesized_expression "(auStack_144._4_4_ = prVar46, auStack_144._28_4_ = prStack_88, 1 < prVar53->mb_cur_max)" ( (comma_expression "auStack_144._4_4_ = prVar46, auStack_144._28_4_ = prStack_88, 1 < prVar53->mb_cur_max" (assignment_expression "auStack_144._4_4_ = prVar46" (field_expression "auStack_144._4_4_" identifier . field_identifier) = identifier) , (comma_expression "auStack_144._28_4_ = prStack_88, 1 < prVar53->mb_cur_max" (assignment_expression "auStack_144._28_4_ = prStack_88" (field_expression "auStack_144._28_4_" identifier . field_identifier) = identifier) , (binary_expression "1 < prVar53->mb_cur_max" number_literal < (field_expression "prVar53->mb_cur_max" identifier -> field_identifier)))) ))) )) (compound_statement "{\n    auStack_144._28_4_ = (re_dfa_t *)0x0;\n  }" { (expression_statement "auStack_144._28_4_ = (re_dfa_t *)0x0;" (assignment_expression "auStack_144._28_4_ = (re_dfa_t *)0x0" (field_expression "auStack_144._28_4_" identifier . field_identifier) = (cast_expression "(re_dfa_t *)0x0" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "auStack_144._56_4_ = prStack_7c;" (assignment_expression "auStack_144._56_4_ = prStack_7c" (field_expression "auStack_144._56_4_" identifier . field_identifier) = identifier) ;) (expression_statement "auStack_144._52_4_ = prStack_7c;" (assignment_expression "auStack_144._52_4_ = prStack_7c" (field_expression "auStack_144._52_4_" identifier . field_identifier) = identifier) ;) (expression_statement "auStack_144._32_4_ = auStack_144._28_4_;" (assignment_expression "auStack_144._32_4_ = auStack_144._28_4_" (field_expression "auStack_144._32_4_" identifier . field_identifier) = (field_expression "auStack_144._28_4_" identifier . field_identifier)) ;) (expression_statement "auStack_144[0x4d] = (byte)((uint)((preg->input).valid_len << 7) >> 0x1f);" (assignment_expression "auStack_144[0x4d] = (byte)((uint)((preg->input).valid_len << 7) >> 0x1f)" (subscript_expression "auStack_144[0x4d]" identifier [ number_literal ]) = (call_expression "(byte)((uint)((preg->input).valid_len << 7) >> 0x1f)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)((preg->input).valid_len << 7) >> 0x1f)" ( (binary_expression "(uint)((preg->input).valid_len << 7) >> 0x1f" (call_expression "(uint)((preg->input).valid_len << 7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((preg->input).valid_len << 7)" ( (binary_expression "(preg->input).valid_len << 7" (field_expression "(preg->input).valid_len" (parenthesized_expression "(preg->input)" ( (field_expression "preg->input" identifier -> field_identifier) )) . field_identifier) << number_literal) ))) >> number_literal) )))) ;) (expression_statement "iVar11 = prVar53->nbackref;" (assignment_expression "iVar11 = prVar53->nbackref" identifier = (field_expression "prVar53->nbackref" identifier -> field_identifier)) ;) (expression_statement "iVar31 = iVar11 * 2;" (assignment_expression "iVar31 = iVar11 * 2" identifier = (binary_expression "iVar11 * 2" identifier * number_literal)) ;) (expression_statement "auStack_144._88_4_ = &_gp;" (assignment_expression "auStack_144._88_4_ = &_gp" (field_expression "auStack_144._88_4_" identifier . field_identifier) = (pointer_expression "&_gp" & identifier)) ;) (expression_statement "auStack_144._92_4_ = (re_dfastate_t *)0xffffffff;" (assignment_expression "auStack_144._92_4_ = (re_dfastate_t *)0xffffffff" (field_expression "auStack_144._92_4_" identifier . field_identifier) = (cast_expression "(re_dfastate_t *)0xffffffff" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (0 < iVar31) {\n    if (0xccccccc < iVar31) goto LAB_0004dbf8;\n    prVar14 = (re_backref_cache_entry *)(**(code **)(puVar56 + 0x28450))(iVar11 * 0x28);\n    auStack_144._116_4_ = prVar14;\n    pprStack_c0 = (re_sub_match_top_t **)(**(code **)(puVar56 + 0x28450))(iVar11 * 8);\n    if ((prVar14 == (re_backref_cache_entry *)0x0) || (pprStack_c0 == (re_sub_match_top_t **)0x0))\n    goto LAB_0004dbf8;\n  }" if (parenthesized_expression "(0 < iVar31)" ( (binary_expression "0 < iVar31" number_literal < identifier) )) (compound_statement "{\n    if (0xccccccc < iVar31) goto LAB_0004dbf8;\n    prVar14 = (re_backref_cache_entry *)(**(code **)(puVar56 + 0x28450))(iVar11 * 0x28);\n    auStack_144._116_4_ = prVar14;\n    pprStack_c0 = (re_sub_match_top_t **)(**(code **)(puVar56 + 0x28450))(iVar11 * 8);\n    if ((prVar14 == (re_backref_cache_entry *)0x0) || (pprStack_c0 == (re_sub_match_top_t **)0x0))\n    goto LAB_0004dbf8;\n  }" { (if_statement "if (0xccccccc < iVar31) goto LAB_0004dbf8;" if (parenthesized_expression "(0xccccccc < iVar31)" ( (binary_expression "0xccccccc < iVar31" number_literal < identifier) )) (goto_statement "goto LAB_0004dbf8;" goto statement_identifier ;)) (expression_statement "prVar14 = (re_backref_cache_entry *)(**(code **)(puVar56 + 0x28450))(iVar11 * 0x28);" (assignment_expression "prVar14 = (re_backref_cache_entry *)(**(code **)(puVar56 + 0x28450))(iVar11 * 0x28)" identifier = (cast_expression "(re_backref_cache_entry *)(**(code **)(puVar56 + 0x28450))(iVar11 * 0x28)" ( (type_descriptor "re_backref_cache_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar56 + 0x28450))(iVar11 * 0x28)" (parenthesized_expression "(**(code **)(puVar56 + 0x28450))" ( (pointer_expression "**(code **)(puVar56 + 0x28450)" * (pointer_expression "*(code **)(puVar56 + 0x28450)" * (cast_expression "(code **)(puVar56 + 0x28450)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x28450)" ( (binary_expression "puVar56 + 0x28450" identifier + number_literal) ))))) )) (argument_list "(iVar11 * 0x28)" ( (binary_expression "iVar11 * 0x28" identifier * number_literal) ))))) ;) (expression_statement "auStack_144._116_4_ = prVar14;" (assignment_expression "auStack_144._116_4_ = prVar14" (field_expression "auStack_144._116_4_" identifier . field_identifier) = identifier) ;) (expression_statement "pprStack_c0 = (re_sub_match_top_t **)(**(code **)(puVar56 + 0x28450))(iVar11 * 8);" (assignment_expression "pprStack_c0 = (re_sub_match_top_t **)(**(code **)(puVar56 + 0x28450))(iVar11 * 8)" identifier = (cast_expression "(re_sub_match_top_t **)(**(code **)(puVar56 + 0x28450))(iVar11 * 8)" ( (type_descriptor "re_sub_match_top_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "(**(code **)(puVar56 + 0x28450))(iVar11 * 8)" (parenthesized_expression "(**(code **)(puVar56 + 0x28450))" ( (pointer_expression "**(code **)(puVar56 + 0x28450)" * (pointer_expression "*(code **)(puVar56 + 0x28450)" * (cast_expression "(code **)(puVar56 + 0x28450)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x28450)" ( (binary_expression "puVar56 + 0x28450" identifier + number_literal) ))))) )) (argument_list "(iVar11 * 8)" ( (binary_expression "iVar11 * 8" identifier * number_literal) ))))) ;) (if_statement "if ((prVar14 == (re_backref_cache_entry *)0x0) || (pprStack_c0 == (re_sub_match_top_t **)0x0))\n    goto LAB_0004dbf8;" if (parenthesized_expression "((prVar14 == (re_backref_cache_entry *)0x0) || (pprStack_c0 == (re_sub_match_top_t **)0x0))" ( (binary_expression "(prVar14 == (re_backref_cache_entry *)0x0) || (pprStack_c0 == (re_sub_match_top_t **)0x0)" (parenthesized_expression "(prVar14 == (re_backref_cache_entry *)0x0)" ( (binary_expression "prVar14 == (re_backref_cache_entry *)0x0" identifier == (cast_expression "(re_backref_cache_entry *)0x0" ( (type_descriptor "re_backref_cache_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(pprStack_c0 == (re_sub_match_top_t **)0x0)" ( (binary_expression "pprStack_c0 == (re_sub_match_top_t **)0x0" identifier == (cast_expression "(re_sub_match_top_t **)0x0" ( (type_descriptor "re_sub_match_top_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ))) )) (goto_statement "goto LAB_0004dbf8;" goto statement_identifier ;)) })) (expression_statement "auStack_144._112_4_ = iVar31;" (assignment_expression "auStack_144._112_4_ = iVar31" (field_expression "auStack_144._112_4_" identifier . field_identifier) = identifier) ;) (expression_statement "iStack_c4 = iVar31;" (assignment_expression "iStack_c4 = iVar31" identifier = identifier) ;) (expression_statement "bVar2 = (re_dfa_t *)0x1 < prStack_78;" (assignment_expression "bVar2 = (re_dfa_t *)0x1 < prStack_78" identifier = (binary_expression "(re_dfa_t *)0x1 < prStack_78" (cast_expression "(re_dfa_t *)0x1" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < identifier)) ;) (expression_statement "auStack_144._120_4_ = (anon_union_4_2_9a799d16_for___pthread_mutex_s_5)0x1;" (assignment_expression "auStack_144._120_4_ = (anon_union_4_2_9a799d16_for___pthread_mutex_s_5)0x1" (field_expression "auStack_144._120_4_" identifier . field_identifier) = (cast_expression "(anon_union_4_2_9a799d16_for___pthread_mutex_s_5)0x1" ( (type_descriptor "anon_union_4_2_9a799d16_for___pthread_mutex_s_5" type_identifier) ) number_literal)) ;) (if_statement "if ((bVar2) || ((prVar53->field_0x58 & 0x40) != 0)) {\n    if (0x3ffffffe < (uint)auStack_144._36_4_) {\nLAB_0004dbf8:\n      prStack_1e4 = (re_dfastate_t *)0xc;\n      (**(code **)(puVar56 + 0x28520))(auStack_144._100_4_);\n      if (prVar53->nbackref == 0) goto LAB_0004dbd4;\n      goto LAB_0004dc14;\n    }\n    auStack_144._100_4_ = (**(code **)(puVar56 + 0x28450))((auStack_144._36_4_ + 1) * 4);\n    pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n    if ((re_dfastate_t **)auStack_144._100_4_ == (re_dfastate_t **)0x0) {\nLAB_0004dbb4:\n      prStack_1e4 = (re_dfastate_t *)0xc;\n      goto LAB_0004dbbc;\n    }\n  }\n  else {\n    auStack_144._100_4_ = (re_dfastate_t **)0x0;\n  }" if (parenthesized_expression "((bVar2) || ((prVar53->field_0x58 & 0x40) != 0))" ( (binary_expression "(bVar2) || ((prVar53->field_0x58 & 0x40) != 0)" (parenthesized_expression "(bVar2)" ( identifier )) || (parenthesized_expression "((prVar53->field_0x58 & 0x40) != 0)" ( (binary_expression "(prVar53->field_0x58 & 0x40) != 0" (parenthesized_expression "(prVar53->field_0x58 & 0x40)" ( (binary_expression "prVar53->field_0x58 & 0x40" (field_expression "prVar53->field_0x58" identifier -> field_identifier) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n    if (0x3ffffffe < (uint)auStack_144._36_4_) {\nLAB_0004dbf8:\n      prStack_1e4 = (re_dfastate_t *)0xc;\n      (**(code **)(puVar56 + 0x28520))(auStack_144._100_4_);\n      if (prVar53->nbackref == 0) goto LAB_0004dbd4;\n      goto LAB_0004dc14;\n    }\n    auStack_144._100_4_ = (**(code **)(puVar56 + 0x28450))((auStack_144._36_4_ + 1) * 4);\n    pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n    if ((re_dfastate_t **)auStack_144._100_4_ == (re_dfastate_t **)0x0) {\nLAB_0004dbb4:\n      prStack_1e4 = (re_dfastate_t *)0xc;\n      goto LAB_0004dbbc;\n    }\n  }" { (if_statement "if (0x3ffffffe < (uint)auStack_144._36_4_) {\nLAB_0004dbf8:\n      prStack_1e4 = (re_dfastate_t *)0xc;\n      (**(code **)(puVar56 + 0x28520))(auStack_144._100_4_);\n      if (prVar53->nbackref == 0) goto LAB_0004dbd4;\n      goto LAB_0004dc14;\n    }" if (parenthesized_expression "(0x3ffffffe < (uint)auStack_144._36_4_)" ( (binary_expression "0x3ffffffe < (uint)auStack_144._36_4_" number_literal < (cast_expression "(uint)auStack_144._36_4_" ( (type_descriptor "uint" type_identifier) ) (field_expression "auStack_144._36_4_" identifier . field_identifier))) )) (compound_statement "{\nLAB_0004dbf8:\n      prStack_1e4 = (re_dfastate_t *)0xc;\n      (**(code **)(puVar56 + 0x28520))(auStack_144._100_4_);\n      if (prVar53->nbackref == 0) goto LAB_0004dbd4;\n      goto LAB_0004dc14;\n    }" { (labeled_statement "LAB_0004dbf8:\n      prStack_1e4 = (re_dfastate_t *)0xc;" statement_identifier : (expression_statement "prStack_1e4 = (re_dfastate_t *)0xc;" (assignment_expression "prStack_1e4 = (re_dfastate_t *)0xc" identifier = (cast_expression "(re_dfastate_t *)0xc" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "(**(code **)(puVar56 + 0x28520))(auStack_144._100_4_);" (call_expression "(**(code **)(puVar56 + 0x28520))(auStack_144._100_4_)" (parenthesized_expression "(**(code **)(puVar56 + 0x28520))" ( (pointer_expression "**(code **)(puVar56 + 0x28520)" * (pointer_expression "*(code **)(puVar56 + 0x28520)" * (cast_expression "(code **)(puVar56 + 0x28520)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x28520)" ( (binary_expression "puVar56 + 0x28520" identifier + number_literal) ))))) )) (argument_list "(auStack_144._100_4_)" ( (field_expression "auStack_144._100_4_" identifier . field_identifier) ))) ;) (if_statement "if (prVar53->nbackref == 0) goto LAB_0004dbd4;" if (parenthesized_expression "(prVar53->nbackref == 0)" ( (binary_expression "prVar53->nbackref == 0" (field_expression "prVar53->nbackref" identifier -> field_identifier) == number_literal) )) (goto_statement "goto LAB_0004dbd4;" goto statement_identifier ;)) (goto_statement "goto LAB_0004dc14;" goto statement_identifier ;) })) (expression_statement "auStack_144._100_4_ = (**(code **)(puVar56 + 0x28450))((auStack_144._36_4_ + 1) * 4);" (assignment_expression "auStack_144._100_4_ = (**(code **)(puVar56 + 0x28450))((auStack_144._36_4_ + 1) * 4)" (field_expression "auStack_144._100_4_" identifier . field_identifier) = (call_expression "(**(code **)(puVar56 + 0x28450))((auStack_144._36_4_ + 1) * 4)" (parenthesized_expression "(**(code **)(puVar56 + 0x28450))" ( (pointer_expression "**(code **)(puVar56 + 0x28450)" * (pointer_expression "*(code **)(puVar56 + 0x28450)" * (cast_expression "(code **)(puVar56 + 0x28450)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x28450)" ( (binary_expression "puVar56 + 0x28450" identifier + number_literal) ))))) )) (argument_list "((auStack_144._36_4_ + 1) * 4)" ( (binary_expression "(auStack_144._36_4_ + 1) * 4" (parenthesized_expression "(auStack_144._36_4_ + 1)" ( (binary_expression "auStack_144._36_4_ + 1" (field_expression "auStack_144._36_4_" identifier . field_identifier) + number_literal) )) * number_literal) )))) ;) (expression_statement "pprVar22 = (re_dfastate_t **)auStack_144._100_4_;" (assignment_expression "pprVar22 = (re_dfastate_t **)auStack_144._100_4_" identifier = (cast_expression "(re_dfastate_t **)auStack_144._100_4_" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (field_expression "auStack_144._100_4_" identifier . field_identifier))) ;) (if_statement "if ((re_dfastate_t **)auStack_144._100_4_ == (re_dfastate_t **)0x0) {\nLAB_0004dbb4:\n      prStack_1e4 = (re_dfastate_t *)0xc;\n      goto LAB_0004dbbc;\n    }" if (parenthesized_expression "((re_dfastate_t **)auStack_144._100_4_ == (re_dfastate_t **)0x0)" ( (binary_expression "(re_dfastate_t **)auStack_144._100_4_ == (re_dfastate_t **)0x0" (cast_expression "(re_dfastate_t **)auStack_144._100_4_" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (field_expression "auStack_144._100_4_" identifier . field_identifier)) == (cast_expression "(re_dfastate_t **)0x0" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\nLAB_0004dbb4:\n      prStack_1e4 = (re_dfastate_t *)0xc;\n      goto LAB_0004dbbc;\n    }" { (labeled_statement "LAB_0004dbb4:\n      prStack_1e4 = (re_dfastate_t *)0xc;" statement_identifier : (expression_statement "prStack_1e4 = (re_dfastate_t *)0xc;" (assignment_expression "prStack_1e4 = (re_dfastate_t *)0xc" identifier = (cast_expression "(re_dfastate_t *)0xc" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (goto_statement "goto LAB_0004dbbc;" goto statement_identifier ;) })) }) (else_clause "else {\n    auStack_144._100_4_ = (re_dfastate_t **)0x0;\n  }" else (compound_statement "{\n    auStack_144._100_4_ = (re_dfastate_t **)0x0;\n  }" { (expression_statement "auStack_144._100_4_ = (re_dfastate_t **)0x0;" (assignment_expression "auStack_144._100_4_ = (re_dfastate_t **)0x0" (field_expression "auStack_144._100_4_" identifier . field_identifier) = (cast_expression "(re_dfastate_t **)0x0" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) }))) (expression_statement "iVar31 = prVar53->mb_cur_max;" (assignment_expression "iVar31 = prVar53->mb_cur_max" identifier = (field_expression "prVar53->mb_cur_max" identifier -> field_identifier)) ;) (expression_statement "iVar11 = -1;" (assignment_expression "iVar11 = -1" identifier = number_literal) ;) (expression_statement "prStack_16c = in_a3;" (assignment_expression "prStack_16c = in_a3" identifier = identifier) ;) (expression_statement "auStack_144._60_4_ = 6;" (assignment_expression "auStack_144._60_4_ = 6" (field_expression "auStack_144._60_4_" identifier . field_identifier) = number_literal) ;) (expression_statement "uVar32 = (uint)((int)in_stack_ffffff80 < (int)in_a3);" (assignment_expression "uVar32 = (uint)((int)in_stack_ffffff80 < (int)in_a3)" identifier = (call_expression "(uint)((int)in_stack_ffffff80 < (int)in_a3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)in_stack_ffffff80 < (int)in_a3)" ( (binary_expression "(int)in_stack_ffffff80 < (int)in_a3" (cast_expression "(int)in_stack_ffffff80" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)in_a3" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "prVar46 = in_stack_ffffff80;" (assignment_expression "prVar46 = in_stack_ffffff80" identifier = identifier) ;) (if_statement "if (uVar32 == 0) {\n    iVar11 = 1;\n    prVar46 = in_a3;\n  }" if (parenthesized_expression "(uVar32 == 0)" ( (binary_expression "uVar32 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar11 = 1;\n    prVar46 = in_a3;\n  }" { (expression_statement "iVar11 = 1;" (assignment_expression "iVar11 = 1" identifier = number_literal) ;) (expression_statement "prVar46 = in_a3;" (assignment_expression "prVar46 = in_a3" identifier = identifier) ;) })) (if_statement "if ((int)in_stack_ffffff80 <= (int)in_a3) {\n    in_stack_ffffff80 = in_a3;\n  }" if (parenthesized_expression "((int)in_stack_ffffff80 <= (int)in_a3)" ( (binary_expression "(int)in_stack_ffffff80 <= (int)in_a3" (cast_expression "(int)in_stack_ffffff80" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)in_a3" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    in_stack_ffffff80 = in_a3;\n  }" { (expression_statement "in_stack_ffffff80 = in_a3;" (assignment_expression "in_stack_ffffff80 = in_a3" identifier = identifier) ;) })) (if_statement "if (pcStack_1e0 == (char *)0x0) goto LAB_0004eabc;" if (parenthesized_expression "(pcStack_1e0 == (char *)0x0)" ( (binary_expression "pcStack_1e0 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004eabc;" goto statement_identifier ;)) (expression_statement "uVar15 = 4;" (assignment_expression "uVar15 = 4" identifier = number_literal) ;) (if_statement "if (((iVar31 != 1) && (uVar15 = 0, -1 < (int)(preg->input).offsets << 9)) &&\n     (uVar15 = 4, puVar47 != (uchar *)0x0)) {\n    uVar15 = 0;\n  }" if (parenthesized_expression "(((iVar31 != 1) && (uVar15 = 0, -1 < (int)(preg->input).offsets << 9)) &&\n     (uVar15 = 4, puVar47 != (uchar *)0x0))" ( (binary_expression "((iVar31 != 1) && (uVar15 = 0, -1 < (int)(preg->input).offsets << 9)) &&\n     (uVar15 = 4, puVar47 != (uchar *)0x0)" (parenthesized_expression "((iVar31 != 1) && (uVar15 = 0, -1 < (int)(preg->input).offsets << 9))" ( (binary_expression "(iVar31 != 1) && (uVar15 = 0, -1 < (int)(preg->input).offsets << 9)" (parenthesized_expression "(iVar31 != 1)" ( (binary_expression "iVar31 != 1" identifier != number_literal) )) && (parenthesized_expression "(uVar15 = 0, -1 < (int)(preg->input).offsets << 9)" ( (comma_expression "uVar15 = 0, -1 < (int)(preg->input).offsets << 9" (assignment_expression "uVar15 = 0" identifier = number_literal) , (binary_expression "-1 < (int)(preg->input).offsets << 9" number_literal < (binary_expression "(int)(preg->input).offsets << 9" (cast_expression "(int)(preg->input).offsets" ( (type_descriptor "int" primitive_type) ) (field_expression "(preg->input).offsets" (parenthesized_expression "(preg->input)" ( (field_expression "preg->input" identifier -> field_identifier) )) . field_identifier)) << number_literal))) ))) )) && (parenthesized_expression "(uVar15 = 4, puVar47 != (uchar *)0x0)" ( (comma_expression "uVar15 = 4, puVar47 != (uchar *)0x0" (assignment_expression "uVar15 = 4" identifier = number_literal) , (binary_expression "puVar47 != (uchar *)0x0" identifier != (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n    uVar15 = 0;\n  }" { (expression_statement "uVar15 = 0;" (assignment_expression "uVar15 = 0" identifier = number_literal) ;) })) (expression_statement "uVar41 = 2;" (assignment_expression "uVar41 = 2" identifier = number_literal) ;) (if_statement "if (uVar32 != 0) {\n    uVar41 = 0;\n  }" if (parenthesized_expression "(uVar32 != 0)" ( (binary_expression "uVar32 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar41 = 0;\n  }" { (expression_statement "uVar41 = 0;" (assignment_expression "uVar41 = 0" identifier = number_literal) ;) })) (expression_statement "uVar41 = puVar47 != (uchar *)0x0 | uVar15 | uVar41;" (assignment_expression "uVar41 = puVar47 != (uchar *)0x0 | uVar15 | uVar41" identifier = (binary_expression "puVar47 != (uchar *)0x0 | uVar15 | uVar41" (binary_expression "puVar47 != (uchar *)0x0 | uVar15" (binary_expression "puVar47 != (uchar *)0x0" identifier != (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) | identifier) | identifier)) ;) (labeled_statement "LAB_0004dab0:\n  if (((int)prVar46 <= (int)in_a3) && ((int)in_a3 <= (int)in_stack_ffffff80)) {\n    pprVar16 = &prStack_16c;\n    if (uVar32 != 0) {\n      pprVar16 = (re_dfa_t **)0x0;\n    }\n    iVar33 = *(int *)(puVar56 + 0x28244);\n    iVar17 = *(int *)(puVar56 + 0x27edc);\n    iVar34 = *(int *)(puVar56 + 0x2829c);\n    pbVar36 = (re_bitset_ptr_t)auStack_144._24_4_;\n    prVar48 = prStack_88;\n    do {\n      prStack_88 = prVar48;\n      if (uVar41 - 4 < 5) {\n                    /* WARNING: Could not recover jumptable at 0x0004db3c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        rVar7 = (*(code *)(puVar56 + *(int *)(iVar17 + 0x2be4 + (uVar41 - 4) * 4) + 0x2fea4))();\n        return rVar7;\n      }\n      auStack_144._24_4_ = pbVar36;\n      while( true ) {\n        prVar50 = (re_dfa_t *)((int)in_a3 - (int)pbVar36);\n        if ((uint)auStack_144._32_4_ <= prVar50) {\n          prStack_1e4 = (re_dfastate_t *)\n                        (*(code *)(iVar33 + 0x7eac))((re_match_context_t *)auStack_144,in_a3,&_gp);\n          pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n          if (prStack_1e4 != (re_dfastate_t *)0x0) goto LAB_0004dbbc;\n          prVar50 = (re_dfa_t *)((int)in_a3 - auStack_144._24_4_);\n          pbVar36 = (re_bitset_ptr_t)auStack_144._24_4_;\n        }\n        if ((int)in_a3 < (int)prVar48) {\n          cVar29 = pcStack_1e0\n                   [*(byte *)((int)(((re_dfa_t *)\n                                    (((re_dfa_t *)(prVar50->word_char + -0x18))->word_char + -0x18))\n                                    ->word_char + 0xffffffe8) +\n                             (int)((re_dfa_t *)\n                                  (((re_dfa_t *)\n                                   (((re_dfa_t *)\n                                    ((bitset_word_t *)(auStack_144._4_4_ + 0x60) + -0x18))->\n                                    word_char + -0x18))->word_char + -0x18))->word_char +\n                             0xffffffa0U)];\n        }\n        else {\n          cVar29 = *pcStack_1e0;\n        }\n        if (cVar29 != '\0') break;\n        in_a3 = (re_dfa_t *)((int)in_a3->word_char + iVar11 + -0x60);\n        prStack_16c = in_a3;\n        if (((int)in_a3 < (int)prVar46) || ((int)in_stack_ffffff80 < (int)in_a3)) goto LAB_0004df68;\n      }\n      prVar18 = (re_dfastate_t *)\n                re_string_reconstruct((re_string_t *)auStack_144,(Idx)in_a3,0x7d580);\n      uVar44 = auStack_144._84_4_;\n      prVar39 = (re_dfastate_t *)auStack_144._40_4_;\n      pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n      prStack_1e4 = prVar18;\n      if (prVar18 != (re_dfastate_t *)0x0) goto LAB_0004dbbc;\n      if (((iVar31 == 1) || ((re_dfa_t *)auStack_144._28_4_ == (re_dfa_t *)0x0)) ||\n         (*(re_hashval_t *)auStack_144._8_4_ != 0xffffffff)) {\n        auStack_144._120_4_ = (anon_union_4_2_9a799d16_for___pthread_mutex_s_5)0x0;\n        auStack_144._108_4_ = 0;\n        prVar52 = *(re_dfastate_t **)(auStack_144._84_4_ + 0x24);\n        prStack_1d0 = (re_dfastate_t *)auStack_144._40_4_;\n        auStack_144._104_4_ = 0;\n        auStack_168._0_4_ = (re_dfastate_t *)0x0;\n        if ((prVar52->field_0x34 & 1) != 0) {\n          uVar32 = re_string_context_at\n                             ((re_string_t *)auStack_144,\n                              (Idx)&((re_dfastate_t *)(auStack_144._40_4_ + -0x38))->field_0x37,\n                              auStack_144._88_4_);\n          if ((uVar32 & 1) == 0) {\n            if (uVar32 == 0) goto LAB_0004dd24;\n            if ((uVar32 & 6) == 6) {\n              prVar52 = *(re_dfastate_t **)(uVar44 + 0x30);\n            }\n            else if ((uVar32 & 2) == 0) {\n              if ((uVar32 & 4) == 0) goto LAB_0004dd24;\n              prVar52 = re_acquire_state_context\n                                  ((reg_errcode_t *)auStack_168,(re_dfa_t *)uVar44,\n                                   prVar52->entrance_nodes,uVar32);\n            }\n            else {\n              prVar52 = *(re_dfastate_t **)(uVar44 + 0x2c);\n            }\n          }\n          else {\n            prVar52 = *(re_dfastate_t **)(uVar44 + 0x28);\n          }\n          if (prVar52 == (re_dfastate_t *)0x0) goto code_r0x0004ea7c;\n        }\nLAB_0004dd24:\n        bVar4 = pprVar16 != (re_dfa_t **)0x0;\n        if (((re_dfastate_t **)auStack_144._100_4_ == (re_dfastate_t **)0x0) ||\n           (iVar35 = *(Idx *)(uVar44 + 0x4c),\n           *(re_dfastate_t **)(auStack_144._100_4_ + (int)prVar39 * 4) = prVar52, iVar35 == 0)) {\nLAB_0004dd48:\n          if (*(int *)&prVar52->field_0x34 << 4 < 0) {\n            if (((prVar52->field_0x34 & 1) == 0) ||\n               (IVar21 = check_halt_state_context\n                                   ((re_match_context_t *)auStack_144,\n                                    (re_dfastate_t *)(prVar52->nodes).nelem,\n                                    (Idx)&(prVar52->nodes).elems,prVar39), IVar21 != 0)) {\n              prVar38 = prVar39;\n              bVar5 = bVar30;\n              if (!bVar30) goto LAB_0004e0e4;\n            }\n            else {\n              prVar39 = (re_dfastate_t *)0xffffffff;\n              bVar5 = false;\n            }\n          }\n          else {\n            prVar39 = (re_dfastate_t *)0xffffffff;\n            bVar5 = false;\n          }\n          iVar35 = *(int *)(puVar56 + 0x28244);\n          iVar19 = *(int *)(puVar56 + 0x2829c);\n          prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n          pprStack_1dc = pprVar16;\n          while ((int)prVar38 < (int)auStack_144._56_4_) {\n            prVar51 = (re_dfastate_t *)((int)&prVar38->hash + 1);\n            if ((((int)prVar51 < (int)auStack_144._36_4_) ||\n                ((int)auStack_144._48_4_ <= (int)auStack_144._36_4_)) &&\n               (((int)prVar51 < (int)auStack_144._28_4_ ||\n                ((int)auStack_144._48_4_ <= (int)auStack_144._28_4_)))) {\n              iVar20 = *(int *)&prVar52->field_0x34;\n              prVar48 = (re_dfa_t *)auStack_144._84_4_;\n            }\n            else {\n              auStack_168._0_4_ =\n                   (*(code *)(iVar35 + 0x41e4))\n                             ((re_match_context_t *)auStack_144,\n                              (undefined1 *)((int)&prVar38->hash + 2));\n              if ((re_dfastate_t *)auStack_168._0_4_ != (re_dfastate_t *)0x0) {\n                if ((re_dfastate_t *)auStack_168._0_4_ == (re_dfastate_t *)0xc) goto LAB_0004dbf8;\n                uVar44 = 0x46c;\n                goto LAB_0004ea9c;\n              }\n              iVar20 = *(int *)&prVar52->field_0x34;\n              prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n              prVar48 = (re_dfa_t *)auStack_144._84_4_;\n            }\n            auStack_144._84_4_ = prVar48;\n            if (iVar20 << 5 < 0) {\n              iVar20 = (prVar52->nodes).nelem;\n              if (0 < iVar20) {\n                in_a3 = (re_dfa_t *)0x0;\n                iVar24 = *(int *)(puVar56 + 0x28244);\n                pcVar55 = (code *)(*(int *)(puVar56 + 0x28244) + 0x7ab0);\n                do {\n                  prVar40 = prVar48->nodes;\n                  iVar54 = (prVar52->nodes).elems[(int)in_a3];\n                  uVar32 = *(uint *)&prVar40[iVar54].field_0x4;\n                  if ((uVar32 & 0x800) != 0) {\n                    if ((uVar32 & 0xffc000) != 0) {\n                      uVar15 = (*pcVar55)((re_match_context_t *)auStack_144,prVar38,\n                                          auStack_144._88_4_);\n                      uVar32 = (uVar32 << 8) >> 0x16;\n                      if ((uVar32 & 4) == 0) {\n                        uVar37 = uVar15 & 1;\n                        if ((uVar32 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar37 = uVar32 & 8;\n                        if ((uVar15 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar37 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar32 & 0x20) != 0) && ((uVar15 & 2) == 0)) ||\n                         (((uVar32 & 0x80) != 0 && ((uVar15 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    aVar25.__spins =\n                         (*(code *)(iVar19 + -0x4eb0))\n                                   (prVar40,&prVar48->syntax,iVar54,\n                                    (re_match_context_t *)auStack_144,prVar38);\n                    if (aVar25.__spins != 0) {\n                      if ((int)auStack_144._120_4_ < aVar25.__spins) {\n                        auStack_144._120_4_ = aVar25.__spins;\n                      }\n                      puVar45 = (undefined1 *)\n                                ((int)(re_hashval_t *)auStack_144._40_4_ + aVar25.__spins);\n                      auStack_168._4_4_ =\n                           (*(code *)(iVar24 + 0x43b0))((re_match_context_t *)auStack_144,puVar45);\n                      prVar38 = (re_dfastate_t *)auStack_168._4_4_;\n                      if ((re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0)\n                      goto joined_r0x0004e770;\n                      iVar20 = (int)puVar45 * 4;\n                      pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + iVar20);\n                      prVar38 = *pprVar22;\n                      src2 = prVar48->eclosures + prVar48->nexts[iVar54];\n                      if (prVar38 == (re_dfastate_t *)0x0) {\n                        rStack_160.sifted_states = (re_dfastate_t **)src2->alloc;\n                        rStack_160.limited_states = (re_dfastate_t **)src2->nelem;\n                        rStack_160.last_node = (Idx)src2->elems;\n                        uVar32 = (*pcVar55)((re_match_context_t *)auStack_144,\n                                            (re_dfastate_t *)(puVar45 + -1),auStack_144._88_4_);\n                        prVar38 = re_acquire_state_context\n                                            ((reg_errcode_t *)(auStack_168 + 4),prVar48,\n                                             (re_node_set *)(auStack_168 + 8),uVar32);\n                        *pprVar22 = prVar38;\n                      }\n                      else {\n                        auStack_168._4_4_ =\n                             re_node_set_init_union\n                                       ((re_node_set *)(auStack_168 + 8),prVar38->entrance_nodes,\n                                        src2);\n                        prVar38 = (re_dfastate_t *)auStack_168._4_4_;\n                        if ((re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0)\n                        goto joined_r0x0004e770;\n                        uVar32 = (*pcVar55)((re_match_context_t *)auStack_144,\n                                            (re_dfastate_t *)(puVar45 + -1),auStack_144._88_4_);\n                        pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + iVar20);\n                        prVar38 = re_acquire_state_context\n                                            ((reg_errcode_t *)(auStack_168 + 4),prVar48,\n                                             (re_node_set *)(auStack_168 + 8),uVar32);\n                        pcVar8 = *(code **)(puVar56 + 0x28520);\n                        *pprVar22 = prVar38;\n                        (*pcVar8)(rStack_160.last_node);\n                      }\n                      if ((*(re_dfastate_t **)(auStack_144._100_4_ + iVar20) == (re_dfastate_t *)0x0\n                          ) && (prVar38 = (re_dfastate_t *)auStack_168._4_4_,\n                               (re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar20 = (prVar52->nodes).nelem;\n                    prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n                  }\nLAB_0004e670:\n                  in_a3 = (re_dfa_t *)((int)&((re_string_t *)&in_a3->nodes)->raw_mbs + 1);\n                } while ((int)in_a3 < iVar20);\n              }\n              auStack_168._0_4_ = (re_dfastate_t *)0x0;\n            }\n            auStack_144._40_4_ = (int)&prVar38->hash + 1;\n            uVar32 = (uint)*(byte *)((int)((re_dfa_t *)\n                                          ((bitset_word_t *)(auStack_144._4_4_ + 0x60) + -0x18))->\n                                          word_char + (int)&prVar38[-2].non_eps_nodes);\n            do {\n              if (prVar52->trtable != (re_dfastate_t **)0x0) {\n                prVar49 = prVar52->trtable[uVar32];\nLAB_0004ddf0:\n                if ((re_dfastate_t **)auStack_144._100_4_ != (re_dfastate_t **)0x0)\n                goto LAB_0004ddfc;\n                goto LAB_0004de1c;\n              }\n              pprVar22 = prVar52->word_trtable;\n              if (pprVar22 != (re_dfastate_t **)0x0) {\n                uVar15 = re_string_context_at\n                                   ((re_string_t *)auStack_144,\n                                    (Idx)&((re_dfastate_t *)(auStack_144._40_4_ + -0x38))->\n                                          field_0x37,auStack_144._88_4_);\n                if ((uVar15 & 1) == 0) {\n                  prVar49 = pprVar22[uVar32];\n                }\n                else {\n                  prVar49 = pprVar22[uVar32 + 0x100];\n                }\n                goto LAB_0004ddf0;\n              }\n              iVar20 = (*(code *)(iVar34 + -0x7510))(auStack_144._84_4_,prVar52);\n            } while (iVar20 != 0);\n            auStack_168._0_4_ = (re_dfastate_t *)0xc;\n            prVar38 = (re_dfastate_t *)auStack_168._0_4_;\njoined_r0x0004e770:\n            auStack_168._0_4_ = prVar38;\n            if ((re_dfastate_t **)auStack_144._100_4_ == (re_dfastate_t **)0x0) {\n              pprVar22 = (re_dfastate_t **)0x0;\n              goto LAB_0004dbb4;\n            }\n            prVar49 = (re_dfastate_t *)0x0;\nLAB_0004ddfc:\n            prVar49 = merge_state_with_log\n                                ((reg_errcode_t *)auStack_168,(re_match_context_t *)auStack_144,\n                                 prVar49);\nLAB_0004de1c:\n            prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n            if (prVar49 == (re_dfastate_t *)0x0) {\n              pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n              if ((re_dfastate_t *)auStack_168._0_4_ != (re_dfastate_t *)0x0) goto LAB_0004dbb4;\n              if (((re_dfastate_t **)auStack_144._100_4_ == (re_dfastate_t **)0x0) ||\n                 ((bVar5 && (!bVar30)))) break;\n              in_a3 = (re_dfa_t *)auStack_168;\n              do {\n                bVar3 = false;\n                pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + auStack_144._40_4_ * 4);\n                prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n                do {\n                  prVar49 = (re_dfastate_t *)((int)&prVar38->hash + 1);\n                  pprVar22 = pprVar22 + 1;\n                  if ((int)auStack_144._104_4_ < (int)prVar49) {\n                    if (bVar3) {\n                      auStack_144._40_4_ = prVar38;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar3 = true;\n                  prVar38 = prVar49;\n                } while (*pprVar22 == (re_dfastate_t *)0x0);\n                auStack_144._40_4_ = prVar49;\n                prVar49 = merge_state_with_log\n                                    ((reg_errcode_t *)in_a3,(re_match_context_t *)auStack_144,\n                                     (re_dfastate_t *)0x0);\n                prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n                if ((re_dfastate_t *)auStack_168._0_4_ != (re_dfastate_t *)0x0) {\n                  if (prVar49 == (re_dfastate_t *)0x0) goto LAB_0004e0cc;\n                  break;\n                }\n              } while (prVar49 == (re_dfastate_t *)0x0);\n            }\n            prVar6 = prStack_1d0;\n            if ((bVar4) && (prVar6 = prVar51, prVar52 != prVar49)) {\n              bVar4 = false;\n              prVar6 = prStack_1d0;\n            }\n            prStack_1d0 = prVar6;\n            prVar52 = prVar49;\n            auStack_144._40_4_ = prVar38;\n            if (((prVar49->field_0x34 & 8) != 0) &&\n               (((prVar49->field_0x34 & 1) == 0 ||\n                (IVar21 = check_halt_state_context\n                                    ((re_match_context_t *)auStack_144,\n                                     (re_dfastate_t *)(prVar49->nodes).nelem,\n                                     (Idx)&(prVar49->nodes).elems,prVar38), IVar21 != 0)))) {\n              if (!bVar30) goto LAB_0004e0e4;\n              pprStack_1dc = (re_dfa_t **)0x0;\n              prVar39 = prVar38;\n              bVar5 = bVar30;\n            }\n          }\nLAB_0004e0cc:\n          prVar38 = prVar39;\n          if (pprStack_1dc != (re_dfa_t **)0x0) {\n            *pprStack_1dc = (re_dfa_t *)((int)&prStack_1d0->hash + (int)*pprStack_1dc);\n          }\n        }\n        else {\n          pIVar23 = &(prVar52->nodes).nelem;\n          nodes_1 = &(prVar52->nodes).elems;\n          prVar38 = (re_dfastate_t *)\n                    check_subexp_matching_top\n                              ((re_match_context_t *)auStack_144,(re_node_set *)pIVar23,(Idx)nodes_1\n                               ,(re_node_set *)0x0);\n          auStack_168._0_4_ = prVar38;\n          if (prVar38 == (re_dfastate_t *)0x0) {\n            if ((prVar52->field_0x34 & 2) == 0) {\n              bVar4 = false;\n            }\n            else {\n              prVar38 = (re_dfastate_t *)\n                        transit_state_bkref((re_match_context_t *)auStack_144,(re_node_set *)pIVar23\n                                            ,(re_node_set *)nodes_1);\n              auStack_168._0_4_ = prVar38;\n              if (prVar38 != (re_dfastate_t *)0x0) goto LAB_0004e0e4;\n              bVar4 = false;\n            }\n            goto LAB_0004dd48;\n          }\n        }\nLAB_0004e0e4:\n        pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n        if (prVar38 != (re_dfastate_t *)0xffffffff) {\n          if (prVar38 == (re_dfastate_t *)&SUB_fffffffe) goto LAB_0004dbf8;\n          auStack_144._92_4_ = prVar38;\n          if (((preg->input).valid_len & 0x8000000) == 0) {\n            if (!bVar2) {\n              iVar35 = prVar53->nbackref;\n              goto joined_r0x0004e94c;\n            }\n            pcVar55 = (code *)(*(int *)(puVar56 + 0x28244) + 0x7d8c);\n            prVar39 = *(re_dfastate_t **)(auStack_144._100_4_ + (int)prVar38 * 4);\n            auStack_144._96_4_ =\n                 check_halt_state_context\n                           ((re_match_context_t *)auStack_144,\n                            (re_dfastate_t *)(prVar39->nodes).nelem,(Idx)&(prVar39->nodes).elems,\n                            prVar38);\n            if (((char)prVar53->field_0x58 < '\0') || (prVar53->nbackref != 0)) goto LAB_0004e170;\n          }\n          else {\n            iVar35 = prVar53->nbackref;\njoined_r0x0004e94c:\n            if (iVar35 != 0) {\n              pcVar55 = (code *)(*(int *)(puVar56 + 0x28244) + 0x7d8c);\n              prVar39 = *(re_dfastate_t **)(auStack_144._100_4_ + (int)prVar38 * 4);\n              auStack_144._96_4_ =\n                   check_halt_state_context\n                             ((re_match_context_t *)auStack_144,\n                              (re_dfastate_t *)(prVar39->nodes).nelem,(Idx)&(prVar39->nodes).elems,\n                              prVar38);\nLAB_0004e170:\n              pIVar23 = (Idx *)auStack_144._96_4_;\n              uVar44 = auStack_144._84_4_;\n              if (prVar38 < (re_dfastate_t *)0x3fffffff) {\n                prStack_1f0 = (re_dfastate_t *)((int)&prVar38->hash + 1);\n                pprVar22 = (re_dfastate_t **)(**(code **)(puVar56 + 0x28450))((int)prStack_1f0 * 4);\n                if (pprVar22 == (re_dfastate_t **)0x0) goto LAB_0004dbf8;\n                if (*(Idx *)(uVar44 + 0x4c) == 0) {\n                  rStack_160.limited_states = (re_dfastate_t **)0x0;\n                  rStack_160.limits.alloc = 0;\n                  rStack_160.limits.nelem = 0;\n                  rStack_160.limits.elems = (Idx *)0x0;\n                  rStack_160.sifted_states = pprVar22;\n                  rStack_160.last_node = (Idx)pIVar23;\n                  rStack_160.last_str_idx = (Idx)prVar38;\n                  prStack_1e4 = (re_dfastate_t *)\n                                sift_states_backward\n                                          ((re_match_context_t *)auStack_144,\n                                           (re_sift_context_t *)(auStack_168 + 8));\n                  (**(code **)(puVar56 + 0x28520))(rStack_160.limits.elems);\n                  if (prStack_1e4 == (re_dfastate_t *)0x0) {\n                    if (*pprVar22 == (re_dfastate_t *)0x0) {\n                      (**(code **)(puVar56 + 0x28520))(pprVar22);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar56 + 0x28520))(auStack_144._100_4_);\n                    auStack_144._92_4_ = prVar38;\n                    auStack_144._96_4_ = pIVar23;\n                    auStack_144._100_4_ = pprVar22;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  pprStack_1ec = (re_dfastate_t **)0x0;\n                }\n                else {\n                  pprStack_1ec = (re_dfastate_t **)\n                                 (**(code **)(puVar56 + 0x28450))((int)prStack_1f0 * 4);\n                  if (pprStack_1ec == (re_dfastate_t **)0x0) {\n                    (**(code **)(puVar56 + 0x28520))(pprVar22);\n                    prStack_1e4 = (re_dfastate_t *)0xc;\n                    pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar35 = *(int *)(puVar56 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar56 + 0x283f8))(pprStack_1ec,0,(int)prStack_1f0 * 4);\n                    rStack_160.limits.alloc = 0;\n                    rStack_160.limits.nelem = 0;\n                    rStack_160.limits.elems = (Idx *)0x0;\n                    rStack_160.sifted_states = pprVar22;\n                    rStack_160.limited_states = pprStack_1ec;\n                    rStack_160.last_node = (Idx)pIVar23;\n                    rStack_160.last_str_idx = (Idx)prVar38;\n                    prStack_1e4 = (re_dfastate_t *)\n                                  (*(code *)(iVar35 + -0x2cf4))\n                                            ((re_match_context_t *)auStack_144,auStack_168 + 8);\n                    (**(code **)(puVar56 + 0x28520))(rStack_160.limits.elems);\n                    if (prStack_1e4 != (re_dfastate_t *)0x0) break;\n                    if ((*pprVar22 != (re_dfastate_t *)0x0) ||\n                       (*pprStack_1ec != (re_dfastate_t *)0x0)) {\n                      prStack_1e4 = (re_dfastate_t *)\n                                    merge_state_array((re_dfa_t *)uVar44,pprVar22,pprStack_1ec,\n                                                      (Idx)prStack_1f0);\n                      (**(code **)(puVar56 + 0x28520))(pprStack_1ec);\n                      if (prStack_1e4 != (re_dfastate_t *)0x0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    iVar19 = auStack_144._100_4_ + (int)prStack_1f0 * 4 + -4;\n                    prStack_1f0 = prVar38;\n                    while( true ) {\n                      prVar38 = (re_dfastate_t *)&prStack_1f0[-1].field_0x37;\n                      if (prVar38 == (re_dfastate_t *)0xffffffff) {\n                        (**(code **)(puVar56 + 0x28520))(pprVar22);\n                        (**(code **)(puVar56 + 0x28520))(pprStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar20 = *(int *)(iVar19 + -4);\n                      if ((iVar20 != 0) && ((*(byte *)(iVar20 + 0x34) & 8) != 0)) break;\n                      iVar19 = iVar19 + -4;\n                      prStack_1f0 = prVar38;\n                    }\n                    pIVar23 = (Idx *)(*pcVar55)((re_match_context_t *)auStack_144,\n                                                *(undefined4 *)(iVar20 + 8),iVar20 + 0xc,prVar38);\n                  }\n                }\n                (**(code **)(puVar56 + 0x28520))(pprVar22);\n                (**(code **)(puVar56 + 0x28520))(pprStack_1ec);\n                pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n                if (prStack_1e4 == (re_dfastate_t *)0x1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }\n              prStack_1e4 = (re_dfastate_t *)0xc;\n              goto LAB_0004dbbc;\n            }\n          }\nLAB_0004e7e0:\n          pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n          prStack_1e4 = prVar18;\n          if (prStack_78 == (re_dfa_t *)0x0) goto LAB_0004dbbc;\n          IVar21 = (preg->input).valid_len;\n          if (bVar2) {\n            prVar27 = prStack_74 + 1;\n            do {\n              prVar27->rm_eo = -1;\n              prVar26 = prVar27 + 1;\n              prVar27->rm_so = -1;\n              prVar27 = prVar26;\n            } while (prStack_74 + (int)prStack_78 != prVar26);\n            prStack_74->rm_so = 0;\n            prStack_74->rm_eo = auStack_144._92_4_;\n            if ((IVar21 & 0x8000000) == 0) {\n              if ((char)prVar53->field_0x58 < '\0') {\n                bVar30 = 0 < prVar53->nbackref;\n              }\n              else {\n                bVar30 = false;\n              }\n              prStack_1e4 = (re_dfastate_t *)\n                            set_regs((regex_t *)preg,(re_match_context_t *)auStack_144,\n                                     (size_t)prStack_78,prStack_74,bVar30);\n              pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n              if (prStack_1e4 != (re_dfastate_t *)0x0) goto LAB_0004dbbc;\n              prVar46 = (re_dfa_t *)prStack_74->rm_so;\n            }\n            else {\nLAB_0004e838:\n              prVar46 = (re_dfa_t *)0x0;\n            }\n            prVar48 = (re_dfa_t *)0x0;\n            prVar27 = prStack_74;\n            while( true ) {\n              if (prVar46 != (re_dfa_t *)0xffffffff) {\n                prVar42 = (re_dfa_t *)prVar27->rm_eo;\n                prVar50 = prVar46;\n                prVar43 = prVar42;\n                if (auStack_144[0x4c] != '\0') {\n                  prVar50 = (re_dfa_t *)auStack_144._32_4_;\n                  if ((re_dfa_t *)auStack_144._28_4_ != prVar46) {\n                    prVar50 = (re_dfa_t *)((re_hashval_t *)auStack_144._12_4_)[(int)prVar46];\n                  }\n                  prVar27->rm_so = (regoff_t)prVar50;\n                  prVar43 = (re_dfa_t *)auStack_144._32_4_;\n                  if ((re_dfa_t *)auStack_144._28_4_ != prVar42) {\n                    prVar43 = (re_dfa_t *)((re_hashval_t *)auStack_144._12_4_)[(int)prVar42];\n                  }\n                }\n                prVar27->rm_so =\n                     (int)(((re_dfa_t *)\n                           (((re_dfa_t *)(prVar50->word_char + -0x18))->word_char + -0x18))->\n                           word_char + 0xffffffe8) +\n                     (int)((re_dfa_t *)\n                          (((re_dfa_t *)\n                           (((re_dfa_t *)(prStack_16c->word_char + -0x18))->word_char + -0x18))->\n                           word_char + -0x18))->word_char + 0xffffffa0U;\n                prVar27->rm_eo =\n                     (int)(((re_dfa_t *)\n                           (((re_dfa_t *)(prVar43->word_char + -0x18))->word_char + -0x18))->\n                           word_char + 0xffffffe8) +\n                     (int)((re_dfa_t *)\n                          (((re_dfa_t *)\n                           (((re_dfa_t *)(prStack_16c->word_char + -0x18))->word_char + -0x18))->\n                           word_char + -0x18))->word_char + 0xffffffa0U;\n              }\n              prVar48 = (re_dfa_t *)((int)&prVar48->nodes + 1);\n              prVar27 = prVar27 + 1;\n              if (prVar48 == prStack_78) break;\n              prVar46 = (re_dfa_t *)prVar27->rm_so;\n            }\n            if (0 < iStack_180) {\n              prVar27 = prStack_74 + (int)prStack_78;\n              do {\n                prVar27->rm_so = -1;\n                prVar26 = prVar27 + 1;\n                prVar27->rm_eo = -1;\n                prVar27 = prVar26;\n              } while (prStack_74 + (int)prStack_78->word_char + iStack_180 + -0x60 != prVar26);\n            }\n            pIVar23 = prVar53->subexp_map;\n            pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n            prStack_1e4 = prVar18;\n            if (pIVar23 != (Idx *)0x0) {\n              puVar45 = (undefined1 *)0x0;\n              prVar27 = prStack_74;\n              do {\n                pcVar55 = *(code **)(puVar56 + 0x28520);\n                if (puVar45 == (undefined1 *)((int)&prStack_78[-1].lock + 0x17)) goto LAB_0004dbc0;\n                if ((undefined1 *)*pIVar23 != puVar45) {\n                  prVar27[1].rm_so = prStack_74[(int)((undefined1 *)*pIVar23 + 1)].rm_so;\n                  prVar27[1].rm_eo = prStack_74[*pIVar23 + 1].rm_eo;\n                }\n                puVar45 = puVar45 + 1;\n                pIVar23 = pIVar23 + 1;\n                prVar27 = prVar27 + 1;\n              } while( true );\n            }\n            goto LAB_0004dbbc;\n          }\n          prStack_74->rm_so = 0;\n          prStack_74->rm_eo = auStack_144._92_4_;\n          goto LAB_0004e838;\n        }\nLAB_0004e2d4:\n        match_ctx_clean((re_match_context_t *)auStack_144);\n        in_a3 = prStack_16c;\n      }\n      in_a3 = (re_dfa_t *)((int)in_a3->word_char + iVar11 + -0x60);\n      prStack_16c = in_a3;\n      if (((int)in_a3 < (int)prVar46) ||\n         (pbVar36 = (re_bitset_ptr_t)auStack_144._24_4_, prVar48 = prStack_88,\n         (int)in_stack_ffffff80 < (int)in_a3)) break;\n    } while( true );\n  }" statement_identifier : (if_statement "if (((int)prVar46 <= (int)in_a3) && ((int)in_a3 <= (int)in_stack_ffffff80)) {\n    pprVar16 = &prStack_16c;\n    if (uVar32 != 0) {\n      pprVar16 = (re_dfa_t **)0x0;\n    }\n    iVar33 = *(int *)(puVar56 + 0x28244);\n    iVar17 = *(int *)(puVar56 + 0x27edc);\n    iVar34 = *(int *)(puVar56 + 0x2829c);\n    pbVar36 = (re_bitset_ptr_t)auStack_144._24_4_;\n    prVar48 = prStack_88;\n    do {\n      prStack_88 = prVar48;\n      if (uVar41 - 4 < 5) {\n                    /* WARNING: Could not recover jumptable at 0x0004db3c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        rVar7 = (*(code *)(puVar56 + *(int *)(iVar17 + 0x2be4 + (uVar41 - 4) * 4) + 0x2fea4))();\n        return rVar7;\n      }\n      auStack_144._24_4_ = pbVar36;\n      while( true ) {\n        prVar50 = (re_dfa_t *)((int)in_a3 - (int)pbVar36);\n        if ((uint)auStack_144._32_4_ <= prVar50) {\n          prStack_1e4 = (re_dfastate_t *)\n                        (*(code *)(iVar33 + 0x7eac))((re_match_context_t *)auStack_144,in_a3,&_gp);\n          pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n          if (prStack_1e4 != (re_dfastate_t *)0x0) goto LAB_0004dbbc;\n          prVar50 = (re_dfa_t *)((int)in_a3 - auStack_144._24_4_);\n          pbVar36 = (re_bitset_ptr_t)auStack_144._24_4_;\n        }\n        if ((int)in_a3 < (int)prVar48) {\n          cVar29 = pcStack_1e0\n                   [*(byte *)((int)(((re_dfa_t *)\n                                    (((re_dfa_t *)(prVar50->word_char + -0x18))->word_char + -0x18))\n                                    ->word_char + 0xffffffe8) +\n                             (int)((re_dfa_t *)\n                                  (((re_dfa_t *)\n                                   (((re_dfa_t *)\n                                    ((bitset_word_t *)(auStack_144._4_4_ + 0x60) + -0x18))->\n                                    word_char + -0x18))->word_char + -0x18))->word_char +\n                             0xffffffa0U)];\n        }\n        else {\n          cVar29 = *pcStack_1e0;\n        }\n        if (cVar29 != '\0') break;\n        in_a3 = (re_dfa_t *)((int)in_a3->word_char + iVar11 + -0x60);\n        prStack_16c = in_a3;\n        if (((int)in_a3 < (int)prVar46) || ((int)in_stack_ffffff80 < (int)in_a3)) goto LAB_0004df68;\n      }\n      prVar18 = (re_dfastate_t *)\n                re_string_reconstruct((re_string_t *)auStack_144,(Idx)in_a3,0x7d580);\n      uVar44 = auStack_144._84_4_;\n      prVar39 = (re_dfastate_t *)auStack_144._40_4_;\n      pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n      prStack_1e4 = prVar18;\n      if (prVar18 != (re_dfastate_t *)0x0) goto LAB_0004dbbc;\n      if (((iVar31 == 1) || ((re_dfa_t *)auStack_144._28_4_ == (re_dfa_t *)0x0)) ||\n         (*(re_hashval_t *)auStack_144._8_4_ != 0xffffffff)) {\n        auStack_144._120_4_ = (anon_union_4_2_9a799d16_for___pthread_mutex_s_5)0x0;\n        auStack_144._108_4_ = 0;\n        prVar52 = *(re_dfastate_t **)(auStack_144._84_4_ + 0x24);\n        prStack_1d0 = (re_dfastate_t *)auStack_144._40_4_;\n        auStack_144._104_4_ = 0;\n        auStack_168._0_4_ = (re_dfastate_t *)0x0;\n        if ((prVar52->field_0x34 & 1) != 0) {\n          uVar32 = re_string_context_at\n                             ((re_string_t *)auStack_144,\n                              (Idx)&((re_dfastate_t *)(auStack_144._40_4_ + -0x38))->field_0x37,\n                              auStack_144._88_4_);\n          if ((uVar32 & 1) == 0) {\n            if (uVar32 == 0) goto LAB_0004dd24;\n            if ((uVar32 & 6) == 6) {\n              prVar52 = *(re_dfastate_t **)(uVar44 + 0x30);\n            }\n            else if ((uVar32 & 2) == 0) {\n              if ((uVar32 & 4) == 0) goto LAB_0004dd24;\n              prVar52 = re_acquire_state_context\n                                  ((reg_errcode_t *)auStack_168,(re_dfa_t *)uVar44,\n                                   prVar52->entrance_nodes,uVar32);\n            }\n            else {\n              prVar52 = *(re_dfastate_t **)(uVar44 + 0x2c);\n            }\n          }\n          else {\n            prVar52 = *(re_dfastate_t **)(uVar44 + 0x28);\n          }\n          if (prVar52 == (re_dfastate_t *)0x0) goto code_r0x0004ea7c;\n        }\nLAB_0004dd24:\n        bVar4 = pprVar16 != (re_dfa_t **)0x0;\n        if (((re_dfastate_t **)auStack_144._100_4_ == (re_dfastate_t **)0x0) ||\n           (iVar35 = *(Idx *)(uVar44 + 0x4c),\n           *(re_dfastate_t **)(auStack_144._100_4_ + (int)prVar39 * 4) = prVar52, iVar35 == 0)) {\nLAB_0004dd48:\n          if (*(int *)&prVar52->field_0x34 << 4 < 0) {\n            if (((prVar52->field_0x34 & 1) == 0) ||\n               (IVar21 = check_halt_state_context\n                                   ((re_match_context_t *)auStack_144,\n                                    (re_dfastate_t *)(prVar52->nodes).nelem,\n                                    (Idx)&(prVar52->nodes).elems,prVar39), IVar21 != 0)) {\n              prVar38 = prVar39;\n              bVar5 = bVar30;\n              if (!bVar30) goto LAB_0004e0e4;\n            }\n            else {\n              prVar39 = (re_dfastate_t *)0xffffffff;\n              bVar5 = false;\n            }\n          }\n          else {\n            prVar39 = (re_dfastate_t *)0xffffffff;\n            bVar5 = false;\n          }\n          iVar35 = *(int *)(puVar56 + 0x28244);\n          iVar19 = *(int *)(puVar56 + 0x2829c);\n          prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n          pprStack_1dc = pprVar16;\n          while ((int)prVar38 < (int)auStack_144._56_4_) {\n            prVar51 = (re_dfastate_t *)((int)&prVar38->hash + 1);\n            if ((((int)prVar51 < (int)auStack_144._36_4_) ||\n                ((int)auStack_144._48_4_ <= (int)auStack_144._36_4_)) &&\n               (((int)prVar51 < (int)auStack_144._28_4_ ||\n                ((int)auStack_144._48_4_ <= (int)auStack_144._28_4_)))) {\n              iVar20 = *(int *)&prVar52->field_0x34;\n              prVar48 = (re_dfa_t *)auStack_144._84_4_;\n            }\n            else {\n              auStack_168._0_4_ =\n                   (*(code *)(iVar35 + 0x41e4))\n                             ((re_match_context_t *)auStack_144,\n                              (undefined1 *)((int)&prVar38->hash + 2));\n              if ((re_dfastate_t *)auStack_168._0_4_ != (re_dfastate_t *)0x0) {\n                if ((re_dfastate_t *)auStack_168._0_4_ == (re_dfastate_t *)0xc) goto LAB_0004dbf8;\n                uVar44 = 0x46c;\n                goto LAB_0004ea9c;\n              }\n              iVar20 = *(int *)&prVar52->field_0x34;\n              prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n              prVar48 = (re_dfa_t *)auStack_144._84_4_;\n            }\n            auStack_144._84_4_ = prVar48;\n            if (iVar20 << 5 < 0) {\n              iVar20 = (prVar52->nodes).nelem;\n              if (0 < iVar20) {\n                in_a3 = (re_dfa_t *)0x0;\n                iVar24 = *(int *)(puVar56 + 0x28244);\n                pcVar55 = (code *)(*(int *)(puVar56 + 0x28244) + 0x7ab0);\n                do {\n                  prVar40 = prVar48->nodes;\n                  iVar54 = (prVar52->nodes).elems[(int)in_a3];\n                  uVar32 = *(uint *)&prVar40[iVar54].field_0x4;\n                  if ((uVar32 & 0x800) != 0) {\n                    if ((uVar32 & 0xffc000) != 0) {\n                      uVar15 = (*pcVar55)((re_match_context_t *)auStack_144,prVar38,\n                                          auStack_144._88_4_);\n                      uVar32 = (uVar32 << 8) >> 0x16;\n                      if ((uVar32 & 4) == 0) {\n                        uVar37 = uVar15 & 1;\n                        if ((uVar32 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar37 = uVar32 & 8;\n                        if ((uVar15 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar37 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar32 & 0x20) != 0) && ((uVar15 & 2) == 0)) ||\n                         (((uVar32 & 0x80) != 0 && ((uVar15 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    aVar25.__spins =\n                         (*(code *)(iVar19 + -0x4eb0))\n                                   (prVar40,&prVar48->syntax,iVar54,\n                                    (re_match_context_t *)auStack_144,prVar38);\n                    if (aVar25.__spins != 0) {\n                      if ((int)auStack_144._120_4_ < aVar25.__spins) {\n                        auStack_144._120_4_ = aVar25.__spins;\n                      }\n                      puVar45 = (undefined1 *)\n                                ((int)(re_hashval_t *)auStack_144._40_4_ + aVar25.__spins);\n                      auStack_168._4_4_ =\n                           (*(code *)(iVar24 + 0x43b0))((re_match_context_t *)auStack_144,puVar45);\n                      prVar38 = (re_dfastate_t *)auStack_168._4_4_;\n                      if ((re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0)\n                      goto joined_r0x0004e770;\n                      iVar20 = (int)puVar45 * 4;\n                      pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + iVar20);\n                      prVar38 = *pprVar22;\n                      src2 = prVar48->eclosures + prVar48->nexts[iVar54];\n                      if (prVar38 == (re_dfastate_t *)0x0) {\n                        rStack_160.sifted_states = (re_dfastate_t **)src2->alloc;\n                        rStack_160.limited_states = (re_dfastate_t **)src2->nelem;\n                        rStack_160.last_node = (Idx)src2->elems;\n                        uVar32 = (*pcVar55)((re_match_context_t *)auStack_144,\n                                            (re_dfastate_t *)(puVar45 + -1),auStack_144._88_4_);\n                        prVar38 = re_acquire_state_context\n                                            ((reg_errcode_t *)(auStack_168 + 4),prVar48,\n                                             (re_node_set *)(auStack_168 + 8),uVar32);\n                        *pprVar22 = prVar38;\n                      }\n                      else {\n                        auStack_168._4_4_ =\n                             re_node_set_init_union\n                                       ((re_node_set *)(auStack_168 + 8),prVar38->entrance_nodes,\n                                        src2);\n                        prVar38 = (re_dfastate_t *)auStack_168._4_4_;\n                        if ((re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0)\n                        goto joined_r0x0004e770;\n                        uVar32 = (*pcVar55)((re_match_context_t *)auStack_144,\n                                            (re_dfastate_t *)(puVar45 + -1),auStack_144._88_4_);\n                        pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + iVar20);\n                        prVar38 = re_acquire_state_context\n                                            ((reg_errcode_t *)(auStack_168 + 4),prVar48,\n                                             (re_node_set *)(auStack_168 + 8),uVar32);\n                        pcVar8 = *(code **)(puVar56 + 0x28520);\n                        *pprVar22 = prVar38;\n                        (*pcVar8)(rStack_160.last_node);\n                      }\n                      if ((*(re_dfastate_t **)(auStack_144._100_4_ + iVar20) == (re_dfastate_t *)0x0\n                          ) && (prVar38 = (re_dfastate_t *)auStack_168._4_4_,\n                               (re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar20 = (prVar52->nodes).nelem;\n                    prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n                  }\nLAB_0004e670:\n                  in_a3 = (re_dfa_t *)((int)&((re_string_t *)&in_a3->nodes)->raw_mbs + 1);\n                } while ((int)in_a3 < iVar20);\n              }\n              auStack_168._0_4_ = (re_dfastate_t *)0x0;\n            }\n            auStack_144._40_4_ = (int)&prVar38->hash + 1;\n            uVar32 = (uint)*(byte *)((int)((re_dfa_t *)\n                                          ((bitset_word_t *)(auStack_144._4_4_ + 0x60) + -0x18))->\n                                          word_char + (int)&prVar38[-2].non_eps_nodes);\n            do {\n              if (prVar52->trtable != (re_dfastate_t **)0x0) {\n                prVar49 = prVar52->trtable[uVar32];\nLAB_0004ddf0:\n                if ((re_dfastate_t **)auStack_144._100_4_ != (re_dfastate_t **)0x0)\n                goto LAB_0004ddfc;\n                goto LAB_0004de1c;\n              }\n              pprVar22 = prVar52->word_trtable;\n              if (pprVar22 != (re_dfastate_t **)0x0) {\n                uVar15 = re_string_context_at\n                                   ((re_string_t *)auStack_144,\n                                    (Idx)&((re_dfastate_t *)(auStack_144._40_4_ + -0x38))->\n                                          field_0x37,auStack_144._88_4_);\n                if ((uVar15 & 1) == 0) {\n                  prVar49 = pprVar22[uVar32];\n                }\n                else {\n                  prVar49 = pprVar22[uVar32 + 0x100];\n                }\n                goto LAB_0004ddf0;\n              }\n              iVar20 = (*(code *)(iVar34 + -0x7510))(auStack_144._84_4_,prVar52);\n            } while (iVar20 != 0);\n            auStack_168._0_4_ = (re_dfastate_t *)0xc;\n            prVar38 = (re_dfastate_t *)auStack_168._0_4_;\njoined_r0x0004e770:\n            auStack_168._0_4_ = prVar38;\n            if ((re_dfastate_t **)auStack_144._100_4_ == (re_dfastate_t **)0x0) {\n              pprVar22 = (re_dfastate_t **)0x0;\n              goto LAB_0004dbb4;\n            }\n            prVar49 = (re_dfastate_t *)0x0;\nLAB_0004ddfc:\n            prVar49 = merge_state_with_log\n                                ((reg_errcode_t *)auStack_168,(re_match_context_t *)auStack_144,\n                                 prVar49);\nLAB_0004de1c:\n            prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n            if (prVar49 == (re_dfastate_t *)0x0) {\n              pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n              if ((re_dfastate_t *)auStack_168._0_4_ != (re_dfastate_t *)0x0) goto LAB_0004dbb4;\n              if (((re_dfastate_t **)auStack_144._100_4_ == (re_dfastate_t **)0x0) ||\n                 ((bVar5 && (!bVar30)))) break;\n              in_a3 = (re_dfa_t *)auStack_168;\n              do {\n                bVar3 = false;\n                pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + auStack_144._40_4_ * 4);\n                prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n                do {\n                  prVar49 = (re_dfastate_t *)((int)&prVar38->hash + 1);\n                  pprVar22 = pprVar22 + 1;\n                  if ((int)auStack_144._104_4_ < (int)prVar49) {\n                    if (bVar3) {\n                      auStack_144._40_4_ = prVar38;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar3 = true;\n                  prVar38 = prVar49;\n                } while (*pprVar22 == (re_dfastate_t *)0x0);\n                auStack_144._40_4_ = prVar49;\n                prVar49 = merge_state_with_log\n                                    ((reg_errcode_t *)in_a3,(re_match_context_t *)auStack_144,\n                                     (re_dfastate_t *)0x0);\n                prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n                if ((re_dfastate_t *)auStack_168._0_4_ != (re_dfastate_t *)0x0) {\n                  if (prVar49 == (re_dfastate_t *)0x0) goto LAB_0004e0cc;\n                  break;\n                }\n              } while (prVar49 == (re_dfastate_t *)0x0);\n            }\n            prVar6 = prStack_1d0;\n            if ((bVar4) && (prVar6 = prVar51, prVar52 != prVar49)) {\n              bVar4 = false;\n              prVar6 = prStack_1d0;\n            }\n            prStack_1d0 = prVar6;\n            prVar52 = prVar49;\n            auStack_144._40_4_ = prVar38;\n            if (((prVar49->field_0x34 & 8) != 0) &&\n               (((prVar49->field_0x34 & 1) == 0 ||\n                (IVar21 = check_halt_state_context\n                                    ((re_match_context_t *)auStack_144,\n                                     (re_dfastate_t *)(prVar49->nodes).nelem,\n                                     (Idx)&(prVar49->nodes).elems,prVar38), IVar21 != 0)))) {\n              if (!bVar30) goto LAB_0004e0e4;\n              pprStack_1dc = (re_dfa_t **)0x0;\n              prVar39 = prVar38;\n              bVar5 = bVar30;\n            }\n          }\nLAB_0004e0cc:\n          prVar38 = prVar39;\n          if (pprStack_1dc != (re_dfa_t **)0x0) {\n            *pprStack_1dc = (re_dfa_t *)((int)&prStack_1d0->hash + (int)*pprStack_1dc);\n          }\n        }\n        else {\n          pIVar23 = &(prVar52->nodes).nelem;\n          nodes_1 = &(prVar52->nodes).elems;\n          prVar38 = (re_dfastate_t *)\n                    check_subexp_matching_top\n                              ((re_match_context_t *)auStack_144,(re_node_set *)pIVar23,(Idx)nodes_1\n                               ,(re_node_set *)0x0);\n          auStack_168._0_4_ = prVar38;\n          if (prVar38 == (re_dfastate_t *)0x0) {\n            if ((prVar52->field_0x34 & 2) == 0) {\n              bVar4 = false;\n            }\n            else {\n              prVar38 = (re_dfastate_t *)\n                        transit_state_bkref((re_match_context_t *)auStack_144,(re_node_set *)pIVar23\n                                            ,(re_node_set *)nodes_1);\n              auStack_168._0_4_ = prVar38;\n              if (prVar38 != (re_dfastate_t *)0x0) goto LAB_0004e0e4;\n              bVar4 = false;\n            }\n            goto LAB_0004dd48;\n          }\n        }\nLAB_0004e0e4:\n        pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n        if (prVar38 != (re_dfastate_t *)0xffffffff) {\n          if (prVar38 == (re_dfastate_t *)&SUB_fffffffe) goto LAB_0004dbf8;\n          auStack_144._92_4_ = prVar38;\n          if (((preg->input).valid_len & 0x8000000) == 0) {\n            if (!bVar2) {\n              iVar35 = prVar53->nbackref;\n              goto joined_r0x0004e94c;\n            }\n            pcVar55 = (code *)(*(int *)(puVar56 + 0x28244) + 0x7d8c);\n            prVar39 = *(re_dfastate_t **)(auStack_144._100_4_ + (int)prVar38 * 4);\n            auStack_144._96_4_ =\n                 check_halt_state_context\n                           ((re_match_context_t *)auStack_144,\n                            (re_dfastate_t *)(prVar39->nodes).nelem,(Idx)&(prVar39->nodes).elems,\n                            prVar38);\n            if (((char)prVar53->field_0x58 < '\0') || (prVar53->nbackref != 0)) goto LAB_0004e170;\n          }\n          else {\n            iVar35 = prVar53->nbackref;\njoined_r0x0004e94c:\n            if (iVar35 != 0) {\n              pcVar55 = (code *)(*(int *)(puVar56 + 0x28244) + 0x7d8c);\n              prVar39 = *(re_dfastate_t **)(auStack_144._100_4_ + (int)prVar38 * 4);\n              auStack_144._96_4_ =\n                   check_halt_state_context\n                             ((re_match_context_t *)auStack_144,\n                              (re_dfastate_t *)(prVar39->nodes).nelem,(Idx)&(prVar39->nodes).elems,\n                              prVar38);\nLAB_0004e170:\n              pIVar23 = (Idx *)auStack_144._96_4_;\n              uVar44 = auStack_144._84_4_;\n              if (prVar38 < (re_dfastate_t *)0x3fffffff) {\n                prStack_1f0 = (re_dfastate_t *)((int)&prVar38->hash + 1);\n                pprVar22 = (re_dfastate_t **)(**(code **)(puVar56 + 0x28450))((int)prStack_1f0 * 4);\n                if (pprVar22 == (re_dfastate_t **)0x0) goto LAB_0004dbf8;\n                if (*(Idx *)(uVar44 + 0x4c) == 0) {\n                  rStack_160.limited_states = (re_dfastate_t **)0x0;\n                  rStack_160.limits.alloc = 0;\n                  rStack_160.limits.nelem = 0;\n                  rStack_160.limits.elems = (Idx *)0x0;\n                  rStack_160.sifted_states = pprVar22;\n                  rStack_160.last_node = (Idx)pIVar23;\n                  rStack_160.last_str_idx = (Idx)prVar38;\n                  prStack_1e4 = (re_dfastate_t *)\n                                sift_states_backward\n                                          ((re_match_context_t *)auStack_144,\n                                           (re_sift_context_t *)(auStack_168 + 8));\n                  (**(code **)(puVar56 + 0x28520))(rStack_160.limits.elems);\n                  if (prStack_1e4 == (re_dfastate_t *)0x0) {\n                    if (*pprVar22 == (re_dfastate_t *)0x0) {\n                      (**(code **)(puVar56 + 0x28520))(pprVar22);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar56 + 0x28520))(auStack_144._100_4_);\n                    auStack_144._92_4_ = prVar38;\n                    auStack_144._96_4_ = pIVar23;\n                    auStack_144._100_4_ = pprVar22;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  pprStack_1ec = (re_dfastate_t **)0x0;\n                }\n                else {\n                  pprStack_1ec = (re_dfastate_t **)\n                                 (**(code **)(puVar56 + 0x28450))((int)prStack_1f0 * 4);\n                  if (pprStack_1ec == (re_dfastate_t **)0x0) {\n                    (**(code **)(puVar56 + 0x28520))(pprVar22);\n                    prStack_1e4 = (re_dfastate_t *)0xc;\n                    pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar35 = *(int *)(puVar56 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar56 + 0x283f8))(pprStack_1ec,0,(int)prStack_1f0 * 4);\n                    rStack_160.limits.alloc = 0;\n                    rStack_160.limits.nelem = 0;\n                    rStack_160.limits.elems = (Idx *)0x0;\n                    rStack_160.sifted_states = pprVar22;\n                    rStack_160.limited_states = pprStack_1ec;\n                    rStack_160.last_node = (Idx)pIVar23;\n                    rStack_160.last_str_idx = (Idx)prVar38;\n                    prStack_1e4 = (re_dfastate_t *)\n                                  (*(code *)(iVar35 + -0x2cf4))\n                                            ((re_match_context_t *)auStack_144,auStack_168 + 8);\n                    (**(code **)(puVar56 + 0x28520))(rStack_160.limits.elems);\n                    if (prStack_1e4 != (re_dfastate_t *)0x0) break;\n                    if ((*pprVar22 != (re_dfastate_t *)0x0) ||\n                       (*pprStack_1ec != (re_dfastate_t *)0x0)) {\n                      prStack_1e4 = (re_dfastate_t *)\n                                    merge_state_array((re_dfa_t *)uVar44,pprVar22,pprStack_1ec,\n                                                      (Idx)prStack_1f0);\n                      (**(code **)(puVar56 + 0x28520))(pprStack_1ec);\n                      if (prStack_1e4 != (re_dfastate_t *)0x0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    iVar19 = auStack_144._100_4_ + (int)prStack_1f0 * 4 + -4;\n                    prStack_1f0 = prVar38;\n                    while( true ) {\n                      prVar38 = (re_dfastate_t *)&prStack_1f0[-1].field_0x37;\n                      if (prVar38 == (re_dfastate_t *)0xffffffff) {\n                        (**(code **)(puVar56 + 0x28520))(pprVar22);\n                        (**(code **)(puVar56 + 0x28520))(pprStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar20 = *(int *)(iVar19 + -4);\n                      if ((iVar20 != 0) && ((*(byte *)(iVar20 + 0x34) & 8) != 0)) break;\n                      iVar19 = iVar19 + -4;\n                      prStack_1f0 = prVar38;\n                    }\n                    pIVar23 = (Idx *)(*pcVar55)((re_match_context_t *)auStack_144,\n                                                *(undefined4 *)(iVar20 + 8),iVar20 + 0xc,prVar38);\n                  }\n                }\n                (**(code **)(puVar56 + 0x28520))(pprVar22);\n                (**(code **)(puVar56 + 0x28520))(pprStack_1ec);\n                pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n                if (prStack_1e4 == (re_dfastate_t *)0x1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }\n              prStack_1e4 = (re_dfastate_t *)0xc;\n              goto LAB_0004dbbc;\n            }\n          }\nLAB_0004e7e0:\n          pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n          prStack_1e4 = prVar18;\n          if (prStack_78 == (re_dfa_t *)0x0) goto LAB_0004dbbc;\n          IVar21 = (preg->input).valid_len;\n          if (bVar2) {\n            prVar27 = prStack_74 + 1;\n            do {\n              prVar27->rm_eo = -1;\n              prVar26 = prVar27 + 1;\n              prVar27->rm_so = -1;\n              prVar27 = prVar26;\n            } while (prStack_74 + (int)prStack_78 != prVar26);\n            prStack_74->rm_so = 0;\n            prStack_74->rm_eo = auStack_144._92_4_;\n            if ((IVar21 & 0x8000000) == 0) {\n              if ((char)prVar53->field_0x58 < '\0') {\n                bVar30 = 0 < prVar53->nbackref;\n              }\n              else {\n                bVar30 = false;\n              }\n              prStack_1e4 = (re_dfastate_t *)\n                            set_regs((regex_t *)preg,(re_match_context_t *)auStack_144,\n                                     (size_t)prStack_78,prStack_74,bVar30);\n              pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n              if (prStack_1e4 != (re_dfastate_t *)0x0) goto LAB_0004dbbc;\n              prVar46 = (re_dfa_t *)prStack_74->rm_so;\n            }\n            else {\nLAB_0004e838:\n              prVar46 = (re_dfa_t *)0x0;\n            }\n            prVar48 = (re_dfa_t *)0x0;\n            prVar27 = prStack_74;\n            while( true ) {\n              if (prVar46 != (re_dfa_t *)0xffffffff) {\n                prVar42 = (re_dfa_t *)prVar27->rm_eo;\n                prVar50 = prVar46;\n                prVar43 = prVar42;\n                if (auStack_144[0x4c] != '\0') {\n                  prVar50 = (re_dfa_t *)auStack_144._32_4_;\n                  if ((re_dfa_t *)auStack_144._28_4_ != prVar46) {\n                    prVar50 = (re_dfa_t *)((re_hashval_t *)auStack_144._12_4_)[(int)prVar46];\n                  }\n                  prVar27->rm_so = (regoff_t)prVar50;\n                  prVar43 = (re_dfa_t *)auStack_144._32_4_;\n                  if ((re_dfa_t *)auStack_144._28_4_ != prVar42) {\n                    prVar43 = (re_dfa_t *)((re_hashval_t *)auStack_144._12_4_)[(int)prVar42];\n                  }\n                }\n                prVar27->rm_so =\n                     (int)(((re_dfa_t *)\n                           (((re_dfa_t *)(prVar50->word_char + -0x18))->word_char + -0x18))->\n                           word_char + 0xffffffe8) +\n                     (int)((re_dfa_t *)\n                          (((re_dfa_t *)\n                           (((re_dfa_t *)(prStack_16c->word_char + -0x18))->word_char + -0x18))->\n                           word_char + -0x18))->word_char + 0xffffffa0U;\n                prVar27->rm_eo =\n                     (int)(((re_dfa_t *)\n                           (((re_dfa_t *)(prVar43->word_char + -0x18))->word_char + -0x18))->\n                           word_char + 0xffffffe8) +\n                     (int)((re_dfa_t *)\n                          (((re_dfa_t *)\n                           (((re_dfa_t *)(prStack_16c->word_char + -0x18))->word_char + -0x18))->\n                           word_char + -0x18))->word_char + 0xffffffa0U;\n              }\n              prVar48 = (re_dfa_t *)((int)&prVar48->nodes + 1);\n              prVar27 = prVar27 + 1;\n              if (prVar48 == prStack_78) break;\n              prVar46 = (re_dfa_t *)prVar27->rm_so;\n            }\n            if (0 < iStack_180) {\n              prVar27 = prStack_74 + (int)prStack_78;\n              do {\n                prVar27->rm_so = -1;\n                prVar26 = prVar27 + 1;\n                prVar27->rm_eo = -1;\n                prVar27 = prVar26;\n              } while (prStack_74 + (int)prStack_78->word_char + iStack_180 + -0x60 != prVar26);\n            }\n            pIVar23 = prVar53->subexp_map;\n            pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n            prStack_1e4 = prVar18;\n            if (pIVar23 != (Idx *)0x0) {\n              puVar45 = (undefined1 *)0x0;\n              prVar27 = prStack_74;\n              do {\n                pcVar55 = *(code **)(puVar56 + 0x28520);\n                if (puVar45 == (undefined1 *)((int)&prStack_78[-1].lock + 0x17)) goto LAB_0004dbc0;\n                if ((undefined1 *)*pIVar23 != puVar45) {\n                  prVar27[1].rm_so = prStack_74[(int)((undefined1 *)*pIVar23 + 1)].rm_so;\n                  prVar27[1].rm_eo = prStack_74[*pIVar23 + 1].rm_eo;\n                }\n                puVar45 = puVar45 + 1;\n                pIVar23 = pIVar23 + 1;\n                prVar27 = prVar27 + 1;\n              } while( true );\n            }\n            goto LAB_0004dbbc;\n          }\n          prStack_74->rm_so = 0;\n          prStack_74->rm_eo = auStack_144._92_4_;\n          goto LAB_0004e838;\n        }\nLAB_0004e2d4:\n        match_ctx_clean((re_match_context_t *)auStack_144);\n        in_a3 = prStack_16c;\n      }\n      in_a3 = (re_dfa_t *)((int)in_a3->word_char + iVar11 + -0x60);\n      prStack_16c = in_a3;\n      if (((int)in_a3 < (int)prVar46) ||\n         (pbVar36 = (re_bitset_ptr_t)auStack_144._24_4_, prVar48 = prStack_88,\n         (int)in_stack_ffffff80 < (int)in_a3)) break;\n    } while( true );\n  }" if (parenthesized_expression "(((int)prVar46 <= (int)in_a3) && ((int)in_a3 <= (int)in_stack_ffffff80))" ( (binary_expression "((int)prVar46 <= (int)in_a3) && ((int)in_a3 <= (int)in_stack_ffffff80)" (parenthesized_expression "((int)prVar46 <= (int)in_a3)" ( (binary_expression "(int)prVar46 <= (int)in_a3" (cast_expression "(int)prVar46" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)in_a3" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "((int)in_a3 <= (int)in_stack_ffffff80)" ( (binary_expression "(int)in_a3 <= (int)in_stack_ffffff80" (cast_expression "(int)in_a3" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)in_stack_ffffff80" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (compound_statement "{\n    pprVar16 = &prStack_16c;\n    if (uVar32 != 0) {\n      pprVar16 = (re_dfa_t **)0x0;\n    }\n    iVar33 = *(int *)(puVar56 + 0x28244);\n    iVar17 = *(int *)(puVar56 + 0x27edc);\n    iVar34 = *(int *)(puVar56 + 0x2829c);\n    pbVar36 = (re_bitset_ptr_t)auStack_144._24_4_;\n    prVar48 = prStack_88;\n    do {\n      prStack_88 = prVar48;\n      if (uVar41 - 4 < 5) {\n                    /* WARNING: Could not recover jumptable at 0x0004db3c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        rVar7 = (*(code *)(puVar56 + *(int *)(iVar17 + 0x2be4 + (uVar41 - 4) * 4) + 0x2fea4))();\n        return rVar7;\n      }\n      auStack_144._24_4_ = pbVar36;\n      while( true ) {\n        prVar50 = (re_dfa_t *)((int)in_a3 - (int)pbVar36);\n        if ((uint)auStack_144._32_4_ <= prVar50) {\n          prStack_1e4 = (re_dfastate_t *)\n                        (*(code *)(iVar33 + 0x7eac))((re_match_context_t *)auStack_144,in_a3,&_gp);\n          pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n          if (prStack_1e4 != (re_dfastate_t *)0x0) goto LAB_0004dbbc;\n          prVar50 = (re_dfa_t *)((int)in_a3 - auStack_144._24_4_);\n          pbVar36 = (re_bitset_ptr_t)auStack_144._24_4_;\n        }\n        if ((int)in_a3 < (int)prVar48) {\n          cVar29 = pcStack_1e0\n                   [*(byte *)((int)(((re_dfa_t *)\n                                    (((re_dfa_t *)(prVar50->word_char + -0x18))->word_char + -0x18))\n                                    ->word_char + 0xffffffe8) +\n                             (int)((re_dfa_t *)\n                                  (((re_dfa_t *)\n                                   (((re_dfa_t *)\n                                    ((bitset_word_t *)(auStack_144._4_4_ + 0x60) + -0x18))->\n                                    word_char + -0x18))->word_char + -0x18))->word_char +\n                             0xffffffa0U)];\n        }\n        else {\n          cVar29 = *pcStack_1e0;\n        }\n        if (cVar29 != '\0') break;\n        in_a3 = (re_dfa_t *)((int)in_a3->word_char + iVar11 + -0x60);\n        prStack_16c = in_a3;\n        if (((int)in_a3 < (int)prVar46) || ((int)in_stack_ffffff80 < (int)in_a3)) goto LAB_0004df68;\n      }\n      prVar18 = (re_dfastate_t *)\n                re_string_reconstruct((re_string_t *)auStack_144,(Idx)in_a3,0x7d580);\n      uVar44 = auStack_144._84_4_;\n      prVar39 = (re_dfastate_t *)auStack_144._40_4_;\n      pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n      prStack_1e4 = prVar18;\n      if (prVar18 != (re_dfastate_t *)0x0) goto LAB_0004dbbc;\n      if (((iVar31 == 1) || ((re_dfa_t *)auStack_144._28_4_ == (re_dfa_t *)0x0)) ||\n         (*(re_hashval_t *)auStack_144._8_4_ != 0xffffffff)) {\n        auStack_144._120_4_ = (anon_union_4_2_9a799d16_for___pthread_mutex_s_5)0x0;\n        auStack_144._108_4_ = 0;\n        prVar52 = *(re_dfastate_t **)(auStack_144._84_4_ + 0x24);\n        prStack_1d0 = (re_dfastate_t *)auStack_144._40_4_;\n        auStack_144._104_4_ = 0;\n        auStack_168._0_4_ = (re_dfastate_t *)0x0;\n        if ((prVar52->field_0x34 & 1) != 0) {\n          uVar32 = re_string_context_at\n                             ((re_string_t *)auStack_144,\n                              (Idx)&((re_dfastate_t *)(auStack_144._40_4_ + -0x38))->field_0x37,\n                              auStack_144._88_4_);\n          if ((uVar32 & 1) == 0) {\n            if (uVar32 == 0) goto LAB_0004dd24;\n            if ((uVar32 & 6) == 6) {\n              prVar52 = *(re_dfastate_t **)(uVar44 + 0x30);\n            }\n            else if ((uVar32 & 2) == 0) {\n              if ((uVar32 & 4) == 0) goto LAB_0004dd24;\n              prVar52 = re_acquire_state_context\n                                  ((reg_errcode_t *)auStack_168,(re_dfa_t *)uVar44,\n                                   prVar52->entrance_nodes,uVar32);\n            }\n            else {\n              prVar52 = *(re_dfastate_t **)(uVar44 + 0x2c);\n            }\n          }\n          else {\n            prVar52 = *(re_dfastate_t **)(uVar44 + 0x28);\n          }\n          if (prVar52 == (re_dfastate_t *)0x0) goto code_r0x0004ea7c;\n        }\nLAB_0004dd24:\n        bVar4 = pprVar16 != (re_dfa_t **)0x0;\n        if (((re_dfastate_t **)auStack_144._100_4_ == (re_dfastate_t **)0x0) ||\n           (iVar35 = *(Idx *)(uVar44 + 0x4c),\n           *(re_dfastate_t **)(auStack_144._100_4_ + (int)prVar39 * 4) = prVar52, iVar35 == 0)) {\nLAB_0004dd48:\n          if (*(int *)&prVar52->field_0x34 << 4 < 0) {\n            if (((prVar52->field_0x34 & 1) == 0) ||\n               (IVar21 = check_halt_state_context\n                                   ((re_match_context_t *)auStack_144,\n                                    (re_dfastate_t *)(prVar52->nodes).nelem,\n                                    (Idx)&(prVar52->nodes).elems,prVar39), IVar21 != 0)) {\n              prVar38 = prVar39;\n              bVar5 = bVar30;\n              if (!bVar30) goto LAB_0004e0e4;\n            }\n            else {\n              prVar39 = (re_dfastate_t *)0xffffffff;\n              bVar5 = false;\n            }\n          }\n          else {\n            prVar39 = (re_dfastate_t *)0xffffffff;\n            bVar5 = false;\n          }\n          iVar35 = *(int *)(puVar56 + 0x28244);\n          iVar19 = *(int *)(puVar56 + 0x2829c);\n          prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n          pprStack_1dc = pprVar16;\n          while ((int)prVar38 < (int)auStack_144._56_4_) {\n            prVar51 = (re_dfastate_t *)((int)&prVar38->hash + 1);\n            if ((((int)prVar51 < (int)auStack_144._36_4_) ||\n                ((int)auStack_144._48_4_ <= (int)auStack_144._36_4_)) &&\n               (((int)prVar51 < (int)auStack_144._28_4_ ||\n                ((int)auStack_144._48_4_ <= (int)auStack_144._28_4_)))) {\n              iVar20 = *(int *)&prVar52->field_0x34;\n              prVar48 = (re_dfa_t *)auStack_144._84_4_;\n            }\n            else {\n              auStack_168._0_4_ =\n                   (*(code *)(iVar35 + 0x41e4))\n                             ((re_match_context_t *)auStack_144,\n                              (undefined1 *)((int)&prVar38->hash + 2));\n              if ((re_dfastate_t *)auStack_168._0_4_ != (re_dfastate_t *)0x0) {\n                if ((re_dfastate_t *)auStack_168._0_4_ == (re_dfastate_t *)0xc) goto LAB_0004dbf8;\n                uVar44 = 0x46c;\n                goto LAB_0004ea9c;\n              }\n              iVar20 = *(int *)&prVar52->field_0x34;\n              prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n              prVar48 = (re_dfa_t *)auStack_144._84_4_;\n            }\n            auStack_144._84_4_ = prVar48;\n            if (iVar20 << 5 < 0) {\n              iVar20 = (prVar52->nodes).nelem;\n              if (0 < iVar20) {\n                in_a3 = (re_dfa_t *)0x0;\n                iVar24 = *(int *)(puVar56 + 0x28244);\n                pcVar55 = (code *)(*(int *)(puVar56 + 0x28244) + 0x7ab0);\n                do {\n                  prVar40 = prVar48->nodes;\n                  iVar54 = (prVar52->nodes).elems[(int)in_a3];\n                  uVar32 = *(uint *)&prVar40[iVar54].field_0x4;\n                  if ((uVar32 & 0x800) != 0) {\n                    if ((uVar32 & 0xffc000) != 0) {\n                      uVar15 = (*pcVar55)((re_match_context_t *)auStack_144,prVar38,\n                                          auStack_144._88_4_);\n                      uVar32 = (uVar32 << 8) >> 0x16;\n                      if ((uVar32 & 4) == 0) {\n                        uVar37 = uVar15 & 1;\n                        if ((uVar32 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar37 = uVar32 & 8;\n                        if ((uVar15 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar37 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar32 & 0x20) != 0) && ((uVar15 & 2) == 0)) ||\n                         (((uVar32 & 0x80) != 0 && ((uVar15 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    aVar25.__spins =\n                         (*(code *)(iVar19 + -0x4eb0))\n                                   (prVar40,&prVar48->syntax,iVar54,\n                                    (re_match_context_t *)auStack_144,prVar38);\n                    if (aVar25.__spins != 0) {\n                      if ((int)auStack_144._120_4_ < aVar25.__spins) {\n                        auStack_144._120_4_ = aVar25.__spins;\n                      }\n                      puVar45 = (undefined1 *)\n                                ((int)(re_hashval_t *)auStack_144._40_4_ + aVar25.__spins);\n                      auStack_168._4_4_ =\n                           (*(code *)(iVar24 + 0x43b0))((re_match_context_t *)auStack_144,puVar45);\n                      prVar38 = (re_dfastate_t *)auStack_168._4_4_;\n                      if ((re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0)\n                      goto joined_r0x0004e770;\n                      iVar20 = (int)puVar45 * 4;\n                      pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + iVar20);\n                      prVar38 = *pprVar22;\n                      src2 = prVar48->eclosures + prVar48->nexts[iVar54];\n                      if (prVar38 == (re_dfastate_t *)0x0) {\n                        rStack_160.sifted_states = (re_dfastate_t **)src2->alloc;\n                        rStack_160.limited_states = (re_dfastate_t **)src2->nelem;\n                        rStack_160.last_node = (Idx)src2->elems;\n                        uVar32 = (*pcVar55)((re_match_context_t *)auStack_144,\n                                            (re_dfastate_t *)(puVar45 + -1),auStack_144._88_4_);\n                        prVar38 = re_acquire_state_context\n                                            ((reg_errcode_t *)(auStack_168 + 4),prVar48,\n                                             (re_node_set *)(auStack_168 + 8),uVar32);\n                        *pprVar22 = prVar38;\n                      }\n                      else {\n                        auStack_168._4_4_ =\n                             re_node_set_init_union\n                                       ((re_node_set *)(auStack_168 + 8),prVar38->entrance_nodes,\n                                        src2);\n                        prVar38 = (re_dfastate_t *)auStack_168._4_4_;\n                        if ((re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0)\n                        goto joined_r0x0004e770;\n                        uVar32 = (*pcVar55)((re_match_context_t *)auStack_144,\n                                            (re_dfastate_t *)(puVar45 + -1),auStack_144._88_4_);\n                        pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + iVar20);\n                        prVar38 = re_acquire_state_context\n                                            ((reg_errcode_t *)(auStack_168 + 4),prVar48,\n                                             (re_node_set *)(auStack_168 + 8),uVar32);\n                        pcVar8 = *(code **)(puVar56 + 0x28520);\n                        *pprVar22 = prVar38;\n                        (*pcVar8)(rStack_160.last_node);\n                      }\n                      if ((*(re_dfastate_t **)(auStack_144._100_4_ + iVar20) == (re_dfastate_t *)0x0\n                          ) && (prVar38 = (re_dfastate_t *)auStack_168._4_4_,\n                               (re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar20 = (prVar52->nodes).nelem;\n                    prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n                  }\nLAB_0004e670:\n                  in_a3 = (re_dfa_t *)((int)&((re_string_t *)&in_a3->nodes)->raw_mbs + 1);\n                } while ((int)in_a3 < iVar20);\n              }\n              auStack_168._0_4_ = (re_dfastate_t *)0x0;\n            }\n            auStack_144._40_4_ = (int)&prVar38->hash + 1;\n            uVar32 = (uint)*(byte *)((int)((re_dfa_t *)\n                                          ((bitset_word_t *)(auStack_144._4_4_ + 0x60) + -0x18))->\n                                          word_char + (int)&prVar38[-2].non_eps_nodes);\n            do {\n              if (prVar52->trtable != (re_dfastate_t **)0x0) {\n                prVar49 = prVar52->trtable[uVar32];\nLAB_0004ddf0:\n                if ((re_dfastate_t **)auStack_144._100_4_ != (re_dfastate_t **)0x0)\n                goto LAB_0004ddfc;\n                goto LAB_0004de1c;\n              }\n              pprVar22 = prVar52->word_trtable;\n              if (pprVar22 != (re_dfastate_t **)0x0) {\n                uVar15 = re_string_context_at\n                                   ((re_string_t *)auStack_144,\n                                    (Idx)&((re_dfastate_t *)(auStack_144._40_4_ + -0x38))->\n                                          field_0x37,auStack_144._88_4_);\n                if ((uVar15 & 1) == 0) {\n                  prVar49 = pprVar22[uVar32];\n                }\n                else {\n                  prVar49 = pprVar22[uVar32 + 0x100];\n                }\n                goto LAB_0004ddf0;\n              }\n              iVar20 = (*(code *)(iVar34 + -0x7510))(auStack_144._84_4_,prVar52);\n            } while (iVar20 != 0);\n            auStack_168._0_4_ = (re_dfastate_t *)0xc;\n            prVar38 = (re_dfastate_t *)auStack_168._0_4_;\njoined_r0x0004e770:\n            auStack_168._0_4_ = prVar38;\n            if ((re_dfastate_t **)auStack_144._100_4_ == (re_dfastate_t **)0x0) {\n              pprVar22 = (re_dfastate_t **)0x0;\n              goto LAB_0004dbb4;\n            }\n            prVar49 = (re_dfastate_t *)0x0;\nLAB_0004ddfc:\n            prVar49 = merge_state_with_log\n                                ((reg_errcode_t *)auStack_168,(re_match_context_t *)auStack_144,\n                                 prVar49);\nLAB_0004de1c:\n            prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n            if (prVar49 == (re_dfastate_t *)0x0) {\n              pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n              if ((re_dfastate_t *)auStack_168._0_4_ != (re_dfastate_t *)0x0) goto LAB_0004dbb4;\n              if (((re_dfastate_t **)auStack_144._100_4_ == (re_dfastate_t **)0x0) ||\n                 ((bVar5 && (!bVar30)))) break;\n              in_a3 = (re_dfa_t *)auStack_168;\n              do {\n                bVar3 = false;\n                pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + auStack_144._40_4_ * 4);\n                prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n                do {\n                  prVar49 = (re_dfastate_t *)((int)&prVar38->hash + 1);\n                  pprVar22 = pprVar22 + 1;\n                  if ((int)auStack_144._104_4_ < (int)prVar49) {\n                    if (bVar3) {\n                      auStack_144._40_4_ = prVar38;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar3 = true;\n                  prVar38 = prVar49;\n                } while (*pprVar22 == (re_dfastate_t *)0x0);\n                auStack_144._40_4_ = prVar49;\n                prVar49 = merge_state_with_log\n                                    ((reg_errcode_t *)in_a3,(re_match_context_t *)auStack_144,\n                                     (re_dfastate_t *)0x0);\n                prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n                if ((re_dfastate_t *)auStack_168._0_4_ != (re_dfastate_t *)0x0) {\n                  if (prVar49 == (re_dfastate_t *)0x0) goto LAB_0004e0cc;\n                  break;\n                }\n              } while (prVar49 == (re_dfastate_t *)0x0);\n            }\n            prVar6 = prStack_1d0;\n            if ((bVar4) && (prVar6 = prVar51, prVar52 != prVar49)) {\n              bVar4 = false;\n              prVar6 = prStack_1d0;\n            }\n            prStack_1d0 = prVar6;\n            prVar52 = prVar49;\n            auStack_144._40_4_ = prVar38;\n            if (((prVar49->field_0x34 & 8) != 0) &&\n               (((prVar49->field_0x34 & 1) == 0 ||\n                (IVar21 = check_halt_state_context\n                                    ((re_match_context_t *)auStack_144,\n                                     (re_dfastate_t *)(prVar49->nodes).nelem,\n                                     (Idx)&(prVar49->nodes).elems,prVar38), IVar21 != 0)))) {\n              if (!bVar30) goto LAB_0004e0e4;\n              pprStack_1dc = (re_dfa_t **)0x0;\n              prVar39 = prVar38;\n              bVar5 = bVar30;\n            }\n          }\nLAB_0004e0cc:\n          prVar38 = prVar39;\n          if (pprStack_1dc != (re_dfa_t **)0x0) {\n            *pprStack_1dc = (re_dfa_t *)((int)&prStack_1d0->hash + (int)*pprStack_1dc);\n          }\n        }\n        else {\n          pIVar23 = &(prVar52->nodes).nelem;\n          nodes_1 = &(prVar52->nodes).elems;\n          prVar38 = (re_dfastate_t *)\n                    check_subexp_matching_top\n                              ((re_match_context_t *)auStack_144,(re_node_set *)pIVar23,(Idx)nodes_1\n                               ,(re_node_set *)0x0);\n          auStack_168._0_4_ = prVar38;\n          if (prVar38 == (re_dfastate_t *)0x0) {\n            if ((prVar52->field_0x34 & 2) == 0) {\n              bVar4 = false;\n            }\n            else {\n              prVar38 = (re_dfastate_t *)\n                        transit_state_bkref((re_match_context_t *)auStack_144,(re_node_set *)pIVar23\n                                            ,(re_node_set *)nodes_1);\n              auStack_168._0_4_ = prVar38;\n              if (prVar38 != (re_dfastate_t *)0x0) goto LAB_0004e0e4;\n              bVar4 = false;\n            }\n            goto LAB_0004dd48;\n          }\n        }\nLAB_0004e0e4:\n        pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n        if (prVar38 != (re_dfastate_t *)0xffffffff) {\n          if (prVar38 == (re_dfastate_t *)&SUB_fffffffe) goto LAB_0004dbf8;\n          auStack_144._92_4_ = prVar38;\n          if (((preg->input).valid_len & 0x8000000) == 0) {\n            if (!bVar2) {\n              iVar35 = prVar53->nbackref;\n              goto joined_r0x0004e94c;\n            }\n            pcVar55 = (code *)(*(int *)(puVar56 + 0x28244) + 0x7d8c);\n            prVar39 = *(re_dfastate_t **)(auStack_144._100_4_ + (int)prVar38 * 4);\n            auStack_144._96_4_ =\n                 check_halt_state_context\n                           ((re_match_context_t *)auStack_144,\n                            (re_dfastate_t *)(prVar39->nodes).nelem,(Idx)&(prVar39->nodes).elems,\n                            prVar38);\n            if (((char)prVar53->field_0x58 < '\0') || (prVar53->nbackref != 0)) goto LAB_0004e170;\n          }\n          else {\n            iVar35 = prVar53->nbackref;\njoined_r0x0004e94c:\n            if (iVar35 != 0) {\n              pcVar55 = (code *)(*(int *)(puVar56 + 0x28244) + 0x7d8c);\n              prVar39 = *(re_dfastate_t **)(auStack_144._100_4_ + (int)prVar38 * 4);\n              auStack_144._96_4_ =\n                   check_halt_state_context\n                             ((re_match_context_t *)auStack_144,\n                              (re_dfastate_t *)(prVar39->nodes).nelem,(Idx)&(prVar39->nodes).elems,\n                              prVar38);\nLAB_0004e170:\n              pIVar23 = (Idx *)auStack_144._96_4_;\n              uVar44 = auStack_144._84_4_;\n              if (prVar38 < (re_dfastate_t *)0x3fffffff) {\n                prStack_1f0 = (re_dfastate_t *)((int)&prVar38->hash + 1);\n                pprVar22 = (re_dfastate_t **)(**(code **)(puVar56 + 0x28450))((int)prStack_1f0 * 4);\n                if (pprVar22 == (re_dfastate_t **)0x0) goto LAB_0004dbf8;\n                if (*(Idx *)(uVar44 + 0x4c) == 0) {\n                  rStack_160.limited_states = (re_dfastate_t **)0x0;\n                  rStack_160.limits.alloc = 0;\n                  rStack_160.limits.nelem = 0;\n                  rStack_160.limits.elems = (Idx *)0x0;\n                  rStack_160.sifted_states = pprVar22;\n                  rStack_160.last_node = (Idx)pIVar23;\n                  rStack_160.last_str_idx = (Idx)prVar38;\n                  prStack_1e4 = (re_dfastate_t *)\n                                sift_states_backward\n                                          ((re_match_context_t *)auStack_144,\n                                           (re_sift_context_t *)(auStack_168 + 8));\n                  (**(code **)(puVar56 + 0x28520))(rStack_160.limits.elems);\n                  if (prStack_1e4 == (re_dfastate_t *)0x0) {\n                    if (*pprVar22 == (re_dfastate_t *)0x0) {\n                      (**(code **)(puVar56 + 0x28520))(pprVar22);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar56 + 0x28520))(auStack_144._100_4_);\n                    auStack_144._92_4_ = prVar38;\n                    auStack_144._96_4_ = pIVar23;\n                    auStack_144._100_4_ = pprVar22;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  pprStack_1ec = (re_dfastate_t **)0x0;\n                }\n                else {\n                  pprStack_1ec = (re_dfastate_t **)\n                                 (**(code **)(puVar56 + 0x28450))((int)prStack_1f0 * 4);\n                  if (pprStack_1ec == (re_dfastate_t **)0x0) {\n                    (**(code **)(puVar56 + 0x28520))(pprVar22);\n                    prStack_1e4 = (re_dfastate_t *)0xc;\n                    pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar35 = *(int *)(puVar56 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar56 + 0x283f8))(pprStack_1ec,0,(int)prStack_1f0 * 4);\n                    rStack_160.limits.alloc = 0;\n                    rStack_160.limits.nelem = 0;\n                    rStack_160.limits.elems = (Idx *)0x0;\n                    rStack_160.sifted_states = pprVar22;\n                    rStack_160.limited_states = pprStack_1ec;\n                    rStack_160.last_node = (Idx)pIVar23;\n                    rStack_160.last_str_idx = (Idx)prVar38;\n                    prStack_1e4 = (re_dfastate_t *)\n                                  (*(code *)(iVar35 + -0x2cf4))\n                                            ((re_match_context_t *)auStack_144,auStack_168 + 8);\n                    (**(code **)(puVar56 + 0x28520))(rStack_160.limits.elems);\n                    if (prStack_1e4 != (re_dfastate_t *)0x0) break;\n                    if ((*pprVar22 != (re_dfastate_t *)0x0) ||\n                       (*pprStack_1ec != (re_dfastate_t *)0x0)) {\n                      prStack_1e4 = (re_dfastate_t *)\n                                    merge_state_array((re_dfa_t *)uVar44,pprVar22,pprStack_1ec,\n                                                      (Idx)prStack_1f0);\n                      (**(code **)(puVar56 + 0x28520))(pprStack_1ec);\n                      if (prStack_1e4 != (re_dfastate_t *)0x0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    iVar19 = auStack_144._100_4_ + (int)prStack_1f0 * 4 + -4;\n                    prStack_1f0 = prVar38;\n                    while( true ) {\n                      prVar38 = (re_dfastate_t *)&prStack_1f0[-1].field_0x37;\n                      if (prVar38 == (re_dfastate_t *)0xffffffff) {\n                        (**(code **)(puVar56 + 0x28520))(pprVar22);\n                        (**(code **)(puVar56 + 0x28520))(pprStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar20 = *(int *)(iVar19 + -4);\n                      if ((iVar20 != 0) && ((*(byte *)(iVar20 + 0x34) & 8) != 0)) break;\n                      iVar19 = iVar19 + -4;\n                      prStack_1f0 = prVar38;\n                    }\n                    pIVar23 = (Idx *)(*pcVar55)((re_match_context_t *)auStack_144,\n                                                *(undefined4 *)(iVar20 + 8),iVar20 + 0xc,prVar38);\n                  }\n                }\n                (**(code **)(puVar56 + 0x28520))(pprVar22);\n                (**(code **)(puVar56 + 0x28520))(pprStack_1ec);\n                pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n                if (prStack_1e4 == (re_dfastate_t *)0x1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }\n              prStack_1e4 = (re_dfastate_t *)0xc;\n              goto LAB_0004dbbc;\n            }\n          }\nLAB_0004e7e0:\n          pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n          prStack_1e4 = prVar18;\n          if (prStack_78 == (re_dfa_t *)0x0) goto LAB_0004dbbc;\n          IVar21 = (preg->input).valid_len;\n          if (bVar2) {\n            prVar27 = prStack_74 + 1;\n            do {\n              prVar27->rm_eo = -1;\n              prVar26 = prVar27 + 1;\n              prVar27->rm_so = -1;\n              prVar27 = prVar26;\n            } while (prStack_74 + (int)prStack_78 != prVar26);\n            prStack_74->rm_so = 0;\n            prStack_74->rm_eo = auStack_144._92_4_;\n            if ((IVar21 & 0x8000000) == 0) {\n              if ((char)prVar53->field_0x58 < '\0') {\n                bVar30 = 0 < prVar53->nbackref;\n              }\n              else {\n                bVar30 = false;\n              }\n              prStack_1e4 = (re_dfastate_t *)\n                            set_regs((regex_t *)preg,(re_match_context_t *)auStack_144,\n                                     (size_t)prStack_78,prStack_74,bVar30);\n              pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n              if (prStack_1e4 != (re_dfastate_t *)0x0) goto LAB_0004dbbc;\n              prVar46 = (re_dfa_t *)prStack_74->rm_so;\n            }\n            else {\nLAB_0004e838:\n              prVar46 = (re_dfa_t *)0x0;\n            }\n            prVar48 = (re_dfa_t *)0x0;\n            prVar27 = prStack_74;\n            while( true ) {\n              if (prVar46 != (re_dfa_t *)0xffffffff) {\n                prVar42 = (re_dfa_t *)prVar27->rm_eo;\n                prVar50 = prVar46;\n                prVar43 = prVar42;\n                if (auStack_144[0x4c] != '\0') {\n                  prVar50 = (re_dfa_t *)auStack_144._32_4_;\n                  if ((re_dfa_t *)auStack_144._28_4_ != prVar46) {\n                    prVar50 = (re_dfa_t *)((re_hashval_t *)auStack_144._12_4_)[(int)prVar46];\n                  }\n                  prVar27->rm_so = (regoff_t)prVar50;\n                  prVar43 = (re_dfa_t *)auStack_144._32_4_;\n                  if ((re_dfa_t *)auStack_144._28_4_ != prVar42) {\n                    prVar43 = (re_dfa_t *)((re_hashval_t *)auStack_144._12_4_)[(int)prVar42];\n                  }\n                }\n                prVar27->rm_so =\n                     (int)(((re_dfa_t *)\n                           (((re_dfa_t *)(prVar50->word_char + -0x18))->word_char + -0x18))->\n                           word_char + 0xffffffe8) +\n                     (int)((re_dfa_t *)\n                          (((re_dfa_t *)\n                           (((re_dfa_t *)(prStack_16c->word_char + -0x18))->word_char + -0x18))->\n                           word_char + -0x18))->word_char + 0xffffffa0U;\n                prVar27->rm_eo =\n                     (int)(((re_dfa_t *)\n                           (((re_dfa_t *)(prVar43->word_char + -0x18))->word_char + -0x18))->\n                           word_char + 0xffffffe8) +\n                     (int)((re_dfa_t *)\n                          (((re_dfa_t *)\n                           (((re_dfa_t *)(prStack_16c->word_char + -0x18))->word_char + -0x18))->\n                           word_char + -0x18))->word_char + 0xffffffa0U;\n              }\n              prVar48 = (re_dfa_t *)((int)&prVar48->nodes + 1);\n              prVar27 = prVar27 + 1;\n              if (prVar48 == prStack_78) break;\n              prVar46 = (re_dfa_t *)prVar27->rm_so;\n            }\n            if (0 < iStack_180) {\n              prVar27 = prStack_74 + (int)prStack_78;\n              do {\n                prVar27->rm_so = -1;\n                prVar26 = prVar27 + 1;\n                prVar27->rm_eo = -1;\n                prVar27 = prVar26;\n              } while (prStack_74 + (int)prStack_78->word_char + iStack_180 + -0x60 != prVar26);\n            }\n            pIVar23 = prVar53->subexp_map;\n            pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n            prStack_1e4 = prVar18;\n            if (pIVar23 != (Idx *)0x0) {\n              puVar45 = (undefined1 *)0x0;\n              prVar27 = prStack_74;\n              do {\n                pcVar55 = *(code **)(puVar56 + 0x28520);\n                if (puVar45 == (undefined1 *)((int)&prStack_78[-1].lock + 0x17)) goto LAB_0004dbc0;\n                if ((undefined1 *)*pIVar23 != puVar45) {\n                  prVar27[1].rm_so = prStack_74[(int)((undefined1 *)*pIVar23 + 1)].rm_so;\n                  prVar27[1].rm_eo = prStack_74[*pIVar23 + 1].rm_eo;\n                }\n                puVar45 = puVar45 + 1;\n                pIVar23 = pIVar23 + 1;\n                prVar27 = prVar27 + 1;\n              } while( true );\n            }\n            goto LAB_0004dbbc;\n          }\n          prStack_74->rm_so = 0;\n          prStack_74->rm_eo = auStack_144._92_4_;\n          goto LAB_0004e838;\n        }\nLAB_0004e2d4:\n        match_ctx_clean((re_match_context_t *)auStack_144);\n        in_a3 = prStack_16c;\n      }\n      in_a3 = (re_dfa_t *)((int)in_a3->word_char + iVar11 + -0x60);\n      prStack_16c = in_a3;\n      if (((int)in_a3 < (int)prVar46) ||\n         (pbVar36 = (re_bitset_ptr_t)auStack_144._24_4_, prVar48 = prStack_88,\n         (int)in_stack_ffffff80 < (int)in_a3)) break;\n    } while( true );\n  }" { (expression_statement "pprVar16 = &prStack_16c;" (assignment_expression "pprVar16 = &prStack_16c" identifier = (pointer_expression "&prStack_16c" & identifier)) ;) (if_statement "if (uVar32 != 0) {\n      pprVar16 = (re_dfa_t **)0x0;\n    }" if (parenthesized_expression "(uVar32 != 0)" ( (binary_expression "uVar32 != 0" identifier != number_literal) )) (compound_statement "{\n      pprVar16 = (re_dfa_t **)0x0;\n    }" { (expression_statement "pprVar16 = (re_dfa_t **)0x0;" (assignment_expression "pprVar16 = (re_dfa_t **)0x0" identifier = (cast_expression "(re_dfa_t **)0x0" ( (type_descriptor "re_dfa_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) })) (expression_statement "iVar33 = *(int *)(puVar56 + 0x28244);" (assignment_expression "iVar33 = *(int *)(puVar56 + 0x28244)" identifier = (pointer_expression "*(int *)(puVar56 + 0x28244)" * (cast_expression "(int *)(puVar56 + 0x28244)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x28244)" ( (binary_expression "puVar56 + 0x28244" identifier + number_literal) ))))) ;) (expression_statement "iVar17 = *(int *)(puVar56 + 0x27edc);" (assignment_expression "iVar17 = *(int *)(puVar56 + 0x27edc)" identifier = (pointer_expression "*(int *)(puVar56 + 0x27edc)" * (cast_expression "(int *)(puVar56 + 0x27edc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x27edc)" ( (binary_expression "puVar56 + 0x27edc" identifier + number_literal) ))))) ;) (expression_statement "iVar34 = *(int *)(puVar56 + 0x2829c);" (assignment_expression "iVar34 = *(int *)(puVar56 + 0x2829c)" identifier = (pointer_expression "*(int *)(puVar56 + 0x2829c)" * (cast_expression "(int *)(puVar56 + 0x2829c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2829c)" ( (binary_expression "puVar56 + 0x2829c" identifier + number_literal) ))))) ;) (expression_statement "pbVar36 = (re_bitset_ptr_t)auStack_144._24_4_;" (assignment_expression "pbVar36 = (re_bitset_ptr_t)auStack_144._24_4_" identifier = (cast_expression "(re_bitset_ptr_t)auStack_144._24_4_" ( (type_descriptor "re_bitset_ptr_t" type_identifier) ) (field_expression "auStack_144._24_4_" identifier . field_identifier))) ;) (expression_statement "prVar48 = prStack_88;" (assignment_expression "prVar48 = prStack_88" identifier = identifier) ;) (do_statement "do {\n      prStack_88 = prVar48;\n      if (uVar41 - 4 < 5) {\n                    /* WARNING: Could not recover jumptable at 0x0004db3c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        rVar7 = (*(code *)(puVar56 + *(int *)(iVar17 + 0x2be4 + (uVar41 - 4) * 4) + 0x2fea4))();\n        return rVar7;\n      }\n      auStack_144._24_4_ = pbVar36;\n      while( true ) {\n        prVar50 = (re_dfa_t *)((int)in_a3 - (int)pbVar36);\n        if ((uint)auStack_144._32_4_ <= prVar50) {\n          prStack_1e4 = (re_dfastate_t *)\n                        (*(code *)(iVar33 + 0x7eac))((re_match_context_t *)auStack_144,in_a3,&_gp);\n          pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n          if (prStack_1e4 != (re_dfastate_t *)0x0) goto LAB_0004dbbc;\n          prVar50 = (re_dfa_t *)((int)in_a3 - auStack_144._24_4_);\n          pbVar36 = (re_bitset_ptr_t)auStack_144._24_4_;\n        }\n        if ((int)in_a3 < (int)prVar48) {\n          cVar29 = pcStack_1e0\n                   [*(byte *)((int)(((re_dfa_t *)\n                                    (((re_dfa_t *)(prVar50->word_char + -0x18))->word_char + -0x18))\n                                    ->word_char + 0xffffffe8) +\n                             (int)((re_dfa_t *)\n                                  (((re_dfa_t *)\n                                   (((re_dfa_t *)\n                                    ((bitset_word_t *)(auStack_144._4_4_ + 0x60) + -0x18))->\n                                    word_char + -0x18))->word_char + -0x18))->word_char +\n                             0xffffffa0U)];\n        }\n        else {\n          cVar29 = *pcStack_1e0;\n        }\n        if (cVar29 != '\0') break;\n        in_a3 = (re_dfa_t *)((int)in_a3->word_char + iVar11 + -0x60);\n        prStack_16c = in_a3;\n        if (((int)in_a3 < (int)prVar46) || ((int)in_stack_ffffff80 < (int)in_a3)) goto LAB_0004df68;\n      }\n      prVar18 = (re_dfastate_t *)\n                re_string_reconstruct((re_string_t *)auStack_144,(Idx)in_a3,0x7d580);\n      uVar44 = auStack_144._84_4_;\n      prVar39 = (re_dfastate_t *)auStack_144._40_4_;\n      pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n      prStack_1e4 = prVar18;\n      if (prVar18 != (re_dfastate_t *)0x0) goto LAB_0004dbbc;\n      if (((iVar31 == 1) || ((re_dfa_t *)auStack_144._28_4_ == (re_dfa_t *)0x0)) ||\n         (*(re_hashval_t *)auStack_144._8_4_ != 0xffffffff)) {\n        auStack_144._120_4_ = (anon_union_4_2_9a799d16_for___pthread_mutex_s_5)0x0;\n        auStack_144._108_4_ = 0;\n        prVar52 = *(re_dfastate_t **)(auStack_144._84_4_ + 0x24);\n        prStack_1d0 = (re_dfastate_t *)auStack_144._40_4_;\n        auStack_144._104_4_ = 0;\n        auStack_168._0_4_ = (re_dfastate_t *)0x0;\n        if ((prVar52->field_0x34 & 1) != 0) {\n          uVar32 = re_string_context_at\n                             ((re_string_t *)auStack_144,\n                              (Idx)&((re_dfastate_t *)(auStack_144._40_4_ + -0x38))->field_0x37,\n                              auStack_144._88_4_);\n          if ((uVar32 & 1) == 0) {\n            if (uVar32 == 0) goto LAB_0004dd24;\n            if ((uVar32 & 6) == 6) {\n              prVar52 = *(re_dfastate_t **)(uVar44 + 0x30);\n            }\n            else if ((uVar32 & 2) == 0) {\n              if ((uVar32 & 4) == 0) goto LAB_0004dd24;\n              prVar52 = re_acquire_state_context\n                                  ((reg_errcode_t *)auStack_168,(re_dfa_t *)uVar44,\n                                   prVar52->entrance_nodes,uVar32);\n            }\n            else {\n              prVar52 = *(re_dfastate_t **)(uVar44 + 0x2c);\n            }\n          }\n          else {\n            prVar52 = *(re_dfastate_t **)(uVar44 + 0x28);\n          }\n          if (prVar52 == (re_dfastate_t *)0x0) goto code_r0x0004ea7c;\n        }\nLAB_0004dd24:\n        bVar4 = pprVar16 != (re_dfa_t **)0x0;\n        if (((re_dfastate_t **)auStack_144._100_4_ == (re_dfastate_t **)0x0) ||\n           (iVar35 = *(Idx *)(uVar44 + 0x4c),\n           *(re_dfastate_t **)(auStack_144._100_4_ + (int)prVar39 * 4) = prVar52, iVar35 == 0)) {\nLAB_0004dd48:\n          if (*(int *)&prVar52->field_0x34 << 4 < 0) {\n            if (((prVar52->field_0x34 & 1) == 0) ||\n               (IVar21 = check_halt_state_context\n                                   ((re_match_context_t *)auStack_144,\n                                    (re_dfastate_t *)(prVar52->nodes).nelem,\n                                    (Idx)&(prVar52->nodes).elems,prVar39), IVar21 != 0)) {\n              prVar38 = prVar39;\n              bVar5 = bVar30;\n              if (!bVar30) goto LAB_0004e0e4;\n            }\n            else {\n              prVar39 = (re_dfastate_t *)0xffffffff;\n              bVar5 = false;\n            }\n          }\n          else {\n            prVar39 = (re_dfastate_t *)0xffffffff;\n            bVar5 = false;\n          }\n          iVar35 = *(int *)(puVar56 + 0x28244);\n          iVar19 = *(int *)(puVar56 + 0x2829c);\n          prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n          pprStack_1dc = pprVar16;\n          while ((int)prVar38 < (int)auStack_144._56_4_) {\n            prVar51 = (re_dfastate_t *)((int)&prVar38->hash + 1);\n            if ((((int)prVar51 < (int)auStack_144._36_4_) ||\n                ((int)auStack_144._48_4_ <= (int)auStack_144._36_4_)) &&\n               (((int)prVar51 < (int)auStack_144._28_4_ ||\n                ((int)auStack_144._48_4_ <= (int)auStack_144._28_4_)))) {\n              iVar20 = *(int *)&prVar52->field_0x34;\n              prVar48 = (re_dfa_t *)auStack_144._84_4_;\n            }\n            else {\n              auStack_168._0_4_ =\n                   (*(code *)(iVar35 + 0x41e4))\n                             ((re_match_context_t *)auStack_144,\n                              (undefined1 *)((int)&prVar38->hash + 2));\n              if ((re_dfastate_t *)auStack_168._0_4_ != (re_dfastate_t *)0x0) {\n                if ((re_dfastate_t *)auStack_168._0_4_ == (re_dfastate_t *)0xc) goto LAB_0004dbf8;\n                uVar44 = 0x46c;\n                goto LAB_0004ea9c;\n              }\n              iVar20 = *(int *)&prVar52->field_0x34;\n              prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n              prVar48 = (re_dfa_t *)auStack_144._84_4_;\n            }\n            auStack_144._84_4_ = prVar48;\n            if (iVar20 << 5 < 0) {\n              iVar20 = (prVar52->nodes).nelem;\n              if (0 < iVar20) {\n                in_a3 = (re_dfa_t *)0x0;\n                iVar24 = *(int *)(puVar56 + 0x28244);\n                pcVar55 = (code *)(*(int *)(puVar56 + 0x28244) + 0x7ab0);\n                do {\n                  prVar40 = prVar48->nodes;\n                  iVar54 = (prVar52->nodes).elems[(int)in_a3];\n                  uVar32 = *(uint *)&prVar40[iVar54].field_0x4;\n                  if ((uVar32 & 0x800) != 0) {\n                    if ((uVar32 & 0xffc000) != 0) {\n                      uVar15 = (*pcVar55)((re_match_context_t *)auStack_144,prVar38,\n                                          auStack_144._88_4_);\n                      uVar32 = (uVar32 << 8) >> 0x16;\n                      if ((uVar32 & 4) == 0) {\n                        uVar37 = uVar15 & 1;\n                        if ((uVar32 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar37 = uVar32 & 8;\n                        if ((uVar15 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar37 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar32 & 0x20) != 0) && ((uVar15 & 2) == 0)) ||\n                         (((uVar32 & 0x80) != 0 && ((uVar15 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    aVar25.__spins =\n                         (*(code *)(iVar19 + -0x4eb0))\n                                   (prVar40,&prVar48->syntax,iVar54,\n                                    (re_match_context_t *)auStack_144,prVar38);\n                    if (aVar25.__spins != 0) {\n                      if ((int)auStack_144._120_4_ < aVar25.__spins) {\n                        auStack_144._120_4_ = aVar25.__spins;\n                      }\n                      puVar45 = (undefined1 *)\n                                ((int)(re_hashval_t *)auStack_144._40_4_ + aVar25.__spins);\n                      auStack_168._4_4_ =\n                           (*(code *)(iVar24 + 0x43b0))((re_match_context_t *)auStack_144,puVar45);\n                      prVar38 = (re_dfastate_t *)auStack_168._4_4_;\n                      if ((re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0)\n                      goto joined_r0x0004e770;\n                      iVar20 = (int)puVar45 * 4;\n                      pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + iVar20);\n                      prVar38 = *pprVar22;\n                      src2 = prVar48->eclosures + prVar48->nexts[iVar54];\n                      if (prVar38 == (re_dfastate_t *)0x0) {\n                        rStack_160.sifted_states = (re_dfastate_t **)src2->alloc;\n                        rStack_160.limited_states = (re_dfastate_t **)src2->nelem;\n                        rStack_160.last_node = (Idx)src2->elems;\n                        uVar32 = (*pcVar55)((re_match_context_t *)auStack_144,\n                                            (re_dfastate_t *)(puVar45 + -1),auStack_144._88_4_);\n                        prVar38 = re_acquire_state_context\n                                            ((reg_errcode_t *)(auStack_168 + 4),prVar48,\n                                             (re_node_set *)(auStack_168 + 8),uVar32);\n                        *pprVar22 = prVar38;\n                      }\n                      else {\n                        auStack_168._4_4_ =\n                             re_node_set_init_union\n                                       ((re_node_set *)(auStack_168 + 8),prVar38->entrance_nodes,\n                                        src2);\n                        prVar38 = (re_dfastate_t *)auStack_168._4_4_;\n                        if ((re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0)\n                        goto joined_r0x0004e770;\n                        uVar32 = (*pcVar55)((re_match_context_t *)auStack_144,\n                                            (re_dfastate_t *)(puVar45 + -1),auStack_144._88_4_);\n                        pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + iVar20);\n                        prVar38 = re_acquire_state_context\n                                            ((reg_errcode_t *)(auStack_168 + 4),prVar48,\n                                             (re_node_set *)(auStack_168 + 8),uVar32);\n                        pcVar8 = *(code **)(puVar56 + 0x28520);\n                        *pprVar22 = prVar38;\n                        (*pcVar8)(rStack_160.last_node);\n                      }\n                      if ((*(re_dfastate_t **)(auStack_144._100_4_ + iVar20) == (re_dfastate_t *)0x0\n                          ) && (prVar38 = (re_dfastate_t *)auStack_168._4_4_,\n                               (re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar20 = (prVar52->nodes).nelem;\n                    prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n                  }\nLAB_0004e670:\n                  in_a3 = (re_dfa_t *)((int)&((re_string_t *)&in_a3->nodes)->raw_mbs + 1);\n                } while ((int)in_a3 < iVar20);\n              }\n              auStack_168._0_4_ = (re_dfastate_t *)0x0;\n            }\n            auStack_144._40_4_ = (int)&prVar38->hash + 1;\n            uVar32 = (uint)*(byte *)((int)((re_dfa_t *)\n                                          ((bitset_word_t *)(auStack_144._4_4_ + 0x60) + -0x18))->\n                                          word_char + (int)&prVar38[-2].non_eps_nodes);\n            do {\n              if (prVar52->trtable != (re_dfastate_t **)0x0) {\n                prVar49 = prVar52->trtable[uVar32];\nLAB_0004ddf0:\n                if ((re_dfastate_t **)auStack_144._100_4_ != (re_dfastate_t **)0x0)\n                goto LAB_0004ddfc;\n                goto LAB_0004de1c;\n              }\n              pprVar22 = prVar52->word_trtable;\n              if (pprVar22 != (re_dfastate_t **)0x0) {\n                uVar15 = re_string_context_at\n                                   ((re_string_t *)auStack_144,\n                                    (Idx)&((re_dfastate_t *)(auStack_144._40_4_ + -0x38))->\n                                          field_0x37,auStack_144._88_4_);\n                if ((uVar15 & 1) == 0) {\n                  prVar49 = pprVar22[uVar32];\n                }\n                else {\n                  prVar49 = pprVar22[uVar32 + 0x100];\n                }\n                goto LAB_0004ddf0;\n              }\n              iVar20 = (*(code *)(iVar34 + -0x7510))(auStack_144._84_4_,prVar52);\n            } while (iVar20 != 0);\n            auStack_168._0_4_ = (re_dfastate_t *)0xc;\n            prVar38 = (re_dfastate_t *)auStack_168._0_4_;\njoined_r0x0004e770:\n            auStack_168._0_4_ = prVar38;\n            if ((re_dfastate_t **)auStack_144._100_4_ == (re_dfastate_t **)0x0) {\n              pprVar22 = (re_dfastate_t **)0x0;\n              goto LAB_0004dbb4;\n            }\n            prVar49 = (re_dfastate_t *)0x0;\nLAB_0004ddfc:\n            prVar49 = merge_state_with_log\n                                ((reg_errcode_t *)auStack_168,(re_match_context_t *)auStack_144,\n                                 prVar49);\nLAB_0004de1c:\n            prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n            if (prVar49 == (re_dfastate_t *)0x0) {\n              pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n              if ((re_dfastate_t *)auStack_168._0_4_ != (re_dfastate_t *)0x0) goto LAB_0004dbb4;\n              if (((re_dfastate_t **)auStack_144._100_4_ == (re_dfastate_t **)0x0) ||\n                 ((bVar5 && (!bVar30)))) break;\n              in_a3 = (re_dfa_t *)auStack_168;\n              do {\n                bVar3 = false;\n                pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + auStack_144._40_4_ * 4);\n                prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n                do {\n                  prVar49 = (re_dfastate_t *)((int)&prVar38->hash + 1);\n                  pprVar22 = pprVar22 + 1;\n                  if ((int)auStack_144._104_4_ < (int)prVar49) {\n                    if (bVar3) {\n                      auStack_144._40_4_ = prVar38;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar3 = true;\n                  prVar38 = prVar49;\n                } while (*pprVar22 == (re_dfastate_t *)0x0);\n                auStack_144._40_4_ = prVar49;\n                prVar49 = merge_state_with_log\n                                    ((reg_errcode_t *)in_a3,(re_match_context_t *)auStack_144,\n                                     (re_dfastate_t *)0x0);\n                prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n                if ((re_dfastate_t *)auStack_168._0_4_ != (re_dfastate_t *)0x0) {\n                  if (prVar49 == (re_dfastate_t *)0x0) goto LAB_0004e0cc;\n                  break;\n                }\n              } while (prVar49 == (re_dfastate_t *)0x0);\n            }\n            prVar6 = prStack_1d0;\n            if ((bVar4) && (prVar6 = prVar51, prVar52 != prVar49)) {\n              bVar4 = false;\n              prVar6 = prStack_1d0;\n            }\n            prStack_1d0 = prVar6;\n            prVar52 = prVar49;\n            auStack_144._40_4_ = prVar38;\n            if (((prVar49->field_0x34 & 8) != 0) &&\n               (((prVar49->field_0x34 & 1) == 0 ||\n                (IVar21 = check_halt_state_context\n                                    ((re_match_context_t *)auStack_144,\n                                     (re_dfastate_t *)(prVar49->nodes).nelem,\n                                     (Idx)&(prVar49->nodes).elems,prVar38), IVar21 != 0)))) {\n              if (!bVar30) goto LAB_0004e0e4;\n              pprStack_1dc = (re_dfa_t **)0x0;\n              prVar39 = prVar38;\n              bVar5 = bVar30;\n            }\n          }\nLAB_0004e0cc:\n          prVar38 = prVar39;\n          if (pprStack_1dc != (re_dfa_t **)0x0) {\n            *pprStack_1dc = (re_dfa_t *)((int)&prStack_1d0->hash + (int)*pprStack_1dc);\n          }\n        }\n        else {\n          pIVar23 = &(prVar52->nodes).nelem;\n          nodes_1 = &(prVar52->nodes).elems;\n          prVar38 = (re_dfastate_t *)\n                    check_subexp_matching_top\n                              ((re_match_context_t *)auStack_144,(re_node_set *)pIVar23,(Idx)nodes_1\n                               ,(re_node_set *)0x0);\n          auStack_168._0_4_ = prVar38;\n          if (prVar38 == (re_dfastate_t *)0x0) {\n            if ((prVar52->field_0x34 & 2) == 0) {\n              bVar4 = false;\n            }\n            else {\n              prVar38 = (re_dfastate_t *)\n                        transit_state_bkref((re_match_context_t *)auStack_144,(re_node_set *)pIVar23\n                                            ,(re_node_set *)nodes_1);\n              auStack_168._0_4_ = prVar38;\n              if (prVar38 != (re_dfastate_t *)0x0) goto LAB_0004e0e4;\n              bVar4 = false;\n            }\n            goto LAB_0004dd48;\n          }\n        }\nLAB_0004e0e4:\n        pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n        if (prVar38 != (re_dfastate_t *)0xffffffff) {\n          if (prVar38 == (re_dfastate_t *)&SUB_fffffffe) goto LAB_0004dbf8;\n          auStack_144._92_4_ = prVar38;\n          if (((preg->input).valid_len & 0x8000000) == 0) {\n            if (!bVar2) {\n              iVar35 = prVar53->nbackref;\n              goto joined_r0x0004e94c;\n            }\n            pcVar55 = (code *)(*(int *)(puVar56 + 0x28244) + 0x7d8c);\n            prVar39 = *(re_dfastate_t **)(auStack_144._100_4_ + (int)prVar38 * 4);\n            auStack_144._96_4_ =\n                 check_halt_state_context\n                           ((re_match_context_t *)auStack_144,\n                            (re_dfastate_t *)(prVar39->nodes).nelem,(Idx)&(prVar39->nodes).elems,\n                            prVar38);\n            if (((char)prVar53->field_0x58 < '\0') || (prVar53->nbackref != 0)) goto LAB_0004e170;\n          }\n          else {\n            iVar35 = prVar53->nbackref;\njoined_r0x0004e94c:\n            if (iVar35 != 0) {\n              pcVar55 = (code *)(*(int *)(puVar56 + 0x28244) + 0x7d8c);\n              prVar39 = *(re_dfastate_t **)(auStack_144._100_4_ + (int)prVar38 * 4);\n              auStack_144._96_4_ =\n                   check_halt_state_context\n                             ((re_match_context_t *)auStack_144,\n                              (re_dfastate_t *)(prVar39->nodes).nelem,(Idx)&(prVar39->nodes).elems,\n                              prVar38);\nLAB_0004e170:\n              pIVar23 = (Idx *)auStack_144._96_4_;\n              uVar44 = auStack_144._84_4_;\n              if (prVar38 < (re_dfastate_t *)0x3fffffff) {\n                prStack_1f0 = (re_dfastate_t *)((int)&prVar38->hash + 1);\n                pprVar22 = (re_dfastate_t **)(**(code **)(puVar56 + 0x28450))((int)prStack_1f0 * 4);\n                if (pprVar22 == (re_dfastate_t **)0x0) goto LAB_0004dbf8;\n                if (*(Idx *)(uVar44 + 0x4c) == 0) {\n                  rStack_160.limited_states = (re_dfastate_t **)0x0;\n                  rStack_160.limits.alloc = 0;\n                  rStack_160.limits.nelem = 0;\n                  rStack_160.limits.elems = (Idx *)0x0;\n                  rStack_160.sifted_states = pprVar22;\n                  rStack_160.last_node = (Idx)pIVar23;\n                  rStack_160.last_str_idx = (Idx)prVar38;\n                  prStack_1e4 = (re_dfastate_t *)\n                                sift_states_backward\n                                          ((re_match_context_t *)auStack_144,\n                                           (re_sift_context_t *)(auStack_168 + 8));\n                  (**(code **)(puVar56 + 0x28520))(rStack_160.limits.elems);\n                  if (prStack_1e4 == (re_dfastate_t *)0x0) {\n                    if (*pprVar22 == (re_dfastate_t *)0x0) {\n                      (**(code **)(puVar56 + 0x28520))(pprVar22);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar56 + 0x28520))(auStack_144._100_4_);\n                    auStack_144._92_4_ = prVar38;\n                    auStack_144._96_4_ = pIVar23;\n                    auStack_144._100_4_ = pprVar22;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  pprStack_1ec = (re_dfastate_t **)0x0;\n                }\n                else {\n                  pprStack_1ec = (re_dfastate_t **)\n                                 (**(code **)(puVar56 + 0x28450))((int)prStack_1f0 * 4);\n                  if (pprStack_1ec == (re_dfastate_t **)0x0) {\n                    (**(code **)(puVar56 + 0x28520))(pprVar22);\n                    prStack_1e4 = (re_dfastate_t *)0xc;\n                    pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar35 = *(int *)(puVar56 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar56 + 0x283f8))(pprStack_1ec,0,(int)prStack_1f0 * 4);\n                    rStack_160.limits.alloc = 0;\n                    rStack_160.limits.nelem = 0;\n                    rStack_160.limits.elems = (Idx *)0x0;\n                    rStack_160.sifted_states = pprVar22;\n                    rStack_160.limited_states = pprStack_1ec;\n                    rStack_160.last_node = (Idx)pIVar23;\n                    rStack_160.last_str_idx = (Idx)prVar38;\n                    prStack_1e4 = (re_dfastate_t *)\n                                  (*(code *)(iVar35 + -0x2cf4))\n                                            ((re_match_context_t *)auStack_144,auStack_168 + 8);\n                    (**(code **)(puVar56 + 0x28520))(rStack_160.limits.elems);\n                    if (prStack_1e4 != (re_dfastate_t *)0x0) break;\n                    if ((*pprVar22 != (re_dfastate_t *)0x0) ||\n                       (*pprStack_1ec != (re_dfastate_t *)0x0)) {\n                      prStack_1e4 = (re_dfastate_t *)\n                                    merge_state_array((re_dfa_t *)uVar44,pprVar22,pprStack_1ec,\n                                                      (Idx)prStack_1f0);\n                      (**(code **)(puVar56 + 0x28520))(pprStack_1ec);\n                      if (prStack_1e4 != (re_dfastate_t *)0x0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    iVar19 = auStack_144._100_4_ + (int)prStack_1f0 * 4 + -4;\n                    prStack_1f0 = prVar38;\n                    while( true ) {\n                      prVar38 = (re_dfastate_t *)&prStack_1f0[-1].field_0x37;\n                      if (prVar38 == (re_dfastate_t *)0xffffffff) {\n                        (**(code **)(puVar56 + 0x28520))(pprVar22);\n                        (**(code **)(puVar56 + 0x28520))(pprStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar20 = *(int *)(iVar19 + -4);\n                      if ((iVar20 != 0) && ((*(byte *)(iVar20 + 0x34) & 8) != 0)) break;\n                      iVar19 = iVar19 + -4;\n                      prStack_1f0 = prVar38;\n                    }\n                    pIVar23 = (Idx *)(*pcVar55)((re_match_context_t *)auStack_144,\n                                                *(undefined4 *)(iVar20 + 8),iVar20 + 0xc,prVar38);\n                  }\n                }\n                (**(code **)(puVar56 + 0x28520))(pprVar22);\n                (**(code **)(puVar56 + 0x28520))(pprStack_1ec);\n                pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n                if (prStack_1e4 == (re_dfastate_t *)0x1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }\n              prStack_1e4 = (re_dfastate_t *)0xc;\n              goto LAB_0004dbbc;\n            }\n          }\nLAB_0004e7e0:\n          pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n          prStack_1e4 = prVar18;\n          if (prStack_78 == (re_dfa_t *)0x0) goto LAB_0004dbbc;\n          IVar21 = (preg->input).valid_len;\n          if (bVar2) {\n            prVar27 = prStack_74 + 1;\n            do {\n              prVar27->rm_eo = -1;\n              prVar26 = prVar27 + 1;\n              prVar27->rm_so = -1;\n              prVar27 = prVar26;\n            } while (prStack_74 + (int)prStack_78 != prVar26);\n            prStack_74->rm_so = 0;\n            prStack_74->rm_eo = auStack_144._92_4_;\n            if ((IVar21 & 0x8000000) == 0) {\n              if ((char)prVar53->field_0x58 < '\0') {\n                bVar30 = 0 < prVar53->nbackref;\n              }\n              else {\n                bVar30 = false;\n              }\n              prStack_1e4 = (re_dfastate_t *)\n                            set_regs((regex_t *)preg,(re_match_context_t *)auStack_144,\n                                     (size_t)prStack_78,prStack_74,bVar30);\n              pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n              if (prStack_1e4 != (re_dfastate_t *)0x0) goto LAB_0004dbbc;\n              prVar46 = (re_dfa_t *)prStack_74->rm_so;\n            }\n            else {\nLAB_0004e838:\n              prVar46 = (re_dfa_t *)0x0;\n            }\n            prVar48 = (re_dfa_t *)0x0;\n            prVar27 = prStack_74;\n            while( true ) {\n              if (prVar46 != (re_dfa_t *)0xffffffff) {\n                prVar42 = (re_dfa_t *)prVar27->rm_eo;\n                prVar50 = prVar46;\n                prVar43 = prVar42;\n                if (auStack_144[0x4c] != '\0') {\n                  prVar50 = (re_dfa_t *)auStack_144._32_4_;\n                  if ((re_dfa_t *)auStack_144._28_4_ != prVar46) {\n                    prVar50 = (re_dfa_t *)((re_hashval_t *)auStack_144._12_4_)[(int)prVar46];\n                  }\n                  prVar27->rm_so = (regoff_t)prVar50;\n                  prVar43 = (re_dfa_t *)auStack_144._32_4_;\n                  if ((re_dfa_t *)auStack_144._28_4_ != prVar42) {\n                    prVar43 = (re_dfa_t *)((re_hashval_t *)auStack_144._12_4_)[(int)prVar42];\n                  }\n                }\n                prVar27->rm_so =\n                     (int)(((re_dfa_t *)\n                           (((re_dfa_t *)(prVar50->word_char + -0x18))->word_char + -0x18))->\n                           word_char + 0xffffffe8) +\n                     (int)((re_dfa_t *)\n                          (((re_dfa_t *)\n                           (((re_dfa_t *)(prStack_16c->word_char + -0x18))->word_char + -0x18))->\n                           word_char + -0x18))->word_char + 0xffffffa0U;\n                prVar27->rm_eo =\n                     (int)(((re_dfa_t *)\n                           (((re_dfa_t *)(prVar43->word_char + -0x18))->word_char + -0x18))->\n                           word_char + 0xffffffe8) +\n                     (int)((re_dfa_t *)\n                          (((re_dfa_t *)\n                           (((re_dfa_t *)(prStack_16c->word_char + -0x18))->word_char + -0x18))->\n                           word_char + -0x18))->word_char + 0xffffffa0U;\n              }\n              prVar48 = (re_dfa_t *)((int)&prVar48->nodes + 1);\n              prVar27 = prVar27 + 1;\n              if (prVar48 == prStack_78) break;\n              prVar46 = (re_dfa_t *)prVar27->rm_so;\n            }\n            if (0 < iStack_180) {\n              prVar27 = prStack_74 + (int)prStack_78;\n              do {\n                prVar27->rm_so = -1;\n                prVar26 = prVar27 + 1;\n                prVar27->rm_eo = -1;\n                prVar27 = prVar26;\n              } while (prStack_74 + (int)prStack_78->word_char + iStack_180 + -0x60 != prVar26);\n            }\n            pIVar23 = prVar53->subexp_map;\n            pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n            prStack_1e4 = prVar18;\n            if (pIVar23 != (Idx *)0x0) {\n              puVar45 = (undefined1 *)0x0;\n              prVar27 = prStack_74;\n              do {\n                pcVar55 = *(code **)(puVar56 + 0x28520);\n                if (puVar45 == (undefined1 *)((int)&prStack_78[-1].lock + 0x17)) goto LAB_0004dbc0;\n                if ((undefined1 *)*pIVar23 != puVar45) {\n                  prVar27[1].rm_so = prStack_74[(int)((undefined1 *)*pIVar23 + 1)].rm_so;\n                  prVar27[1].rm_eo = prStack_74[*pIVar23 + 1].rm_eo;\n                }\n                puVar45 = puVar45 + 1;\n                pIVar23 = pIVar23 + 1;\n                prVar27 = prVar27 + 1;\n              } while( true );\n            }\n            goto LAB_0004dbbc;\n          }\n          prStack_74->rm_so = 0;\n          prStack_74->rm_eo = auStack_144._92_4_;\n          goto LAB_0004e838;\n        }\nLAB_0004e2d4:\n        match_ctx_clean((re_match_context_t *)auStack_144);\n        in_a3 = prStack_16c;\n      }\n      in_a3 = (re_dfa_t *)((int)in_a3->word_char + iVar11 + -0x60);\n      prStack_16c = in_a3;\n      if (((int)in_a3 < (int)prVar46) ||\n         (pbVar36 = (re_bitset_ptr_t)auStack_144._24_4_, prVar48 = prStack_88,\n         (int)in_stack_ffffff80 < (int)in_a3)) break;\n    } while( true );" do (compound_statement "{\n      prStack_88 = prVar48;\n      if (uVar41 - 4 < 5) {\n                    /* WARNING: Could not recover jumptable at 0x0004db3c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        rVar7 = (*(code *)(puVar56 + *(int *)(iVar17 + 0x2be4 + (uVar41 - 4) * 4) + 0x2fea4))();\n        return rVar7;\n      }\n      auStack_144._24_4_ = pbVar36;\n      while( true ) {\n        prVar50 = (re_dfa_t *)((int)in_a3 - (int)pbVar36);\n        if ((uint)auStack_144._32_4_ <= prVar50) {\n          prStack_1e4 = (re_dfastate_t *)\n                        (*(code *)(iVar33 + 0x7eac))((re_match_context_t *)auStack_144,in_a3,&_gp);\n          pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n          if (prStack_1e4 != (re_dfastate_t *)0x0) goto LAB_0004dbbc;\n          prVar50 = (re_dfa_t *)((int)in_a3 - auStack_144._24_4_);\n          pbVar36 = (re_bitset_ptr_t)auStack_144._24_4_;\n        }\n        if ((int)in_a3 < (int)prVar48) {\n          cVar29 = pcStack_1e0\n                   [*(byte *)((int)(((re_dfa_t *)\n                                    (((re_dfa_t *)(prVar50->word_char + -0x18))->word_char + -0x18))\n                                    ->word_char + 0xffffffe8) +\n                             (int)((re_dfa_t *)\n                                  (((re_dfa_t *)\n                                   (((re_dfa_t *)\n                                    ((bitset_word_t *)(auStack_144._4_4_ + 0x60) + -0x18))->\n                                    word_char + -0x18))->word_char + -0x18))->word_char +\n                             0xffffffa0U)];\n        }\n        else {\n          cVar29 = *pcStack_1e0;\n        }\n        if (cVar29 != '\0') break;\n        in_a3 = (re_dfa_t *)((int)in_a3->word_char + iVar11 + -0x60);\n        prStack_16c = in_a3;\n        if (((int)in_a3 < (int)prVar46) || ((int)in_stack_ffffff80 < (int)in_a3)) goto LAB_0004df68;\n      }\n      prVar18 = (re_dfastate_t *)\n                re_string_reconstruct((re_string_t *)auStack_144,(Idx)in_a3,0x7d580);\n      uVar44 = auStack_144._84_4_;\n      prVar39 = (re_dfastate_t *)auStack_144._40_4_;\n      pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n      prStack_1e4 = prVar18;\n      if (prVar18 != (re_dfastate_t *)0x0) goto LAB_0004dbbc;\n      if (((iVar31 == 1) || ((re_dfa_t *)auStack_144._28_4_ == (re_dfa_t *)0x0)) ||\n         (*(re_hashval_t *)auStack_144._8_4_ != 0xffffffff)) {\n        auStack_144._120_4_ = (anon_union_4_2_9a799d16_for___pthread_mutex_s_5)0x0;\n        auStack_144._108_4_ = 0;\n        prVar52 = *(re_dfastate_t **)(auStack_144._84_4_ + 0x24);\n        prStack_1d0 = (re_dfastate_t *)auStack_144._40_4_;\n        auStack_144._104_4_ = 0;\n        auStack_168._0_4_ = (re_dfastate_t *)0x0;\n        if ((prVar52->field_0x34 & 1) != 0) {\n          uVar32 = re_string_context_at\n                             ((re_string_t *)auStack_144,\n                              (Idx)&((re_dfastate_t *)(auStack_144._40_4_ + -0x38))->field_0x37,\n                              auStack_144._88_4_);\n          if ((uVar32 & 1) == 0) {\n            if (uVar32 == 0) goto LAB_0004dd24;\n            if ((uVar32 & 6) == 6) {\n              prVar52 = *(re_dfastate_t **)(uVar44 + 0x30);\n            }\n            else if ((uVar32 & 2) == 0) {\n              if ((uVar32 & 4) == 0) goto LAB_0004dd24;\n              prVar52 = re_acquire_state_context\n                                  ((reg_errcode_t *)auStack_168,(re_dfa_t *)uVar44,\n                                   prVar52->entrance_nodes,uVar32);\n            }\n            else {\n              prVar52 = *(re_dfastate_t **)(uVar44 + 0x2c);\n            }\n          }\n          else {\n            prVar52 = *(re_dfastate_t **)(uVar44 + 0x28);\n          }\n          if (prVar52 == (re_dfastate_t *)0x0) goto code_r0x0004ea7c;\n        }\nLAB_0004dd24:\n        bVar4 = pprVar16 != (re_dfa_t **)0x0;\n        if (((re_dfastate_t **)auStack_144._100_4_ == (re_dfastate_t **)0x0) ||\n           (iVar35 = *(Idx *)(uVar44 + 0x4c),\n           *(re_dfastate_t **)(auStack_144._100_4_ + (int)prVar39 * 4) = prVar52, iVar35 == 0)) {\nLAB_0004dd48:\n          if (*(int *)&prVar52->field_0x34 << 4 < 0) {\n            if (((prVar52->field_0x34 & 1) == 0) ||\n               (IVar21 = check_halt_state_context\n                                   ((re_match_context_t *)auStack_144,\n                                    (re_dfastate_t *)(prVar52->nodes).nelem,\n                                    (Idx)&(prVar52->nodes).elems,prVar39), IVar21 != 0)) {\n              prVar38 = prVar39;\n              bVar5 = bVar30;\n              if (!bVar30) goto LAB_0004e0e4;\n            }\n            else {\n              prVar39 = (re_dfastate_t *)0xffffffff;\n              bVar5 = false;\n            }\n          }\n          else {\n            prVar39 = (re_dfastate_t *)0xffffffff;\n            bVar5 = false;\n          }\n          iVar35 = *(int *)(puVar56 + 0x28244);\n          iVar19 = *(int *)(puVar56 + 0x2829c);\n          prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n          pprStack_1dc = pprVar16;\n          while ((int)prVar38 < (int)auStack_144._56_4_) {\n            prVar51 = (re_dfastate_t *)((int)&prVar38->hash + 1);\n            if ((((int)prVar51 < (int)auStack_144._36_4_) ||\n                ((int)auStack_144._48_4_ <= (int)auStack_144._36_4_)) &&\n               (((int)prVar51 < (int)auStack_144._28_4_ ||\n                ((int)auStack_144._48_4_ <= (int)auStack_144._28_4_)))) {\n              iVar20 = *(int *)&prVar52->field_0x34;\n              prVar48 = (re_dfa_t *)auStack_144._84_4_;\n            }\n            else {\n              auStack_168._0_4_ =\n                   (*(code *)(iVar35 + 0x41e4))\n                             ((re_match_context_t *)auStack_144,\n                              (undefined1 *)((int)&prVar38->hash + 2));\n              if ((re_dfastate_t *)auStack_168._0_4_ != (re_dfastate_t *)0x0) {\n                if ((re_dfastate_t *)auStack_168._0_4_ == (re_dfastate_t *)0xc) goto LAB_0004dbf8;\n                uVar44 = 0x46c;\n                goto LAB_0004ea9c;\n              }\n              iVar20 = *(int *)&prVar52->field_0x34;\n              prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n              prVar48 = (re_dfa_t *)auStack_144._84_4_;\n            }\n            auStack_144._84_4_ = prVar48;\n            if (iVar20 << 5 < 0) {\n              iVar20 = (prVar52->nodes).nelem;\n              if (0 < iVar20) {\n                in_a3 = (re_dfa_t *)0x0;\n                iVar24 = *(int *)(puVar56 + 0x28244);\n                pcVar55 = (code *)(*(int *)(puVar56 + 0x28244) + 0x7ab0);\n                do {\n                  prVar40 = prVar48->nodes;\n                  iVar54 = (prVar52->nodes).elems[(int)in_a3];\n                  uVar32 = *(uint *)&prVar40[iVar54].field_0x4;\n                  if ((uVar32 & 0x800) != 0) {\n                    if ((uVar32 & 0xffc000) != 0) {\n                      uVar15 = (*pcVar55)((re_match_context_t *)auStack_144,prVar38,\n                                          auStack_144._88_4_);\n                      uVar32 = (uVar32 << 8) >> 0x16;\n                      if ((uVar32 & 4) == 0) {\n                        uVar37 = uVar15 & 1;\n                        if ((uVar32 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar37 = uVar32 & 8;\n                        if ((uVar15 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar37 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar32 & 0x20) != 0) && ((uVar15 & 2) == 0)) ||\n                         (((uVar32 & 0x80) != 0 && ((uVar15 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    aVar25.__spins =\n                         (*(code *)(iVar19 + -0x4eb0))\n                                   (prVar40,&prVar48->syntax,iVar54,\n                                    (re_match_context_t *)auStack_144,prVar38);\n                    if (aVar25.__spins != 0) {\n                      if ((int)auStack_144._120_4_ < aVar25.__spins) {\n                        auStack_144._120_4_ = aVar25.__spins;\n                      }\n                      puVar45 = (undefined1 *)\n                                ((int)(re_hashval_t *)auStack_144._40_4_ + aVar25.__spins);\n                      auStack_168._4_4_ =\n                           (*(code *)(iVar24 + 0x43b0))((re_match_context_t *)auStack_144,puVar45);\n                      prVar38 = (re_dfastate_t *)auStack_168._4_4_;\n                      if ((re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0)\n                      goto joined_r0x0004e770;\n                      iVar20 = (int)puVar45 * 4;\n                      pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + iVar20);\n                      prVar38 = *pprVar22;\n                      src2 = prVar48->eclosures + prVar48->nexts[iVar54];\n                      if (prVar38 == (re_dfastate_t *)0x0) {\n                        rStack_160.sifted_states = (re_dfastate_t **)src2->alloc;\n                        rStack_160.limited_states = (re_dfastate_t **)src2->nelem;\n                        rStack_160.last_node = (Idx)src2->elems;\n                        uVar32 = (*pcVar55)((re_match_context_t *)auStack_144,\n                                            (re_dfastate_t *)(puVar45 + -1),auStack_144._88_4_);\n                        prVar38 = re_acquire_state_context\n                                            ((reg_errcode_t *)(auStack_168 + 4),prVar48,\n                                             (re_node_set *)(auStack_168 + 8),uVar32);\n                        *pprVar22 = prVar38;\n                      }\n                      else {\n                        auStack_168._4_4_ =\n                             re_node_set_init_union\n                                       ((re_node_set *)(auStack_168 + 8),prVar38->entrance_nodes,\n                                        src2);\n                        prVar38 = (re_dfastate_t *)auStack_168._4_4_;\n                        if ((re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0)\n                        goto joined_r0x0004e770;\n                        uVar32 = (*pcVar55)((re_match_context_t *)auStack_144,\n                                            (re_dfastate_t *)(puVar45 + -1),auStack_144._88_4_);\n                        pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + iVar20);\n                        prVar38 = re_acquire_state_context\n                                            ((reg_errcode_t *)(auStack_168 + 4),prVar48,\n                                             (re_node_set *)(auStack_168 + 8),uVar32);\n                        pcVar8 = *(code **)(puVar56 + 0x28520);\n                        *pprVar22 = prVar38;\n                        (*pcVar8)(rStack_160.last_node);\n                      }\n                      if ((*(re_dfastate_t **)(auStack_144._100_4_ + iVar20) == (re_dfastate_t *)0x0\n                          ) && (prVar38 = (re_dfastate_t *)auStack_168._4_4_,\n                               (re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar20 = (prVar52->nodes).nelem;\n                    prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n                  }\nLAB_0004e670:\n                  in_a3 = (re_dfa_t *)((int)&((re_string_t *)&in_a3->nodes)->raw_mbs + 1);\n                } while ((int)in_a3 < iVar20);\n              }\n              auStack_168._0_4_ = (re_dfastate_t *)0x0;\n            }\n            auStack_144._40_4_ = (int)&prVar38->hash + 1;\n            uVar32 = (uint)*(byte *)((int)((re_dfa_t *)\n                                          ((bitset_word_t *)(auStack_144._4_4_ + 0x60) + -0x18))->\n                                          word_char + (int)&prVar38[-2].non_eps_nodes);\n            do {\n              if (prVar52->trtable != (re_dfastate_t **)0x0) {\n                prVar49 = prVar52->trtable[uVar32];\nLAB_0004ddf0:\n                if ((re_dfastate_t **)auStack_144._100_4_ != (re_dfastate_t **)0x0)\n                goto LAB_0004ddfc;\n                goto LAB_0004de1c;\n              }\n              pprVar22 = prVar52->word_trtable;\n              if (pprVar22 != (re_dfastate_t **)0x0) {\n                uVar15 = re_string_context_at\n                                   ((re_string_t *)auStack_144,\n                                    (Idx)&((re_dfastate_t *)(auStack_144._40_4_ + -0x38))->\n                                          field_0x37,auStack_144._88_4_);\n                if ((uVar15 & 1) == 0) {\n                  prVar49 = pprVar22[uVar32];\n                }\n                else {\n                  prVar49 = pprVar22[uVar32 + 0x100];\n                }\n                goto LAB_0004ddf0;\n              }\n              iVar20 = (*(code *)(iVar34 + -0x7510))(auStack_144._84_4_,prVar52);\n            } while (iVar20 != 0);\n            auStack_168._0_4_ = (re_dfastate_t *)0xc;\n            prVar38 = (re_dfastate_t *)auStack_168._0_4_;\njoined_r0x0004e770:\n            auStack_168._0_4_ = prVar38;\n            if ((re_dfastate_t **)auStack_144._100_4_ == (re_dfastate_t **)0x0) {\n              pprVar22 = (re_dfastate_t **)0x0;\n              goto LAB_0004dbb4;\n            }\n            prVar49 = (re_dfastate_t *)0x0;\nLAB_0004ddfc:\n            prVar49 = merge_state_with_log\n                                ((reg_errcode_t *)auStack_168,(re_match_context_t *)auStack_144,\n                                 prVar49);\nLAB_0004de1c:\n            prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n            if (prVar49 == (re_dfastate_t *)0x0) {\n              pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n              if ((re_dfastate_t *)auStack_168._0_4_ != (re_dfastate_t *)0x0) goto LAB_0004dbb4;\n              if (((re_dfastate_t **)auStack_144._100_4_ == (re_dfastate_t **)0x0) ||\n                 ((bVar5 && (!bVar30)))) break;\n              in_a3 = (re_dfa_t *)auStack_168;\n              do {\n                bVar3 = false;\n                pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + auStack_144._40_4_ * 4);\n                prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n                do {\n                  prVar49 = (re_dfastate_t *)((int)&prVar38->hash + 1);\n                  pprVar22 = pprVar22 + 1;\n                  if ((int)auStack_144._104_4_ < (int)prVar49) {\n                    if (bVar3) {\n                      auStack_144._40_4_ = prVar38;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar3 = true;\n                  prVar38 = prVar49;\n                } while (*pprVar22 == (re_dfastate_t *)0x0);\n                auStack_144._40_4_ = prVar49;\n                prVar49 = merge_state_with_log\n                                    ((reg_errcode_t *)in_a3,(re_match_context_t *)auStack_144,\n                                     (re_dfastate_t *)0x0);\n                prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n                if ((re_dfastate_t *)auStack_168._0_4_ != (re_dfastate_t *)0x0) {\n                  if (prVar49 == (re_dfastate_t *)0x0) goto LAB_0004e0cc;\n                  break;\n                }\n              } while (prVar49 == (re_dfastate_t *)0x0);\n            }\n            prVar6 = prStack_1d0;\n            if ((bVar4) && (prVar6 = prVar51, prVar52 != prVar49)) {\n              bVar4 = false;\n              prVar6 = prStack_1d0;\n            }\n            prStack_1d0 = prVar6;\n            prVar52 = prVar49;\n            auStack_144._40_4_ = prVar38;\n            if (((prVar49->field_0x34 & 8) != 0) &&\n               (((prVar49->field_0x34 & 1) == 0 ||\n                (IVar21 = check_halt_state_context\n                                    ((re_match_context_t *)auStack_144,\n                                     (re_dfastate_t *)(prVar49->nodes).nelem,\n                                     (Idx)&(prVar49->nodes).elems,prVar38), IVar21 != 0)))) {\n              if (!bVar30) goto LAB_0004e0e4;\n              pprStack_1dc = (re_dfa_t **)0x0;\n              prVar39 = prVar38;\n              bVar5 = bVar30;\n            }\n          }\nLAB_0004e0cc:\n          prVar38 = prVar39;\n          if (pprStack_1dc != (re_dfa_t **)0x0) {\n            *pprStack_1dc = (re_dfa_t *)((int)&prStack_1d0->hash + (int)*pprStack_1dc);\n          }\n        }\n        else {\n          pIVar23 = &(prVar52->nodes).nelem;\n          nodes_1 = &(prVar52->nodes).elems;\n          prVar38 = (re_dfastate_t *)\n                    check_subexp_matching_top\n                              ((re_match_context_t *)auStack_144,(re_node_set *)pIVar23,(Idx)nodes_1\n                               ,(re_node_set *)0x0);\n          auStack_168._0_4_ = prVar38;\n          if (prVar38 == (re_dfastate_t *)0x0) {\n            if ((prVar52->field_0x34 & 2) == 0) {\n              bVar4 = false;\n            }\n            else {\n              prVar38 = (re_dfastate_t *)\n                        transit_state_bkref((re_match_context_t *)auStack_144,(re_node_set *)pIVar23\n                                            ,(re_node_set *)nodes_1);\n              auStack_168._0_4_ = prVar38;\n              if (prVar38 != (re_dfastate_t *)0x0) goto LAB_0004e0e4;\n              bVar4 = false;\n            }\n            goto LAB_0004dd48;\n          }\n        }\nLAB_0004e0e4:\n        pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n        if (prVar38 != (re_dfastate_t *)0xffffffff) {\n          if (prVar38 == (re_dfastate_t *)&SUB_fffffffe) goto LAB_0004dbf8;\n          auStack_144._92_4_ = prVar38;\n          if (((preg->input).valid_len & 0x8000000) == 0) {\n            if (!bVar2) {\n              iVar35 = prVar53->nbackref;\n              goto joined_r0x0004e94c;\n            }\n            pcVar55 = (code *)(*(int *)(puVar56 + 0x28244) + 0x7d8c);\n            prVar39 = *(re_dfastate_t **)(auStack_144._100_4_ + (int)prVar38 * 4);\n            auStack_144._96_4_ =\n                 check_halt_state_context\n                           ((re_match_context_t *)auStack_144,\n                            (re_dfastate_t *)(prVar39->nodes).nelem,(Idx)&(prVar39->nodes).elems,\n                            prVar38);\n            if (((char)prVar53->field_0x58 < '\0') || (prVar53->nbackref != 0)) goto LAB_0004e170;\n          }\n          else {\n            iVar35 = prVar53->nbackref;\njoined_r0x0004e94c:\n            if (iVar35 != 0) {\n              pcVar55 = (code *)(*(int *)(puVar56 + 0x28244) + 0x7d8c);\n              prVar39 = *(re_dfastate_t **)(auStack_144._100_4_ + (int)prVar38 * 4);\n              auStack_144._96_4_ =\n                   check_halt_state_context\n                             ((re_match_context_t *)auStack_144,\n                              (re_dfastate_t *)(prVar39->nodes).nelem,(Idx)&(prVar39->nodes).elems,\n                              prVar38);\nLAB_0004e170:\n              pIVar23 = (Idx *)auStack_144._96_4_;\n              uVar44 = auStack_144._84_4_;\n              if (prVar38 < (re_dfastate_t *)0x3fffffff) {\n                prStack_1f0 = (re_dfastate_t *)((int)&prVar38->hash + 1);\n                pprVar22 = (re_dfastate_t **)(**(code **)(puVar56 + 0x28450))((int)prStack_1f0 * 4);\n                if (pprVar22 == (re_dfastate_t **)0x0) goto LAB_0004dbf8;\n                if (*(Idx *)(uVar44 + 0x4c) == 0) {\n                  rStack_160.limited_states = (re_dfastate_t **)0x0;\n                  rStack_160.limits.alloc = 0;\n                  rStack_160.limits.nelem = 0;\n                  rStack_160.limits.elems = (Idx *)0x0;\n                  rStack_160.sifted_states = pprVar22;\n                  rStack_160.last_node = (Idx)pIVar23;\n                  rStack_160.last_str_idx = (Idx)prVar38;\n                  prStack_1e4 = (re_dfastate_t *)\n                                sift_states_backward\n                                          ((re_match_context_t *)auStack_144,\n                                           (re_sift_context_t *)(auStack_168 + 8));\n                  (**(code **)(puVar56 + 0x28520))(rStack_160.limits.elems);\n                  if (prStack_1e4 == (re_dfastate_t *)0x0) {\n                    if (*pprVar22 == (re_dfastate_t *)0x0) {\n                      (**(code **)(puVar56 + 0x28520))(pprVar22);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar56 + 0x28520))(auStack_144._100_4_);\n                    auStack_144._92_4_ = prVar38;\n                    auStack_144._96_4_ = pIVar23;\n                    auStack_144._100_4_ = pprVar22;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  pprStack_1ec = (re_dfastate_t **)0x0;\n                }\n                else {\n                  pprStack_1ec = (re_dfastate_t **)\n                                 (**(code **)(puVar56 + 0x28450))((int)prStack_1f0 * 4);\n                  if (pprStack_1ec == (re_dfastate_t **)0x0) {\n                    (**(code **)(puVar56 + 0x28520))(pprVar22);\n                    prStack_1e4 = (re_dfastate_t *)0xc;\n                    pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar35 = *(int *)(puVar56 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar56 + 0x283f8))(pprStack_1ec,0,(int)prStack_1f0 * 4);\n                    rStack_160.limits.alloc = 0;\n                    rStack_160.limits.nelem = 0;\n                    rStack_160.limits.elems = (Idx *)0x0;\n                    rStack_160.sifted_states = pprVar22;\n                    rStack_160.limited_states = pprStack_1ec;\n                    rStack_160.last_node = (Idx)pIVar23;\n                    rStack_160.last_str_idx = (Idx)prVar38;\n                    prStack_1e4 = (re_dfastate_t *)\n                                  (*(code *)(iVar35 + -0x2cf4))\n                                            ((re_match_context_t *)auStack_144,auStack_168 + 8);\n                    (**(code **)(puVar56 + 0x28520))(rStack_160.limits.elems);\n                    if (prStack_1e4 != (re_dfastate_t *)0x0) break;\n                    if ((*pprVar22 != (re_dfastate_t *)0x0) ||\n                       (*pprStack_1ec != (re_dfastate_t *)0x0)) {\n                      prStack_1e4 = (re_dfastate_t *)\n                                    merge_state_array((re_dfa_t *)uVar44,pprVar22,pprStack_1ec,\n                                                      (Idx)prStack_1f0);\n                      (**(code **)(puVar56 + 0x28520))(pprStack_1ec);\n                      if (prStack_1e4 != (re_dfastate_t *)0x0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    iVar19 = auStack_144._100_4_ + (int)prStack_1f0 * 4 + -4;\n                    prStack_1f0 = prVar38;\n                    while( true ) {\n                      prVar38 = (re_dfastate_t *)&prStack_1f0[-1].field_0x37;\n                      if (prVar38 == (re_dfastate_t *)0xffffffff) {\n                        (**(code **)(puVar56 + 0x28520))(pprVar22);\n                        (**(code **)(puVar56 + 0x28520))(pprStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar20 = *(int *)(iVar19 + -4);\n                      if ((iVar20 != 0) && ((*(byte *)(iVar20 + 0x34) & 8) != 0)) break;\n                      iVar19 = iVar19 + -4;\n                      prStack_1f0 = prVar38;\n                    }\n                    pIVar23 = (Idx *)(*pcVar55)((re_match_context_t *)auStack_144,\n                                                *(undefined4 *)(iVar20 + 8),iVar20 + 0xc,prVar38);\n                  }\n                }\n                (**(code **)(puVar56 + 0x28520))(pprVar22);\n                (**(code **)(puVar56 + 0x28520))(pprStack_1ec);\n                pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n                if (prStack_1e4 == (re_dfastate_t *)0x1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }\n              prStack_1e4 = (re_dfastate_t *)0xc;\n              goto LAB_0004dbbc;\n            }\n          }\nLAB_0004e7e0:\n          pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n          prStack_1e4 = prVar18;\n          if (prStack_78 == (re_dfa_t *)0x0) goto LAB_0004dbbc;\n          IVar21 = (preg->input).valid_len;\n          if (bVar2) {\n            prVar27 = prStack_74 + 1;\n            do {\n              prVar27->rm_eo = -1;\n              prVar26 = prVar27 + 1;\n              prVar27->rm_so = -1;\n              prVar27 = prVar26;\n            } while (prStack_74 + (int)prStack_78 != prVar26);\n            prStack_74->rm_so = 0;\n            prStack_74->rm_eo = auStack_144._92_4_;\n            if ((IVar21 & 0x8000000) == 0) {\n              if ((char)prVar53->field_0x58 < '\0') {\n                bVar30 = 0 < prVar53->nbackref;\n              }\n              else {\n                bVar30 = false;\n              }\n              prStack_1e4 = (re_dfastate_t *)\n                            set_regs((regex_t *)preg,(re_match_context_t *)auStack_144,\n                                     (size_t)prStack_78,prStack_74,bVar30);\n              pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n              if (prStack_1e4 != (re_dfastate_t *)0x0) goto LAB_0004dbbc;\n              prVar46 = (re_dfa_t *)prStack_74->rm_so;\n            }\n            else {\nLAB_0004e838:\n              prVar46 = (re_dfa_t *)0x0;\n            }\n            prVar48 = (re_dfa_t *)0x0;\n            prVar27 = prStack_74;\n            while( true ) {\n              if (prVar46 != (re_dfa_t *)0xffffffff) {\n                prVar42 = (re_dfa_t *)prVar27->rm_eo;\n                prVar50 = prVar46;\n                prVar43 = prVar42;\n                if (auStack_144[0x4c] != '\0') {\n                  prVar50 = (re_dfa_t *)auStack_144._32_4_;\n                  if ((re_dfa_t *)auStack_144._28_4_ != prVar46) {\n                    prVar50 = (re_dfa_t *)((re_hashval_t *)auStack_144._12_4_)[(int)prVar46];\n                  }\n                  prVar27->rm_so = (regoff_t)prVar50;\n                  prVar43 = (re_dfa_t *)auStack_144._32_4_;\n                  if ((re_dfa_t *)auStack_144._28_4_ != prVar42) {\n                    prVar43 = (re_dfa_t *)((re_hashval_t *)auStack_144._12_4_)[(int)prVar42];\n                  }\n                }\n                prVar27->rm_so =\n                     (int)(((re_dfa_t *)\n                           (((re_dfa_t *)(prVar50->word_char + -0x18))->word_char + -0x18))->\n                           word_char + 0xffffffe8) +\n                     (int)((re_dfa_t *)\n                          (((re_dfa_t *)\n                           (((re_dfa_t *)(prStack_16c->word_char + -0x18))->word_char + -0x18))->\n                           word_char + -0x18))->word_char + 0xffffffa0U;\n                prVar27->rm_eo =\n                     (int)(((re_dfa_t *)\n                           (((re_dfa_t *)(prVar43->word_char + -0x18))->word_char + -0x18))->\n                           word_char + 0xffffffe8) +\n                     (int)((re_dfa_t *)\n                          (((re_dfa_t *)\n                           (((re_dfa_t *)(prStack_16c->word_char + -0x18))->word_char + -0x18))->\n                           word_char + -0x18))->word_char + 0xffffffa0U;\n              }\n              prVar48 = (re_dfa_t *)((int)&prVar48->nodes + 1);\n              prVar27 = prVar27 + 1;\n              if (prVar48 == prStack_78) break;\n              prVar46 = (re_dfa_t *)prVar27->rm_so;\n            }\n            if (0 < iStack_180) {\n              prVar27 = prStack_74 + (int)prStack_78;\n              do {\n                prVar27->rm_so = -1;\n                prVar26 = prVar27 + 1;\n                prVar27->rm_eo = -1;\n                prVar27 = prVar26;\n              } while (prStack_74 + (int)prStack_78->word_char + iStack_180 + -0x60 != prVar26);\n            }\n            pIVar23 = prVar53->subexp_map;\n            pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n            prStack_1e4 = prVar18;\n            if (pIVar23 != (Idx *)0x0) {\n              puVar45 = (undefined1 *)0x0;\n              prVar27 = prStack_74;\n              do {\n                pcVar55 = *(code **)(puVar56 + 0x28520);\n                if (puVar45 == (undefined1 *)((int)&prStack_78[-1].lock + 0x17)) goto LAB_0004dbc0;\n                if ((undefined1 *)*pIVar23 != puVar45) {\n                  prVar27[1].rm_so = prStack_74[(int)((undefined1 *)*pIVar23 + 1)].rm_so;\n                  prVar27[1].rm_eo = prStack_74[*pIVar23 + 1].rm_eo;\n                }\n                puVar45 = puVar45 + 1;\n                pIVar23 = pIVar23 + 1;\n                prVar27 = prVar27 + 1;\n              } while( true );\n            }\n            goto LAB_0004dbbc;\n          }\n          prStack_74->rm_so = 0;\n          prStack_74->rm_eo = auStack_144._92_4_;\n          goto LAB_0004e838;\n        }\nLAB_0004e2d4:\n        match_ctx_clean((re_match_context_t *)auStack_144);\n        in_a3 = prStack_16c;\n      }\n      in_a3 = (re_dfa_t *)((int)in_a3->word_char + iVar11 + -0x60);\n      prStack_16c = in_a3;\n      if (((int)in_a3 < (int)prVar46) ||\n         (pbVar36 = (re_bitset_ptr_t)auStack_144._24_4_, prVar48 = prStack_88,\n         (int)in_stack_ffffff80 < (int)in_a3)) break;\n    }" { (expression_statement "prStack_88 = prVar48;" (assignment_expression "prStack_88 = prVar48" identifier = identifier) ;) (if_statement "if (uVar41 - 4 < 5) {\n                    /* WARNING: Could not recover jumptable at 0x0004db3c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        rVar7 = (*(code *)(puVar56 + *(int *)(iVar17 + 0x2be4 + (uVar41 - 4) * 4) + 0x2fea4))();\n        return rVar7;\n      }" if (parenthesized_expression "(uVar41 - 4 < 5)" ( (binary_expression "uVar41 - 4 < 5" (binary_expression "uVar41 - 4" identifier - number_literal) < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x0004db3c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        rVar7 = (*(code *)(puVar56 + *(int *)(iVar17 + 0x2be4 + (uVar41 - 4) * 4) + 0x2fea4))();\n        return rVar7;\n      }" { comment comment (expression_statement "rVar7 = (*(code *)(puVar56 + *(int *)(iVar17 + 0x2be4 + (uVar41 - 4) * 4) + 0x2fea4))();" (assignment_expression "rVar7 = (*(code *)(puVar56 + *(int *)(iVar17 + 0x2be4 + (uVar41 - 4) * 4) + 0x2fea4))()" identifier = (call_expression "(*(code *)(puVar56 + *(int *)(iVar17 + 0x2be4 + (uVar41 - 4) * 4) + 0x2fea4))()" (parenthesized_expression "(*(code *)(puVar56 + *(int *)(iVar17 + 0x2be4 + (uVar41 - 4) * 4) + 0x2fea4))" ( (pointer_expression "*(code *)(puVar56 + *(int *)(iVar17 + 0x2be4 + (uVar41 - 4) * 4) + 0x2fea4)" * (cast_expression "(code *)(puVar56 + *(int *)(iVar17 + 0x2be4 + (uVar41 - 4) * 4) + 0x2fea4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + *(int *)(iVar17 + 0x2be4 + (uVar41 - 4) * 4) + 0x2fea4)" ( (binary_expression "puVar56 + *(int *)(iVar17 + 0x2be4 + (uVar41 - 4) * 4) + 0x2fea4" (binary_expression "puVar56 + *(int *)(iVar17 + 0x2be4 + (uVar41 - 4) * 4)" identifier + (pointer_expression "*(int *)(iVar17 + 0x2be4 + (uVar41 - 4) * 4)" * (cast_expression "(int *)(iVar17 + 0x2be4 + (uVar41 - 4) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x2be4 + (uVar41 - 4) * 4)" ( (binary_expression "iVar17 + 0x2be4 + (uVar41 - 4) * 4" (binary_expression "iVar17 + 0x2be4" identifier + number_literal) + (binary_expression "(uVar41 - 4) * 4" (parenthesized_expression "(uVar41 - 4)" ( (binary_expression "uVar41 - 4" identifier - number_literal) )) * number_literal)) ))))) + number_literal) )))) )) (argument_list "()" ( )))) ;) (return_statement "return rVar7;" return identifier ;) })) (expression_statement "auStack_144._24_4_ = pbVar36;" (assignment_expression "auStack_144._24_4_ = pbVar36" (field_expression "auStack_144._24_4_" identifier . field_identifier) = identifier) ;) (while_statement "while( true ) {\n        prVar50 = (re_dfa_t *)((int)in_a3 - (int)pbVar36);\n        if ((uint)auStack_144._32_4_ <= prVar50) {\n          prStack_1e4 = (re_dfastate_t *)\n                        (*(code *)(iVar33 + 0x7eac))((re_match_context_t *)auStack_144,in_a3,&_gp);\n          pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n          if (prStack_1e4 != (re_dfastate_t *)0x0) goto LAB_0004dbbc;\n          prVar50 = (re_dfa_t *)((int)in_a3 - auStack_144._24_4_);\n          pbVar36 = (re_bitset_ptr_t)auStack_144._24_4_;\n        }\n        if ((int)in_a3 < (int)prVar48) {\n          cVar29 = pcStack_1e0\n                   [*(byte *)((int)(((re_dfa_t *)\n                                    (((re_dfa_t *)(prVar50->word_char + -0x18))->word_char + -0x18))\n                                    ->word_char + 0xffffffe8) +\n                             (int)((re_dfa_t *)\n                                  (((re_dfa_t *)\n                                   (((re_dfa_t *)\n                                    ((bitset_word_t *)(auStack_144._4_4_ + 0x60) + -0x18))->\n                                    word_char + -0x18))->word_char + -0x18))->word_char +\n                             0xffffffa0U)];\n        }\n        else {\n          cVar29 = *pcStack_1e0;\n        }\n        if (cVar29 != '\0') break;\n        in_a3 = (re_dfa_t *)((int)in_a3->word_char + iVar11 + -0x60);\n        prStack_16c = in_a3;\n        if (((int)in_a3 < (int)prVar46) || ((int)in_stack_ffffff80 < (int)in_a3)) goto LAB_0004df68;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        prVar50 = (re_dfa_t *)((int)in_a3 - (int)pbVar36);\n        if ((uint)auStack_144._32_4_ <= prVar50) {\n          prStack_1e4 = (re_dfastate_t *)\n                        (*(code *)(iVar33 + 0x7eac))((re_match_context_t *)auStack_144,in_a3,&_gp);\n          pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n          if (prStack_1e4 != (re_dfastate_t *)0x0) goto LAB_0004dbbc;\n          prVar50 = (re_dfa_t *)((int)in_a3 - auStack_144._24_4_);\n          pbVar36 = (re_bitset_ptr_t)auStack_144._24_4_;\n        }\n        if ((int)in_a3 < (int)prVar48) {\n          cVar29 = pcStack_1e0\n                   [*(byte *)((int)(((re_dfa_t *)\n                                    (((re_dfa_t *)(prVar50->word_char + -0x18))->word_char + -0x18))\n                                    ->word_char + 0xffffffe8) +\n                             (int)((re_dfa_t *)\n                                  (((re_dfa_t *)\n                                   (((re_dfa_t *)\n                                    ((bitset_word_t *)(auStack_144._4_4_ + 0x60) + -0x18))->\n                                    word_char + -0x18))->word_char + -0x18))->word_char +\n                             0xffffffa0U)];\n        }\n        else {\n          cVar29 = *pcStack_1e0;\n        }\n        if (cVar29 != '\0') break;\n        in_a3 = (re_dfa_t *)((int)in_a3->word_char + iVar11 + -0x60);\n        prStack_16c = in_a3;\n        if (((int)in_a3 < (int)prVar46) || ((int)in_stack_ffffff80 < (int)in_a3)) goto LAB_0004df68;\n      }" { (expression_statement "prVar50 = (re_dfa_t *)((int)in_a3 - (int)pbVar36);" (assignment_expression "prVar50 = (re_dfa_t *)((int)in_a3 - (int)pbVar36)" identifier = (cast_expression "(re_dfa_t *)((int)in_a3 - (int)pbVar36)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)in_a3 - (int)pbVar36)" ( (binary_expression "(int)in_a3 - (int)pbVar36" (cast_expression "(int)in_a3" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar36" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if ((uint)auStack_144._32_4_ <= prVar50) {\n          prStack_1e4 = (re_dfastate_t *)\n                        (*(code *)(iVar33 + 0x7eac))((re_match_context_t *)auStack_144,in_a3,&_gp);\n          pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n          if (prStack_1e4 != (re_dfastate_t *)0x0) goto LAB_0004dbbc;\n          prVar50 = (re_dfa_t *)((int)in_a3 - auStack_144._24_4_);\n          pbVar36 = (re_bitset_ptr_t)auStack_144._24_4_;\n        }" if (parenthesized_expression "((uint)auStack_144._32_4_ <= prVar50)" ( (binary_expression "(uint)auStack_144._32_4_ <= prVar50" (cast_expression "(uint)auStack_144._32_4_" ( (type_descriptor "uint" type_identifier) ) (field_expression "auStack_144._32_4_" identifier . field_identifier)) <= identifier) )) (compound_statement "{\n          prStack_1e4 = (re_dfastate_t *)\n                        (*(code *)(iVar33 + 0x7eac))((re_match_context_t *)auStack_144,in_a3,&_gp);\n          pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n          if (prStack_1e4 != (re_dfastate_t *)0x0) goto LAB_0004dbbc;\n          prVar50 = (re_dfa_t *)((int)in_a3 - auStack_144._24_4_);\n          pbVar36 = (re_bitset_ptr_t)auStack_144._24_4_;\n        }" { (expression_statement "prStack_1e4 = (re_dfastate_t *)\n                        (*(code *)(iVar33 + 0x7eac))((re_match_context_t *)auStack_144,in_a3,&_gp);" (assignment_expression "prStack_1e4 = (re_dfastate_t *)\n                        (*(code *)(iVar33 + 0x7eac))((re_match_context_t *)auStack_144,in_a3,&_gp)" identifier = (cast_expression "(re_dfastate_t *)\n                        (*(code *)(iVar33 + 0x7eac))((re_match_context_t *)auStack_144,in_a3,&_gp)" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(iVar33 + 0x7eac))((re_match_context_t *)auStack_144,in_a3,&_gp)" (parenthesized_expression "(*(code *)(iVar33 + 0x7eac))" ( (pointer_expression "*(code *)(iVar33 + 0x7eac)" * (cast_expression "(code *)(iVar33 + 0x7eac)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar33 + 0x7eac)" ( (binary_expression "iVar33 + 0x7eac" identifier + number_literal) )))) )) (argument_list "((re_match_context_t *)auStack_144,in_a3,&_gp)" ( (cast_expression "(re_match_context_t *)auStack_144" ( (type_descriptor "re_match_context_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , (pointer_expression "&_gp" & identifier) ))))) ;) (expression_statement "pprVar22 = (re_dfastate_t **)auStack_144._100_4_;" (assignment_expression "pprVar22 = (re_dfastate_t **)auStack_144._100_4_" identifier = (cast_expression "(re_dfastate_t **)auStack_144._100_4_" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (field_expression "auStack_144._100_4_" identifier . field_identifier))) ;) (if_statement "if (prStack_1e4 != (re_dfastate_t *)0x0) goto LAB_0004dbbc;" if (parenthesized_expression "(prStack_1e4 != (re_dfastate_t *)0x0)" ( (binary_expression "prStack_1e4 != (re_dfastate_t *)0x0" identifier != (cast_expression "(re_dfastate_t *)0x0" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004dbbc;" goto statement_identifier ;)) (expression_statement "prVar50 = (re_dfa_t *)((int)in_a3 - auStack_144._24_4_);" (assignment_expression "prVar50 = (re_dfa_t *)((int)in_a3 - auStack_144._24_4_)" identifier = (cast_expression "(re_dfa_t *)((int)in_a3 - auStack_144._24_4_)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)in_a3 - auStack_144._24_4_)" ( (binary_expression "(int)in_a3 - auStack_144._24_4_" (cast_expression "(int)in_a3" ( (type_descriptor "int" primitive_type) ) identifier) - (field_expression "auStack_144._24_4_" identifier . field_identifier)) )))) ;) (expression_statement "pbVar36 = (re_bitset_ptr_t)auStack_144._24_4_;" (assignment_expression "pbVar36 = (re_bitset_ptr_t)auStack_144._24_4_" identifier = (cast_expression "(re_bitset_ptr_t)auStack_144._24_4_" ( (type_descriptor "re_bitset_ptr_t" type_identifier) ) (field_expression "auStack_144._24_4_" identifier . field_identifier))) ;) })) (if_statement "if ((int)in_a3 < (int)prVar48) {\n          cVar29 = pcStack_1e0\n                   [*(byte *)((int)(((re_dfa_t *)\n                                    (((re_dfa_t *)(prVar50->word_char + -0x18))->word_char + -0x18))\n                                    ->word_char + 0xffffffe8) +\n                             (int)((re_dfa_t *)\n                                  (((re_dfa_t *)\n                                   (((re_dfa_t *)\n                                    ((bitset_word_t *)(auStack_144._4_4_ + 0x60) + -0x18))->\n                                    word_char + -0x18))->word_char + -0x18))->word_char +\n                             0xffffffa0U)];\n        }\n        else {\n          cVar29 = *pcStack_1e0;\n        }" if (parenthesized_expression "((int)in_a3 < (int)prVar48)" ( (binary_expression "(int)in_a3 < (int)prVar48" (cast_expression "(int)in_a3" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)prVar48" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          cVar29 = pcStack_1e0\n                   [*(byte *)((int)(((re_dfa_t *)\n                                    (((re_dfa_t *)(prVar50->word_char + -0x18))->word_char + -0x18))\n                                    ->word_char + 0xffffffe8) +\n                             (int)((re_dfa_t *)\n                                  (((re_dfa_t *)\n                                   (((re_dfa_t *)\n                                    ((bitset_word_t *)(auStack_144._4_4_ + 0x60) + -0x18))->\n                                    word_char + -0x18))->word_char + -0x18))->word_char +\n                             0xffffffa0U)];\n        }" { (expression_statement "cVar29 = pcStack_1e0\n                   [*(byte *)((int)(((re_dfa_t *)\n                                    (((re_dfa_t *)(prVar50->word_char + -0x18))->word_char + -0x18))\n                                    ->word_char + 0xffffffe8) +\n                             (int)((re_dfa_t *)\n                                  (((re_dfa_t *)\n                                   (((re_dfa_t *)\n                                    ((bitset_word_t *)(auStack_144._4_4_ + 0x60) + -0x18))->\n                                    word_char + -0x18))->word_char + -0x18))->word_char +\n                             0xffffffa0U)];" (assignment_expression "cVar29 = pcStack_1e0\n                   [*(byte *)((int)(((re_dfa_t *)\n                                    (((re_dfa_t *)(prVar50->word_char + -0x18))->word_char + -0x18))\n                                    ->word_char + 0xffffffe8) +\n                             (int)((re_dfa_t *)\n                                  (((re_dfa_t *)\n                                   (((re_dfa_t *)\n                                    ((bitset_word_t *)(auStack_144._4_4_ + 0x60) + -0x18))->\n                                    word_char + -0x18))->word_char + -0x18))->word_char +\n                             0xffffffa0U)]" identifier = (subscript_expression "pcStack_1e0\n                   [*(byte *)((int)(((re_dfa_t *)\n                                    (((re_dfa_t *)(prVar50->word_char + -0x18))->word_char + -0x18))\n                                    ->word_char + 0xffffffe8) +\n                             (int)((re_dfa_t *)\n                                  (((re_dfa_t *)\n                                   (((re_dfa_t *)\n                                    ((bitset_word_t *)(auStack_144._4_4_ + 0x60) + -0x18))->\n                                    word_char + -0x18))->word_char + -0x18))->word_char +\n                             0xffffffa0U)]" identifier [ (pointer_expression "*(byte *)((int)(((re_dfa_t *)\n                                    (((re_dfa_t *)(prVar50->word_char + -0x18))->word_char + -0x18))\n                                    ->word_char + 0xffffffe8) +\n                             (int)((re_dfa_t *)\n                                  (((re_dfa_t *)\n                                   (((re_dfa_t *)\n                                    ((bitset_word_t *)(auStack_144._4_4_ + 0x60) + -0x18))->\n                                    word_char + -0x18))->word_char + -0x18))->word_char +\n                             0xffffffa0U)" * (cast_expression "(byte *)((int)(((re_dfa_t *)\n                                    (((re_dfa_t *)(prVar50->word_char + -0x18))->word_char + -0x18))\n                                    ->word_char + 0xffffffe8) +\n                             (int)((re_dfa_t *)\n                                  (((re_dfa_t *)\n                                   (((re_dfa_t *)\n                                    ((bitset_word_t *)(auStack_144._4_4_ + 0x60) + -0x18))->\n                                    word_char + -0x18))->word_char + -0x18))->word_char +\n                             0xffffffa0U)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(((re_dfa_t *)\n                                    (((re_dfa_t *)(prVar50->word_char + -0x18))->word_char + -0x18))\n                                    ->word_char + 0xffffffe8) +\n                             (int)((re_dfa_t *)\n                                  (((re_dfa_t *)\n                                   (((re_dfa_t *)\n                                    ((bitset_word_t *)(auStack_144._4_4_ + 0x60) + -0x18))->\n                                    word_char + -0x18))->word_char + -0x18))->word_char +\n                             0xffffffa0U)" ( (binary_expression "(int)(((re_dfa_t *)\n                                    (((re_dfa_t *)(prVar50->word_char + -0x18))->word_char + -0x18))\n                                    ->word_char + 0xffffffe8) +\n                             (int)((re_dfa_t *)\n                                  (((re_dfa_t *)\n                                   (((re_dfa_t *)\n                                    ((bitset_word_t *)(auStack_144._4_4_ + 0x60) + -0x18))->\n                                    word_char + -0x18))->word_char + -0x18))->word_char +\n                             0xffffffa0U" (binary_expression "(int)(((re_dfa_t *)\n                                    (((re_dfa_t *)(prVar50->word_char + -0x18))->word_char + -0x18))\n                                    ->word_char + 0xffffffe8) +\n                             (int)((re_dfa_t *)\n                                  (((re_dfa_t *)\n                                   (((re_dfa_t *)\n                                    ((bitset_word_t *)(auStack_144._4_4_ + 0x60) + -0x18))->\n                                    word_char + -0x18))->word_char + -0x18))->word_char" (cast_expression "(int)(((re_dfa_t *)\n                                    (((re_dfa_t *)(prVar50->word_char + -0x18))->word_char + -0x18))\n                                    ->word_char + 0xffffffe8)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(((re_dfa_t *)\n                                    (((re_dfa_t *)(prVar50->word_char + -0x18))->word_char + -0x18))\n                                    ->word_char + 0xffffffe8)" ( (binary_expression "((re_dfa_t *)\n                                    (((re_dfa_t *)(prVar50->word_char + -0x18))->word_char + -0x18))\n                                    ->word_char + 0xffffffe8" (field_expression "((re_dfa_t *)\n                                    (((re_dfa_t *)(prVar50->word_char + -0x18))->word_char + -0x18))\n                                    ->word_char" (parenthesized_expression "((re_dfa_t *)\n                                    (((re_dfa_t *)(prVar50->word_char + -0x18))->word_char + -0x18))" ( (cast_expression "(re_dfa_t *)\n                                    (((re_dfa_t *)(prVar50->word_char + -0x18))->word_char + -0x18)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((re_dfa_t *)(prVar50->word_char + -0x18))->word_char + -0x18)" ( (binary_expression "((re_dfa_t *)(prVar50->word_char + -0x18))->word_char + -0x18" (field_expression "((re_dfa_t *)(prVar50->word_char + -0x18))->word_char" (parenthesized_expression "((re_dfa_t *)(prVar50->word_char + -0x18))" ( (cast_expression "(re_dfa_t *)(prVar50->word_char + -0x18)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(prVar50->word_char + -0x18)" ( (binary_expression "prVar50->word_char + -0x18" (field_expression "prVar50->word_char" identifier -> field_identifier) + number_literal) ))) )) -> field_identifier) + number_literal) ))) )) -> field_identifier) + number_literal) ))) + (cast_expression "(int)((re_dfa_t *)\n                                  (((re_dfa_t *)\n                                   (((re_dfa_t *)\n                                    ((bitset_word_t *)(auStack_144._4_4_ + 0x60) + -0x18))->\n                                    word_char + -0x18))->word_char + -0x18))->word_char" ( (type_descriptor "int" primitive_type) ) (field_expression "((re_dfa_t *)\n                                  (((re_dfa_t *)\n                                   (((re_dfa_t *)\n                                    ((bitset_word_t *)(auStack_144._4_4_ + 0x60) + -0x18))->\n                                    word_char + -0x18))->word_char + -0x18))->word_char" (parenthesized_expression "((re_dfa_t *)\n                                  (((re_dfa_t *)\n                                   (((re_dfa_t *)\n                                    ((bitset_word_t *)(auStack_144._4_4_ + 0x60) + -0x18))->\n                                    word_char + -0x18))->word_char + -0x18))" ( (cast_expression "(re_dfa_t *)\n                                  (((re_dfa_t *)\n                                   (((re_dfa_t *)\n                                    ((bitset_word_t *)(auStack_144._4_4_ + 0x60) + -0x18))->\n                                    word_char + -0x18))->word_char + -0x18)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((re_dfa_t *)\n                                   (((re_dfa_t *)\n                                    ((bitset_word_t *)(auStack_144._4_4_ + 0x60) + -0x18))->\n                                    word_char + -0x18))->word_char + -0x18)" ( (binary_expression "((re_dfa_t *)\n                                   (((re_dfa_t *)\n                                    ((bitset_word_t *)(auStack_144._4_4_ + 0x60) + -0x18))->\n                                    word_char + -0x18))->word_char + -0x18" (field_expression "((re_dfa_t *)\n                                   (((re_dfa_t *)\n                                    ((bitset_word_t *)(auStack_144._4_4_ + 0x60) + -0x18))->\n                                    word_char + -0x18))->word_char" (parenthesized_expression "((re_dfa_t *)\n                                   (((re_dfa_t *)\n                                    ((bitset_word_t *)(auStack_144._4_4_ + 0x60) + -0x18))->\n                                    word_char + -0x18))" ( (cast_expression "(re_dfa_t *)\n                                   (((re_dfa_t *)\n                                    ((bitset_word_t *)(auStack_144._4_4_ + 0x60) + -0x18))->\n                                    word_char + -0x18)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((re_dfa_t *)\n                                    ((bitset_word_t *)(auStack_144._4_4_ + 0x60) + -0x18))->\n                                    word_char + -0x18)" ( (binary_expression "((re_dfa_t *)\n                                    ((bitset_word_t *)(auStack_144._4_4_ + 0x60) + -0x18))->\n                                    word_char + -0x18" (field_expression "((re_dfa_t *)\n                                    ((bitset_word_t *)(auStack_144._4_4_ + 0x60) + -0x18))->\n                                    word_char" (parenthesized_expression "((re_dfa_t *)\n                                    ((bitset_word_t *)(auStack_144._4_4_ + 0x60) + -0x18))" ( (cast_expression "(re_dfa_t *)\n                                    ((bitset_word_t *)(auStack_144._4_4_ + 0x60) + -0x18)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((bitset_word_t *)(auStack_144._4_4_ + 0x60) + -0x18)" ( (binary_expression "(bitset_word_t *)(auStack_144._4_4_ + 0x60) + -0x18" (cast_expression "(bitset_word_t *)(auStack_144._4_4_ + 0x60)" ( (type_descriptor "bitset_word_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(auStack_144._4_4_ + 0x60)" ( (binary_expression "auStack_144._4_4_ + 0x60" (field_expression "auStack_144._4_4_" identifier . field_identifier) + number_literal) ))) + number_literal) ))) )) -> field_identifier) + number_literal) ))) )) -> field_identifier) + number_literal) ))) )) -> field_identifier))) + number_literal) )))) ])) ;) }) (else_clause "else {\n          cVar29 = *pcStack_1e0;\n        }" else (compound_statement "{\n          cVar29 = *pcStack_1e0;\n        }" { (expression_statement "cVar29 = *pcStack_1e0;" (assignment_expression "cVar29 = *pcStack_1e0" identifier = (pointer_expression "*pcStack_1e0" * identifier)) ;) }))) (if_statement "if (cVar29 != '\0') break;" if (parenthesized_expression "(cVar29 != '\0')" ( (binary_expression "cVar29 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (break_statement "break;" break ;)) (expression_statement "in_a3 = (re_dfa_t *)((int)in_a3->word_char + iVar11 + -0x60);" (assignment_expression "in_a3 = (re_dfa_t *)((int)in_a3->word_char + iVar11 + -0x60)" identifier = (cast_expression "(re_dfa_t *)((int)in_a3->word_char + iVar11 + -0x60)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)in_a3->word_char + iVar11 + -0x60)" ( (binary_expression "(int)in_a3->word_char + iVar11 + -0x60" (binary_expression "(int)in_a3->word_char + iVar11" (cast_expression "(int)in_a3->word_char" ( (type_descriptor "int" primitive_type) ) (field_expression "in_a3->word_char" identifier -> field_identifier)) + identifier) + number_literal) )))) ;) (expression_statement "prStack_16c = in_a3;" (assignment_expression "prStack_16c = in_a3" identifier = identifier) ;) (if_statement "if (((int)in_a3 < (int)prVar46) || ((int)in_stack_ffffff80 < (int)in_a3)) goto LAB_0004df68;" if (parenthesized_expression "(((int)in_a3 < (int)prVar46) || ((int)in_stack_ffffff80 < (int)in_a3))" ( (binary_expression "((int)in_a3 < (int)prVar46) || ((int)in_stack_ffffff80 < (int)in_a3)" (parenthesized_expression "((int)in_a3 < (int)prVar46)" ( (binary_expression "(int)in_a3 < (int)prVar46" (cast_expression "(int)in_a3" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)prVar46" ( (type_descriptor "int" primitive_type) ) identifier)) )) || (parenthesized_expression "((int)in_stack_ffffff80 < (int)in_a3)" ( (binary_expression "(int)in_stack_ffffff80 < (int)in_a3" (cast_expression "(int)in_stack_ffffff80" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)in_a3" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (goto_statement "goto LAB_0004df68;" goto statement_identifier ;)) })) (expression_statement "prVar18 = (re_dfastate_t *)\n                re_string_reconstruct((re_string_t *)auStack_144,(Idx)in_a3,0x7d580);" (assignment_expression "prVar18 = (re_dfastate_t *)\n                re_string_reconstruct((re_string_t *)auStack_144,(Idx)in_a3,0x7d580)" identifier = (cast_expression "(re_dfastate_t *)\n                re_string_reconstruct((re_string_t *)auStack_144,(Idx)in_a3,0x7d580)" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "re_string_reconstruct((re_string_t *)auStack_144,(Idx)in_a3,0x7d580)" identifier (argument_list "((re_string_t *)auStack_144,(Idx)in_a3,0x7d580)" ( (cast_expression "(re_string_t *)auStack_144" ( (type_descriptor "re_string_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(Idx)in_a3" ( (type_descriptor "Idx" type_identifier) ) identifier) , number_literal ))))) ;) (expression_statement "uVar44 = auStack_144._84_4_;" (assignment_expression "uVar44 = auStack_144._84_4_" identifier = (field_expression "auStack_144._84_4_" identifier . field_identifier)) ;) (expression_statement "prVar39 = (re_dfastate_t *)auStack_144._40_4_;" (assignment_expression "prVar39 = (re_dfastate_t *)auStack_144._40_4_" identifier = (cast_expression "(re_dfastate_t *)auStack_144._40_4_" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStack_144._40_4_" identifier . field_identifier))) ;) (expression_statement "pprVar22 = (re_dfastate_t **)auStack_144._100_4_;" (assignment_expression "pprVar22 = (re_dfastate_t **)auStack_144._100_4_" identifier = (cast_expression "(re_dfastate_t **)auStack_144._100_4_" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (field_expression "auStack_144._100_4_" identifier . field_identifier))) ;) (expression_statement "prStack_1e4 = prVar18;" (assignment_expression "prStack_1e4 = prVar18" identifier = identifier) ;) (if_statement "if (prVar18 != (re_dfastate_t *)0x0) goto LAB_0004dbbc;" if (parenthesized_expression "(prVar18 != (re_dfastate_t *)0x0)" ( (binary_expression "prVar18 != (re_dfastate_t *)0x0" identifier != (cast_expression "(re_dfastate_t *)0x0" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004dbbc;" goto statement_identifier ;)) (if_statement "if (((iVar31 == 1) || ((re_dfa_t *)auStack_144._28_4_ == (re_dfa_t *)0x0)) ||\n         (*(re_hashval_t *)auStack_144._8_4_ != 0xffffffff)) {\n        auStack_144._120_4_ = (anon_union_4_2_9a799d16_for___pthread_mutex_s_5)0x0;\n        auStack_144._108_4_ = 0;\n        prVar52 = *(re_dfastate_t **)(auStack_144._84_4_ + 0x24);\n        prStack_1d0 = (re_dfastate_t *)auStack_144._40_4_;\n        auStack_144._104_4_ = 0;\n        auStack_168._0_4_ = (re_dfastate_t *)0x0;\n        if ((prVar52->field_0x34 & 1) != 0) {\n          uVar32 = re_string_context_at\n                             ((re_string_t *)auStack_144,\n                              (Idx)&((re_dfastate_t *)(auStack_144._40_4_ + -0x38))->field_0x37,\n                              auStack_144._88_4_);\n          if ((uVar32 & 1) == 0) {\n            if (uVar32 == 0) goto LAB_0004dd24;\n            if ((uVar32 & 6) == 6) {\n              prVar52 = *(re_dfastate_t **)(uVar44 + 0x30);\n            }\n            else if ((uVar32 & 2) == 0) {\n              if ((uVar32 & 4) == 0) goto LAB_0004dd24;\n              prVar52 = re_acquire_state_context\n                                  ((reg_errcode_t *)auStack_168,(re_dfa_t *)uVar44,\n                                   prVar52->entrance_nodes,uVar32);\n            }\n            else {\n              prVar52 = *(re_dfastate_t **)(uVar44 + 0x2c);\n            }\n          }\n          else {\n            prVar52 = *(re_dfastate_t **)(uVar44 + 0x28);\n          }\n          if (prVar52 == (re_dfastate_t *)0x0) goto code_r0x0004ea7c;\n        }\nLAB_0004dd24:\n        bVar4 = pprVar16 != (re_dfa_t **)0x0;\n        if (((re_dfastate_t **)auStack_144._100_4_ == (re_dfastate_t **)0x0) ||\n           (iVar35 = *(Idx *)(uVar44 + 0x4c),\n           *(re_dfastate_t **)(auStack_144._100_4_ + (int)prVar39 * 4) = prVar52, iVar35 == 0)) {\nLAB_0004dd48:\n          if (*(int *)&prVar52->field_0x34 << 4 < 0) {\n            if (((prVar52->field_0x34 & 1) == 0) ||\n               (IVar21 = check_halt_state_context\n                                   ((re_match_context_t *)auStack_144,\n                                    (re_dfastate_t *)(prVar52->nodes).nelem,\n                                    (Idx)&(prVar52->nodes).elems,prVar39), IVar21 != 0)) {\n              prVar38 = prVar39;\n              bVar5 = bVar30;\n              if (!bVar30) goto LAB_0004e0e4;\n            }\n            else {\n              prVar39 = (re_dfastate_t *)0xffffffff;\n              bVar5 = false;\n            }\n          }\n          else {\n            prVar39 = (re_dfastate_t *)0xffffffff;\n            bVar5 = false;\n          }\n          iVar35 = *(int *)(puVar56 + 0x28244);\n          iVar19 = *(int *)(puVar56 + 0x2829c);\n          prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n          pprStack_1dc = pprVar16;\n          while ((int)prVar38 < (int)auStack_144._56_4_) {\n            prVar51 = (re_dfastate_t *)((int)&prVar38->hash + 1);\n            if ((((int)prVar51 < (int)auStack_144._36_4_) ||\n                ((int)auStack_144._48_4_ <= (int)auStack_144._36_4_)) &&\n               (((int)prVar51 < (int)auStack_144._28_4_ ||\n                ((int)auStack_144._48_4_ <= (int)auStack_144._28_4_)))) {\n              iVar20 = *(int *)&prVar52->field_0x34;\n              prVar48 = (re_dfa_t *)auStack_144._84_4_;\n            }\n            else {\n              auStack_168._0_4_ =\n                   (*(code *)(iVar35 + 0x41e4))\n                             ((re_match_context_t *)auStack_144,\n                              (undefined1 *)((int)&prVar38->hash + 2));\n              if ((re_dfastate_t *)auStack_168._0_4_ != (re_dfastate_t *)0x0) {\n                if ((re_dfastate_t *)auStack_168._0_4_ == (re_dfastate_t *)0xc) goto LAB_0004dbf8;\n                uVar44 = 0x46c;\n                goto LAB_0004ea9c;\n              }\n              iVar20 = *(int *)&prVar52->field_0x34;\n              prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n              prVar48 = (re_dfa_t *)auStack_144._84_4_;\n            }\n            auStack_144._84_4_ = prVar48;\n            if (iVar20 << 5 < 0) {\n              iVar20 = (prVar52->nodes).nelem;\n              if (0 < iVar20) {\n                in_a3 = (re_dfa_t *)0x0;\n                iVar24 = *(int *)(puVar56 + 0x28244);\n                pcVar55 = (code *)(*(int *)(puVar56 + 0x28244) + 0x7ab0);\n                do {\n                  prVar40 = prVar48->nodes;\n                  iVar54 = (prVar52->nodes).elems[(int)in_a3];\n                  uVar32 = *(uint *)&prVar40[iVar54].field_0x4;\n                  if ((uVar32 & 0x800) != 0) {\n                    if ((uVar32 & 0xffc000) != 0) {\n                      uVar15 = (*pcVar55)((re_match_context_t *)auStack_144,prVar38,\n                                          auStack_144._88_4_);\n                      uVar32 = (uVar32 << 8) >> 0x16;\n                      if ((uVar32 & 4) == 0) {\n                        uVar37 = uVar15 & 1;\n                        if ((uVar32 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar37 = uVar32 & 8;\n                        if ((uVar15 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar37 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar32 & 0x20) != 0) && ((uVar15 & 2) == 0)) ||\n                         (((uVar32 & 0x80) != 0 && ((uVar15 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    aVar25.__spins =\n                         (*(code *)(iVar19 + -0x4eb0))\n                                   (prVar40,&prVar48->syntax,iVar54,\n                                    (re_match_context_t *)auStack_144,prVar38);\n                    if (aVar25.__spins != 0) {\n                      if ((int)auStack_144._120_4_ < aVar25.__spins) {\n                        auStack_144._120_4_ = aVar25.__spins;\n                      }\n                      puVar45 = (undefined1 *)\n                                ((int)(re_hashval_t *)auStack_144._40_4_ + aVar25.__spins);\n                      auStack_168._4_4_ =\n                           (*(code *)(iVar24 + 0x43b0))((re_match_context_t *)auStack_144,puVar45);\n                      prVar38 = (re_dfastate_t *)auStack_168._4_4_;\n                      if ((re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0)\n                      goto joined_r0x0004e770;\n                      iVar20 = (int)puVar45 * 4;\n                      pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + iVar20);\n                      prVar38 = *pprVar22;\n                      src2 = prVar48->eclosures + prVar48->nexts[iVar54];\n                      if (prVar38 == (re_dfastate_t *)0x0) {\n                        rStack_160.sifted_states = (re_dfastate_t **)src2->alloc;\n                        rStack_160.limited_states = (re_dfastate_t **)src2->nelem;\n                        rStack_160.last_node = (Idx)src2->elems;\n                        uVar32 = (*pcVar55)((re_match_context_t *)auStack_144,\n                                            (re_dfastate_t *)(puVar45 + -1),auStack_144._88_4_);\n                        prVar38 = re_acquire_state_context\n                                            ((reg_errcode_t *)(auStack_168 + 4),prVar48,\n                                             (re_node_set *)(auStack_168 + 8),uVar32);\n                        *pprVar22 = prVar38;\n                      }\n                      else {\n                        auStack_168._4_4_ =\n                             re_node_set_init_union\n                                       ((re_node_set *)(auStack_168 + 8),prVar38->entrance_nodes,\n                                        src2);\n                        prVar38 = (re_dfastate_t *)auStack_168._4_4_;\n                        if ((re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0)\n                        goto joined_r0x0004e770;\n                        uVar32 = (*pcVar55)((re_match_context_t *)auStack_144,\n                                            (re_dfastate_t *)(puVar45 + -1),auStack_144._88_4_);\n                        pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + iVar20);\n                        prVar38 = re_acquire_state_context\n                                            ((reg_errcode_t *)(auStack_168 + 4),prVar48,\n                                             (re_node_set *)(auStack_168 + 8),uVar32);\n                        pcVar8 = *(code **)(puVar56 + 0x28520);\n                        *pprVar22 = prVar38;\n                        (*pcVar8)(rStack_160.last_node);\n                      }\n                      if ((*(re_dfastate_t **)(auStack_144._100_4_ + iVar20) == (re_dfastate_t *)0x0\n                          ) && (prVar38 = (re_dfastate_t *)auStack_168._4_4_,\n                               (re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar20 = (prVar52->nodes).nelem;\n                    prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n                  }\nLAB_0004e670:\n                  in_a3 = (re_dfa_t *)((int)&((re_string_t *)&in_a3->nodes)->raw_mbs + 1);\n                } while ((int)in_a3 < iVar20);\n              }\n              auStack_168._0_4_ = (re_dfastate_t *)0x0;\n            }\n            auStack_144._40_4_ = (int)&prVar38->hash + 1;\n            uVar32 = (uint)*(byte *)((int)((re_dfa_t *)\n                                          ((bitset_word_t *)(auStack_144._4_4_ + 0x60) + -0x18))->\n                                          word_char + (int)&prVar38[-2].non_eps_nodes);\n            do {\n              if (prVar52->trtable != (re_dfastate_t **)0x0) {\n                prVar49 = prVar52->trtable[uVar32];\nLAB_0004ddf0:\n                if ((re_dfastate_t **)auStack_144._100_4_ != (re_dfastate_t **)0x0)\n                goto LAB_0004ddfc;\n                goto LAB_0004de1c;\n              }\n              pprVar22 = prVar52->word_trtable;\n              if (pprVar22 != (re_dfastate_t **)0x0) {\n                uVar15 = re_string_context_at\n                                   ((re_string_t *)auStack_144,\n                                    (Idx)&((re_dfastate_t *)(auStack_144._40_4_ + -0x38))->\n                                          field_0x37,auStack_144._88_4_);\n                if ((uVar15 & 1) == 0) {\n                  prVar49 = pprVar22[uVar32];\n                }\n                else {\n                  prVar49 = pprVar22[uVar32 + 0x100];\n                }\n                goto LAB_0004ddf0;\n              }\n              iVar20 = (*(code *)(iVar34 + -0x7510))(auStack_144._84_4_,prVar52);\n            } while (iVar20 != 0);\n            auStack_168._0_4_ = (re_dfastate_t *)0xc;\n            prVar38 = (re_dfastate_t *)auStack_168._0_4_;\njoined_r0x0004e770:\n            auStack_168._0_4_ = prVar38;\n            if ((re_dfastate_t **)auStack_144._100_4_ == (re_dfastate_t **)0x0) {\n              pprVar22 = (re_dfastate_t **)0x0;\n              goto LAB_0004dbb4;\n            }\n            prVar49 = (re_dfastate_t *)0x0;\nLAB_0004ddfc:\n            prVar49 = merge_state_with_log\n                                ((reg_errcode_t *)auStack_168,(re_match_context_t *)auStack_144,\n                                 prVar49);\nLAB_0004de1c:\n            prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n            if (prVar49 == (re_dfastate_t *)0x0) {\n              pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n              if ((re_dfastate_t *)auStack_168._0_4_ != (re_dfastate_t *)0x0) goto LAB_0004dbb4;\n              if (((re_dfastate_t **)auStack_144._100_4_ == (re_dfastate_t **)0x0) ||\n                 ((bVar5 && (!bVar30)))) break;\n              in_a3 = (re_dfa_t *)auStack_168;\n              do {\n                bVar3 = false;\n                pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + auStack_144._40_4_ * 4);\n                prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n                do {\n                  prVar49 = (re_dfastate_t *)((int)&prVar38->hash + 1);\n                  pprVar22 = pprVar22 + 1;\n                  if ((int)auStack_144._104_4_ < (int)prVar49) {\n                    if (bVar3) {\n                      auStack_144._40_4_ = prVar38;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar3 = true;\n                  prVar38 = prVar49;\n                } while (*pprVar22 == (re_dfastate_t *)0x0);\n                auStack_144._40_4_ = prVar49;\n                prVar49 = merge_state_with_log\n                                    ((reg_errcode_t *)in_a3,(re_match_context_t *)auStack_144,\n                                     (re_dfastate_t *)0x0);\n                prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n                if ((re_dfastate_t *)auStack_168._0_4_ != (re_dfastate_t *)0x0) {\n                  if (prVar49 == (re_dfastate_t *)0x0) goto LAB_0004e0cc;\n                  break;\n                }\n              } while (prVar49 == (re_dfastate_t *)0x0);\n            }\n            prVar6 = prStack_1d0;\n            if ((bVar4) && (prVar6 = prVar51, prVar52 != prVar49)) {\n              bVar4 = false;\n              prVar6 = prStack_1d0;\n            }\n            prStack_1d0 = prVar6;\n            prVar52 = prVar49;\n            auStack_144._40_4_ = prVar38;\n            if (((prVar49->field_0x34 & 8) != 0) &&\n               (((prVar49->field_0x34 & 1) == 0 ||\n                (IVar21 = check_halt_state_context\n                                    ((re_match_context_t *)auStack_144,\n                                     (re_dfastate_t *)(prVar49->nodes).nelem,\n                                     (Idx)&(prVar49->nodes).elems,prVar38), IVar21 != 0)))) {\n              if (!bVar30) goto LAB_0004e0e4;\n              pprStack_1dc = (re_dfa_t **)0x0;\n              prVar39 = prVar38;\n              bVar5 = bVar30;\n            }\n          }\nLAB_0004e0cc:\n          prVar38 = prVar39;\n          if (pprStack_1dc != (re_dfa_t **)0x0) {\n            *pprStack_1dc = (re_dfa_t *)((int)&prStack_1d0->hash + (int)*pprStack_1dc);\n          }\n        }\n        else {\n          pIVar23 = &(prVar52->nodes).nelem;\n          nodes_1 = &(prVar52->nodes).elems;\n          prVar38 = (re_dfastate_t *)\n                    check_subexp_matching_top\n                              ((re_match_context_t *)auStack_144,(re_node_set *)pIVar23,(Idx)nodes_1\n                               ,(re_node_set *)0x0);\n          auStack_168._0_4_ = prVar38;\n          if (prVar38 == (re_dfastate_t *)0x0) {\n            if ((prVar52->field_0x34 & 2) == 0) {\n              bVar4 = false;\n            }\n            else {\n              prVar38 = (re_dfastate_t *)\n                        transit_state_bkref((re_match_context_t *)auStack_144,(re_node_set *)pIVar23\n                                            ,(re_node_set *)nodes_1);\n              auStack_168._0_4_ = prVar38;\n              if (prVar38 != (re_dfastate_t *)0x0) goto LAB_0004e0e4;\n              bVar4 = false;\n            }\n            goto LAB_0004dd48;\n          }\n        }\nLAB_0004e0e4:\n        pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n        if (prVar38 != (re_dfastate_t *)0xffffffff) {\n          if (prVar38 == (re_dfastate_t *)&SUB_fffffffe) goto LAB_0004dbf8;\n          auStack_144._92_4_ = prVar38;\n          if (((preg->input).valid_len & 0x8000000) == 0) {\n            if (!bVar2) {\n              iVar35 = prVar53->nbackref;\n              goto joined_r0x0004e94c;\n            }\n            pcVar55 = (code *)(*(int *)(puVar56 + 0x28244) + 0x7d8c);\n            prVar39 = *(re_dfastate_t **)(auStack_144._100_4_ + (int)prVar38 * 4);\n            auStack_144._96_4_ =\n                 check_halt_state_context\n                           ((re_match_context_t *)auStack_144,\n                            (re_dfastate_t *)(prVar39->nodes).nelem,(Idx)&(prVar39->nodes).elems,\n                            prVar38);\n            if (((char)prVar53->field_0x58 < '\0') || (prVar53->nbackref != 0)) goto LAB_0004e170;\n          }\n          else {\n            iVar35 = prVar53->nbackref;\njoined_r0x0004e94c:\n            if (iVar35 != 0) {\n              pcVar55 = (code *)(*(int *)(puVar56 + 0x28244) + 0x7d8c);\n              prVar39 = *(re_dfastate_t **)(auStack_144._100_4_ + (int)prVar38 * 4);\n              auStack_144._96_4_ =\n                   check_halt_state_context\n                             ((re_match_context_t *)auStack_144,\n                              (re_dfastate_t *)(prVar39->nodes).nelem,(Idx)&(prVar39->nodes).elems,\n                              prVar38);\nLAB_0004e170:\n              pIVar23 = (Idx *)auStack_144._96_4_;\n              uVar44 = auStack_144._84_4_;\n              if (prVar38 < (re_dfastate_t *)0x3fffffff) {\n                prStack_1f0 = (re_dfastate_t *)((int)&prVar38->hash + 1);\n                pprVar22 = (re_dfastate_t **)(**(code **)(puVar56 + 0x28450))((int)prStack_1f0 * 4);\n                if (pprVar22 == (re_dfastate_t **)0x0) goto LAB_0004dbf8;\n                if (*(Idx *)(uVar44 + 0x4c) == 0) {\n                  rStack_160.limited_states = (re_dfastate_t **)0x0;\n                  rStack_160.limits.alloc = 0;\n                  rStack_160.limits.nelem = 0;\n                  rStack_160.limits.elems = (Idx *)0x0;\n                  rStack_160.sifted_states = pprVar22;\n                  rStack_160.last_node = (Idx)pIVar23;\n                  rStack_160.last_str_idx = (Idx)prVar38;\n                  prStack_1e4 = (re_dfastate_t *)\n                                sift_states_backward\n                                          ((re_match_context_t *)auStack_144,\n                                           (re_sift_context_t *)(auStack_168 + 8));\n                  (**(code **)(puVar56 + 0x28520))(rStack_160.limits.elems);\n                  if (prStack_1e4 == (re_dfastate_t *)0x0) {\n                    if (*pprVar22 == (re_dfastate_t *)0x0) {\n                      (**(code **)(puVar56 + 0x28520))(pprVar22);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar56 + 0x28520))(auStack_144._100_4_);\n                    auStack_144._92_4_ = prVar38;\n                    auStack_144._96_4_ = pIVar23;\n                    auStack_144._100_4_ = pprVar22;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  pprStack_1ec = (re_dfastate_t **)0x0;\n                }\n                else {\n                  pprStack_1ec = (re_dfastate_t **)\n                                 (**(code **)(puVar56 + 0x28450))((int)prStack_1f0 * 4);\n                  if (pprStack_1ec == (re_dfastate_t **)0x0) {\n                    (**(code **)(puVar56 + 0x28520))(pprVar22);\n                    prStack_1e4 = (re_dfastate_t *)0xc;\n                    pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar35 = *(int *)(puVar56 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar56 + 0x283f8))(pprStack_1ec,0,(int)prStack_1f0 * 4);\n                    rStack_160.limits.alloc = 0;\n                    rStack_160.limits.nelem = 0;\n                    rStack_160.limits.elems = (Idx *)0x0;\n                    rStack_160.sifted_states = pprVar22;\n                    rStack_160.limited_states = pprStack_1ec;\n                    rStack_160.last_node = (Idx)pIVar23;\n                    rStack_160.last_str_idx = (Idx)prVar38;\n                    prStack_1e4 = (re_dfastate_t *)\n                                  (*(code *)(iVar35 + -0x2cf4))\n                                            ((re_match_context_t *)auStack_144,auStack_168 + 8);\n                    (**(code **)(puVar56 + 0x28520))(rStack_160.limits.elems);\n                    if (prStack_1e4 != (re_dfastate_t *)0x0) break;\n                    if ((*pprVar22 != (re_dfastate_t *)0x0) ||\n                       (*pprStack_1ec != (re_dfastate_t *)0x0)) {\n                      prStack_1e4 = (re_dfastate_t *)\n                                    merge_state_array((re_dfa_t *)uVar44,pprVar22,pprStack_1ec,\n                                                      (Idx)prStack_1f0);\n                      (**(code **)(puVar56 + 0x28520))(pprStack_1ec);\n                      if (prStack_1e4 != (re_dfastate_t *)0x0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    iVar19 = auStack_144._100_4_ + (int)prStack_1f0 * 4 + -4;\n                    prStack_1f0 = prVar38;\n                    while( true ) {\n                      prVar38 = (re_dfastate_t *)&prStack_1f0[-1].field_0x37;\n                      if (prVar38 == (re_dfastate_t *)0xffffffff) {\n                        (**(code **)(puVar56 + 0x28520))(pprVar22);\n                        (**(code **)(puVar56 + 0x28520))(pprStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar20 = *(int *)(iVar19 + -4);\n                      if ((iVar20 != 0) && ((*(byte *)(iVar20 + 0x34) & 8) != 0)) break;\n                      iVar19 = iVar19 + -4;\n                      prStack_1f0 = prVar38;\n                    }\n                    pIVar23 = (Idx *)(*pcVar55)((re_match_context_t *)auStack_144,\n                                                *(undefined4 *)(iVar20 + 8),iVar20 + 0xc,prVar38);\n                  }\n                }\n                (**(code **)(puVar56 + 0x28520))(pprVar22);\n                (**(code **)(puVar56 + 0x28520))(pprStack_1ec);\n                pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n                if (prStack_1e4 == (re_dfastate_t *)0x1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }\n              prStack_1e4 = (re_dfastate_t *)0xc;\n              goto LAB_0004dbbc;\n            }\n          }\nLAB_0004e7e0:\n          pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n          prStack_1e4 = prVar18;\n          if (prStack_78 == (re_dfa_t *)0x0) goto LAB_0004dbbc;\n          IVar21 = (preg->input).valid_len;\n          if (bVar2) {\n            prVar27 = prStack_74 + 1;\n            do {\n              prVar27->rm_eo = -1;\n              prVar26 = prVar27 + 1;\n              prVar27->rm_so = -1;\n              prVar27 = prVar26;\n            } while (prStack_74 + (int)prStack_78 != prVar26);\n            prStack_74->rm_so = 0;\n            prStack_74->rm_eo = auStack_144._92_4_;\n            if ((IVar21 & 0x8000000) == 0) {\n              if ((char)prVar53->field_0x58 < '\0') {\n                bVar30 = 0 < prVar53->nbackref;\n              }\n              else {\n                bVar30 = false;\n              }\n              prStack_1e4 = (re_dfastate_t *)\n                            set_regs((regex_t *)preg,(re_match_context_t *)auStack_144,\n                                     (size_t)prStack_78,prStack_74,bVar30);\n              pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n              if (prStack_1e4 != (re_dfastate_t *)0x0) goto LAB_0004dbbc;\n              prVar46 = (re_dfa_t *)prStack_74->rm_so;\n            }\n            else {\nLAB_0004e838:\n              prVar46 = (re_dfa_t *)0x0;\n            }\n            prVar48 = (re_dfa_t *)0x0;\n            prVar27 = prStack_74;\n            while( true ) {\n              if (prVar46 != (re_dfa_t *)0xffffffff) {\n                prVar42 = (re_dfa_t *)prVar27->rm_eo;\n                prVar50 = prVar46;\n                prVar43 = prVar42;\n                if (auStack_144[0x4c] != '\0') {\n                  prVar50 = (re_dfa_t *)auStack_144._32_4_;\n                  if ((re_dfa_t *)auStack_144._28_4_ != prVar46) {\n                    prVar50 = (re_dfa_t *)((re_hashval_t *)auStack_144._12_4_)[(int)prVar46];\n                  }\n                  prVar27->rm_so = (regoff_t)prVar50;\n                  prVar43 = (re_dfa_t *)auStack_144._32_4_;\n                  if ((re_dfa_t *)auStack_144._28_4_ != prVar42) {\n                    prVar43 = (re_dfa_t *)((re_hashval_t *)auStack_144._12_4_)[(int)prVar42];\n                  }\n                }\n                prVar27->rm_so =\n                     (int)(((re_dfa_t *)\n                           (((re_dfa_t *)(prVar50->word_char + -0x18))->word_char + -0x18))->\n                           word_char + 0xffffffe8) +\n                     (int)((re_dfa_t *)\n                          (((re_dfa_t *)\n                           (((re_dfa_t *)(prStack_16c->word_char + -0x18))->word_char + -0x18))->\n                           word_char + -0x18))->word_char + 0xffffffa0U;\n                prVar27->rm_eo =\n                     (int)(((re_dfa_t *)\n                           (((re_dfa_t *)(prVar43->word_char + -0x18))->word_char + -0x18))->\n                           word_char + 0xffffffe8) +\n                     (int)((re_dfa_t *)\n                          (((re_dfa_t *)\n                           (((re_dfa_t *)(prStack_16c->word_char + -0x18))->word_char + -0x18))->\n                           word_char + -0x18))->word_char + 0xffffffa0U;\n              }\n              prVar48 = (re_dfa_t *)((int)&prVar48->nodes + 1);\n              prVar27 = prVar27 + 1;\n              if (prVar48 == prStack_78) break;\n              prVar46 = (re_dfa_t *)prVar27->rm_so;\n            }\n            if (0 < iStack_180) {\n              prVar27 = prStack_74 + (int)prStack_78;\n              do {\n                prVar27->rm_so = -1;\n                prVar26 = prVar27 + 1;\n                prVar27->rm_eo = -1;\n                prVar27 = prVar26;\n              } while (prStack_74 + (int)prStack_78->word_char + iStack_180 + -0x60 != prVar26);\n            }\n            pIVar23 = prVar53->subexp_map;\n            pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n            prStack_1e4 = prVar18;\n            if (pIVar23 != (Idx *)0x0) {\n              puVar45 = (undefined1 *)0x0;\n              prVar27 = prStack_74;\n              do {\n                pcVar55 = *(code **)(puVar56 + 0x28520);\n                if (puVar45 == (undefined1 *)((int)&prStack_78[-1].lock + 0x17)) goto LAB_0004dbc0;\n                if ((undefined1 *)*pIVar23 != puVar45) {\n                  prVar27[1].rm_so = prStack_74[(int)((undefined1 *)*pIVar23 + 1)].rm_so;\n                  prVar27[1].rm_eo = prStack_74[*pIVar23 + 1].rm_eo;\n                }\n                puVar45 = puVar45 + 1;\n                pIVar23 = pIVar23 + 1;\n                prVar27 = prVar27 + 1;\n              } while( true );\n            }\n            goto LAB_0004dbbc;\n          }\n          prStack_74->rm_so = 0;\n          prStack_74->rm_eo = auStack_144._92_4_;\n          goto LAB_0004e838;\n        }\nLAB_0004e2d4:\n        match_ctx_clean((re_match_context_t *)auStack_144);\n        in_a3 = prStack_16c;\n      }" if (parenthesized_expression "(((iVar31 == 1) || ((re_dfa_t *)auStack_144._28_4_ == (re_dfa_t *)0x0)) ||\n         (*(re_hashval_t *)auStack_144._8_4_ != 0xffffffff))" ( (binary_expression "((iVar31 == 1) || ((re_dfa_t *)auStack_144._28_4_ == (re_dfa_t *)0x0)) ||\n         (*(re_hashval_t *)auStack_144._8_4_ != 0xffffffff)" (parenthesized_expression "((iVar31 == 1) || ((re_dfa_t *)auStack_144._28_4_ == (re_dfa_t *)0x0))" ( (binary_expression "(iVar31 == 1) || ((re_dfa_t *)auStack_144._28_4_ == (re_dfa_t *)0x0)" (parenthesized_expression "(iVar31 == 1)" ( (binary_expression "iVar31 == 1" identifier == number_literal) )) || (parenthesized_expression "((re_dfa_t *)auStack_144._28_4_ == (re_dfa_t *)0x0)" ( (binary_expression "(re_dfa_t *)auStack_144._28_4_ == (re_dfa_t *)0x0" (cast_expression "(re_dfa_t *)auStack_144._28_4_" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStack_144._28_4_" identifier . field_identifier)) == (cast_expression "(re_dfa_t *)0x0" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) || (parenthesized_expression "(*(re_hashval_t *)auStack_144._8_4_ != 0xffffffff)" ( (binary_expression "*(re_hashval_t *)auStack_144._8_4_ != 0xffffffff" (pointer_expression "*(re_hashval_t *)auStack_144._8_4_" * (cast_expression "(re_hashval_t *)auStack_144._8_4_" ( (type_descriptor "re_hashval_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStack_144._8_4_" identifier . field_identifier))) != number_literal) ))) )) (compound_statement "{\n        auStack_144._120_4_ = (anon_union_4_2_9a799d16_for___pthread_mutex_s_5)0x0;\n        auStack_144._108_4_ = 0;\n        prVar52 = *(re_dfastate_t **)(auStack_144._84_4_ + 0x24);\n        prStack_1d0 = (re_dfastate_t *)auStack_144._40_4_;\n        auStack_144._104_4_ = 0;\n        auStack_168._0_4_ = (re_dfastate_t *)0x0;\n        if ((prVar52->field_0x34 & 1) != 0) {\n          uVar32 = re_string_context_at\n                             ((re_string_t *)auStack_144,\n                              (Idx)&((re_dfastate_t *)(auStack_144._40_4_ + -0x38))->field_0x37,\n                              auStack_144._88_4_);\n          if ((uVar32 & 1) == 0) {\n            if (uVar32 == 0) goto LAB_0004dd24;\n            if ((uVar32 & 6) == 6) {\n              prVar52 = *(re_dfastate_t **)(uVar44 + 0x30);\n            }\n            else if ((uVar32 & 2) == 0) {\n              if ((uVar32 & 4) == 0) goto LAB_0004dd24;\n              prVar52 = re_acquire_state_context\n                                  ((reg_errcode_t *)auStack_168,(re_dfa_t *)uVar44,\n                                   prVar52->entrance_nodes,uVar32);\n            }\n            else {\n              prVar52 = *(re_dfastate_t **)(uVar44 + 0x2c);\n            }\n          }\n          else {\n            prVar52 = *(re_dfastate_t **)(uVar44 + 0x28);\n          }\n          if (prVar52 == (re_dfastate_t *)0x0) goto code_r0x0004ea7c;\n        }\nLAB_0004dd24:\n        bVar4 = pprVar16 != (re_dfa_t **)0x0;\n        if (((re_dfastate_t **)auStack_144._100_4_ == (re_dfastate_t **)0x0) ||\n           (iVar35 = *(Idx *)(uVar44 + 0x4c),\n           *(re_dfastate_t **)(auStack_144._100_4_ + (int)prVar39 * 4) = prVar52, iVar35 == 0)) {\nLAB_0004dd48:\n          if (*(int *)&prVar52->field_0x34 << 4 < 0) {\n            if (((prVar52->field_0x34 & 1) == 0) ||\n               (IVar21 = check_halt_state_context\n                                   ((re_match_context_t *)auStack_144,\n                                    (re_dfastate_t *)(prVar52->nodes).nelem,\n                                    (Idx)&(prVar52->nodes).elems,prVar39), IVar21 != 0)) {\n              prVar38 = prVar39;\n              bVar5 = bVar30;\n              if (!bVar30) goto LAB_0004e0e4;\n            }\n            else {\n              prVar39 = (re_dfastate_t *)0xffffffff;\n              bVar5 = false;\n            }\n          }\n          else {\n            prVar39 = (re_dfastate_t *)0xffffffff;\n            bVar5 = false;\n          }\n          iVar35 = *(int *)(puVar56 + 0x28244);\n          iVar19 = *(int *)(puVar56 + 0x2829c);\n          prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n          pprStack_1dc = pprVar16;\n          while ((int)prVar38 < (int)auStack_144._56_4_) {\n            prVar51 = (re_dfastate_t *)((int)&prVar38->hash + 1);\n            if ((((int)prVar51 < (int)auStack_144._36_4_) ||\n                ((int)auStack_144._48_4_ <= (int)auStack_144._36_4_)) &&\n               (((int)prVar51 < (int)auStack_144._28_4_ ||\n                ((int)auStack_144._48_4_ <= (int)auStack_144._28_4_)))) {\n              iVar20 = *(int *)&prVar52->field_0x34;\n              prVar48 = (re_dfa_t *)auStack_144._84_4_;\n            }\n            else {\n              auStack_168._0_4_ =\n                   (*(code *)(iVar35 + 0x41e4))\n                             ((re_match_context_t *)auStack_144,\n                              (undefined1 *)((int)&prVar38->hash + 2));\n              if ((re_dfastate_t *)auStack_168._0_4_ != (re_dfastate_t *)0x0) {\n                if ((re_dfastate_t *)auStack_168._0_4_ == (re_dfastate_t *)0xc) goto LAB_0004dbf8;\n                uVar44 = 0x46c;\n                goto LAB_0004ea9c;\n              }\n              iVar20 = *(int *)&prVar52->field_0x34;\n              prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n              prVar48 = (re_dfa_t *)auStack_144._84_4_;\n            }\n            auStack_144._84_4_ = prVar48;\n            if (iVar20 << 5 < 0) {\n              iVar20 = (prVar52->nodes).nelem;\n              if (0 < iVar20) {\n                in_a3 = (re_dfa_t *)0x0;\n                iVar24 = *(int *)(puVar56 + 0x28244);\n                pcVar55 = (code *)(*(int *)(puVar56 + 0x28244) + 0x7ab0);\n                do {\n                  prVar40 = prVar48->nodes;\n                  iVar54 = (prVar52->nodes).elems[(int)in_a3];\n                  uVar32 = *(uint *)&prVar40[iVar54].field_0x4;\n                  if ((uVar32 & 0x800) != 0) {\n                    if ((uVar32 & 0xffc000) != 0) {\n                      uVar15 = (*pcVar55)((re_match_context_t *)auStack_144,prVar38,\n                                          auStack_144._88_4_);\n                      uVar32 = (uVar32 << 8) >> 0x16;\n                      if ((uVar32 & 4) == 0) {\n                        uVar37 = uVar15 & 1;\n                        if ((uVar32 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar37 = uVar32 & 8;\n                        if ((uVar15 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar37 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar32 & 0x20) != 0) && ((uVar15 & 2) == 0)) ||\n                         (((uVar32 & 0x80) != 0 && ((uVar15 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    aVar25.__spins =\n                         (*(code *)(iVar19 + -0x4eb0))\n                                   (prVar40,&prVar48->syntax,iVar54,\n                                    (re_match_context_t *)auStack_144,prVar38);\n                    if (aVar25.__spins != 0) {\n                      if ((int)auStack_144._120_4_ < aVar25.__spins) {\n                        auStack_144._120_4_ = aVar25.__spins;\n                      }\n                      puVar45 = (undefined1 *)\n                                ((int)(re_hashval_t *)auStack_144._40_4_ + aVar25.__spins);\n                      auStack_168._4_4_ =\n                           (*(code *)(iVar24 + 0x43b0))((re_match_context_t *)auStack_144,puVar45);\n                      prVar38 = (re_dfastate_t *)auStack_168._4_4_;\n                      if ((re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0)\n                      goto joined_r0x0004e770;\n                      iVar20 = (int)puVar45 * 4;\n                      pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + iVar20);\n                      prVar38 = *pprVar22;\n                      src2 = prVar48->eclosures + prVar48->nexts[iVar54];\n                      if (prVar38 == (re_dfastate_t *)0x0) {\n                        rStack_160.sifted_states = (re_dfastate_t **)src2->alloc;\n                        rStack_160.limited_states = (re_dfastate_t **)src2->nelem;\n                        rStack_160.last_node = (Idx)src2->elems;\n                        uVar32 = (*pcVar55)((re_match_context_t *)auStack_144,\n                                            (re_dfastate_t *)(puVar45 + -1),auStack_144._88_4_);\n                        prVar38 = re_acquire_state_context\n                                            ((reg_errcode_t *)(auStack_168 + 4),prVar48,\n                                             (re_node_set *)(auStack_168 + 8),uVar32);\n                        *pprVar22 = prVar38;\n                      }\n                      else {\n                        auStack_168._4_4_ =\n                             re_node_set_init_union\n                                       ((re_node_set *)(auStack_168 + 8),prVar38->entrance_nodes,\n                                        src2);\n                        prVar38 = (re_dfastate_t *)auStack_168._4_4_;\n                        if ((re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0)\n                        goto joined_r0x0004e770;\n                        uVar32 = (*pcVar55)((re_match_context_t *)auStack_144,\n                                            (re_dfastate_t *)(puVar45 + -1),auStack_144._88_4_);\n                        pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + iVar20);\n                        prVar38 = re_acquire_state_context\n                                            ((reg_errcode_t *)(auStack_168 + 4),prVar48,\n                                             (re_node_set *)(auStack_168 + 8),uVar32);\n                        pcVar8 = *(code **)(puVar56 + 0x28520);\n                        *pprVar22 = prVar38;\n                        (*pcVar8)(rStack_160.last_node);\n                      }\n                      if ((*(re_dfastate_t **)(auStack_144._100_4_ + iVar20) == (re_dfastate_t *)0x0\n                          ) && (prVar38 = (re_dfastate_t *)auStack_168._4_4_,\n                               (re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar20 = (prVar52->nodes).nelem;\n                    prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n                  }\nLAB_0004e670:\n                  in_a3 = (re_dfa_t *)((int)&((re_string_t *)&in_a3->nodes)->raw_mbs + 1);\n                } while ((int)in_a3 < iVar20);\n              }\n              auStack_168._0_4_ = (re_dfastate_t *)0x0;\n            }\n            auStack_144._40_4_ = (int)&prVar38->hash + 1;\n            uVar32 = (uint)*(byte *)((int)((re_dfa_t *)\n                                          ((bitset_word_t *)(auStack_144._4_4_ + 0x60) + -0x18))->\n                                          word_char + (int)&prVar38[-2].non_eps_nodes);\n            do {\n              if (prVar52->trtable != (re_dfastate_t **)0x0) {\n                prVar49 = prVar52->trtable[uVar32];\nLAB_0004ddf0:\n                if ((re_dfastate_t **)auStack_144._100_4_ != (re_dfastate_t **)0x0)\n                goto LAB_0004ddfc;\n                goto LAB_0004de1c;\n              }\n              pprVar22 = prVar52->word_trtable;\n              if (pprVar22 != (re_dfastate_t **)0x0) {\n                uVar15 = re_string_context_at\n                                   ((re_string_t *)auStack_144,\n                                    (Idx)&((re_dfastate_t *)(auStack_144._40_4_ + -0x38))->\n                                          field_0x37,auStack_144._88_4_);\n                if ((uVar15 & 1) == 0) {\n                  prVar49 = pprVar22[uVar32];\n                }\n                else {\n                  prVar49 = pprVar22[uVar32 + 0x100];\n                }\n                goto LAB_0004ddf0;\n              }\n              iVar20 = (*(code *)(iVar34 + -0x7510))(auStack_144._84_4_,prVar52);\n            } while (iVar20 != 0);\n            auStack_168._0_4_ = (re_dfastate_t *)0xc;\n            prVar38 = (re_dfastate_t *)auStack_168._0_4_;\njoined_r0x0004e770:\n            auStack_168._0_4_ = prVar38;\n            if ((re_dfastate_t **)auStack_144._100_4_ == (re_dfastate_t **)0x0) {\n              pprVar22 = (re_dfastate_t **)0x0;\n              goto LAB_0004dbb4;\n            }\n            prVar49 = (re_dfastate_t *)0x0;\nLAB_0004ddfc:\n            prVar49 = merge_state_with_log\n                                ((reg_errcode_t *)auStack_168,(re_match_context_t *)auStack_144,\n                                 prVar49);\nLAB_0004de1c:\n            prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n            if (prVar49 == (re_dfastate_t *)0x0) {\n              pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n              if ((re_dfastate_t *)auStack_168._0_4_ != (re_dfastate_t *)0x0) goto LAB_0004dbb4;\n              if (((re_dfastate_t **)auStack_144._100_4_ == (re_dfastate_t **)0x0) ||\n                 ((bVar5 && (!bVar30)))) break;\n              in_a3 = (re_dfa_t *)auStack_168;\n              do {\n                bVar3 = false;\n                pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + auStack_144._40_4_ * 4);\n                prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n                do {\n                  prVar49 = (re_dfastate_t *)((int)&prVar38->hash + 1);\n                  pprVar22 = pprVar22 + 1;\n                  if ((int)auStack_144._104_4_ < (int)prVar49) {\n                    if (bVar3) {\n                      auStack_144._40_4_ = prVar38;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar3 = true;\n                  prVar38 = prVar49;\n                } while (*pprVar22 == (re_dfastate_t *)0x0);\n                auStack_144._40_4_ = prVar49;\n                prVar49 = merge_state_with_log\n                                    ((reg_errcode_t *)in_a3,(re_match_context_t *)auStack_144,\n                                     (re_dfastate_t *)0x0);\n                prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n                if ((re_dfastate_t *)auStack_168._0_4_ != (re_dfastate_t *)0x0) {\n                  if (prVar49 == (re_dfastate_t *)0x0) goto LAB_0004e0cc;\n                  break;\n                }\n              } while (prVar49 == (re_dfastate_t *)0x0);\n            }\n            prVar6 = prStack_1d0;\n            if ((bVar4) && (prVar6 = prVar51, prVar52 != prVar49)) {\n              bVar4 = false;\n              prVar6 = prStack_1d0;\n            }\n            prStack_1d0 = prVar6;\n            prVar52 = prVar49;\n            auStack_144._40_4_ = prVar38;\n            if (((prVar49->field_0x34 & 8) != 0) &&\n               (((prVar49->field_0x34 & 1) == 0 ||\n                (IVar21 = check_halt_state_context\n                                    ((re_match_context_t *)auStack_144,\n                                     (re_dfastate_t *)(prVar49->nodes).nelem,\n                                     (Idx)&(prVar49->nodes).elems,prVar38), IVar21 != 0)))) {\n              if (!bVar30) goto LAB_0004e0e4;\n              pprStack_1dc = (re_dfa_t **)0x0;\n              prVar39 = prVar38;\n              bVar5 = bVar30;\n            }\n          }\nLAB_0004e0cc:\n          prVar38 = prVar39;\n          if (pprStack_1dc != (re_dfa_t **)0x0) {\n            *pprStack_1dc = (re_dfa_t *)((int)&prStack_1d0->hash + (int)*pprStack_1dc);\n          }\n        }\n        else {\n          pIVar23 = &(prVar52->nodes).nelem;\n          nodes_1 = &(prVar52->nodes).elems;\n          prVar38 = (re_dfastate_t *)\n                    check_subexp_matching_top\n                              ((re_match_context_t *)auStack_144,(re_node_set *)pIVar23,(Idx)nodes_1\n                               ,(re_node_set *)0x0);\n          auStack_168._0_4_ = prVar38;\n          if (prVar38 == (re_dfastate_t *)0x0) {\n            if ((prVar52->field_0x34 & 2) == 0) {\n              bVar4 = false;\n            }\n            else {\n              prVar38 = (re_dfastate_t *)\n                        transit_state_bkref((re_match_context_t *)auStack_144,(re_node_set *)pIVar23\n                                            ,(re_node_set *)nodes_1);\n              auStack_168._0_4_ = prVar38;\n              if (prVar38 != (re_dfastate_t *)0x0) goto LAB_0004e0e4;\n              bVar4 = false;\n            }\n            goto LAB_0004dd48;\n          }\n        }\nLAB_0004e0e4:\n        pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n        if (prVar38 != (re_dfastate_t *)0xffffffff) {\n          if (prVar38 == (re_dfastate_t *)&SUB_fffffffe) goto LAB_0004dbf8;\n          auStack_144._92_4_ = prVar38;\n          if (((preg->input).valid_len & 0x8000000) == 0) {\n            if (!bVar2) {\n              iVar35 = prVar53->nbackref;\n              goto joined_r0x0004e94c;\n            }\n            pcVar55 = (code *)(*(int *)(puVar56 + 0x28244) + 0x7d8c);\n            prVar39 = *(re_dfastate_t **)(auStack_144._100_4_ + (int)prVar38 * 4);\n            auStack_144._96_4_ =\n                 check_halt_state_context\n                           ((re_match_context_t *)auStack_144,\n                            (re_dfastate_t *)(prVar39->nodes).nelem,(Idx)&(prVar39->nodes).elems,\n                            prVar38);\n            if (((char)prVar53->field_0x58 < '\0') || (prVar53->nbackref != 0)) goto LAB_0004e170;\n          }\n          else {\n            iVar35 = prVar53->nbackref;\njoined_r0x0004e94c:\n            if (iVar35 != 0) {\n              pcVar55 = (code *)(*(int *)(puVar56 + 0x28244) + 0x7d8c);\n              prVar39 = *(re_dfastate_t **)(auStack_144._100_4_ + (int)prVar38 * 4);\n              auStack_144._96_4_ =\n                   check_halt_state_context\n                             ((re_match_context_t *)auStack_144,\n                              (re_dfastate_t *)(prVar39->nodes).nelem,(Idx)&(prVar39->nodes).elems,\n                              prVar38);\nLAB_0004e170:\n              pIVar23 = (Idx *)auStack_144._96_4_;\n              uVar44 = auStack_144._84_4_;\n              if (prVar38 < (re_dfastate_t *)0x3fffffff) {\n                prStack_1f0 = (re_dfastate_t *)((int)&prVar38->hash + 1);\n                pprVar22 = (re_dfastate_t **)(**(code **)(puVar56 + 0x28450))((int)prStack_1f0 * 4);\n                if (pprVar22 == (re_dfastate_t **)0x0) goto LAB_0004dbf8;\n                if (*(Idx *)(uVar44 + 0x4c) == 0) {\n                  rStack_160.limited_states = (re_dfastate_t **)0x0;\n                  rStack_160.limits.alloc = 0;\n                  rStack_160.limits.nelem = 0;\n                  rStack_160.limits.elems = (Idx *)0x0;\n                  rStack_160.sifted_states = pprVar22;\n                  rStack_160.last_node = (Idx)pIVar23;\n                  rStack_160.last_str_idx = (Idx)prVar38;\n                  prStack_1e4 = (re_dfastate_t *)\n                                sift_states_backward\n                                          ((re_match_context_t *)auStack_144,\n                                           (re_sift_context_t *)(auStack_168 + 8));\n                  (**(code **)(puVar56 + 0x28520))(rStack_160.limits.elems);\n                  if (prStack_1e4 == (re_dfastate_t *)0x0) {\n                    if (*pprVar22 == (re_dfastate_t *)0x0) {\n                      (**(code **)(puVar56 + 0x28520))(pprVar22);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar56 + 0x28520))(auStack_144._100_4_);\n                    auStack_144._92_4_ = prVar38;\n                    auStack_144._96_4_ = pIVar23;\n                    auStack_144._100_4_ = pprVar22;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  pprStack_1ec = (re_dfastate_t **)0x0;\n                }\n                else {\n                  pprStack_1ec = (re_dfastate_t **)\n                                 (**(code **)(puVar56 + 0x28450))((int)prStack_1f0 * 4);\n                  if (pprStack_1ec == (re_dfastate_t **)0x0) {\n                    (**(code **)(puVar56 + 0x28520))(pprVar22);\n                    prStack_1e4 = (re_dfastate_t *)0xc;\n                    pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar35 = *(int *)(puVar56 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar56 + 0x283f8))(pprStack_1ec,0,(int)prStack_1f0 * 4);\n                    rStack_160.limits.alloc = 0;\n                    rStack_160.limits.nelem = 0;\n                    rStack_160.limits.elems = (Idx *)0x0;\n                    rStack_160.sifted_states = pprVar22;\n                    rStack_160.limited_states = pprStack_1ec;\n                    rStack_160.last_node = (Idx)pIVar23;\n                    rStack_160.last_str_idx = (Idx)prVar38;\n                    prStack_1e4 = (re_dfastate_t *)\n                                  (*(code *)(iVar35 + -0x2cf4))\n                                            ((re_match_context_t *)auStack_144,auStack_168 + 8);\n                    (**(code **)(puVar56 + 0x28520))(rStack_160.limits.elems);\n                    if (prStack_1e4 != (re_dfastate_t *)0x0) break;\n                    if ((*pprVar22 != (re_dfastate_t *)0x0) ||\n                       (*pprStack_1ec != (re_dfastate_t *)0x0)) {\n                      prStack_1e4 = (re_dfastate_t *)\n                                    merge_state_array((re_dfa_t *)uVar44,pprVar22,pprStack_1ec,\n                                                      (Idx)prStack_1f0);\n                      (**(code **)(puVar56 + 0x28520))(pprStack_1ec);\n                      if (prStack_1e4 != (re_dfastate_t *)0x0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    iVar19 = auStack_144._100_4_ + (int)prStack_1f0 * 4 + -4;\n                    prStack_1f0 = prVar38;\n                    while( true ) {\n                      prVar38 = (re_dfastate_t *)&prStack_1f0[-1].field_0x37;\n                      if (prVar38 == (re_dfastate_t *)0xffffffff) {\n                        (**(code **)(puVar56 + 0x28520))(pprVar22);\n                        (**(code **)(puVar56 + 0x28520))(pprStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar20 = *(int *)(iVar19 + -4);\n                      if ((iVar20 != 0) && ((*(byte *)(iVar20 + 0x34) & 8) != 0)) break;\n                      iVar19 = iVar19 + -4;\n                      prStack_1f0 = prVar38;\n                    }\n                    pIVar23 = (Idx *)(*pcVar55)((re_match_context_t *)auStack_144,\n                                                *(undefined4 *)(iVar20 + 8),iVar20 + 0xc,prVar38);\n                  }\n                }\n                (**(code **)(puVar56 + 0x28520))(pprVar22);\n                (**(code **)(puVar56 + 0x28520))(pprStack_1ec);\n                pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n                if (prStack_1e4 == (re_dfastate_t *)0x1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }\n              prStack_1e4 = (re_dfastate_t *)0xc;\n              goto LAB_0004dbbc;\n            }\n          }\nLAB_0004e7e0:\n          pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n          prStack_1e4 = prVar18;\n          if (prStack_78 == (re_dfa_t *)0x0) goto LAB_0004dbbc;\n          IVar21 = (preg->input).valid_len;\n          if (bVar2) {\n            prVar27 = prStack_74 + 1;\n            do {\n              prVar27->rm_eo = -1;\n              prVar26 = prVar27 + 1;\n              prVar27->rm_so = -1;\n              prVar27 = prVar26;\n            } while (prStack_74 + (int)prStack_78 != prVar26);\n            prStack_74->rm_so = 0;\n            prStack_74->rm_eo = auStack_144._92_4_;\n            if ((IVar21 & 0x8000000) == 0) {\n              if ((char)prVar53->field_0x58 < '\0') {\n                bVar30 = 0 < prVar53->nbackref;\n              }\n              else {\n                bVar30 = false;\n              }\n              prStack_1e4 = (re_dfastate_t *)\n                            set_regs((regex_t *)preg,(re_match_context_t *)auStack_144,\n                                     (size_t)prStack_78,prStack_74,bVar30);\n              pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n              if (prStack_1e4 != (re_dfastate_t *)0x0) goto LAB_0004dbbc;\n              prVar46 = (re_dfa_t *)prStack_74->rm_so;\n            }\n            else {\nLAB_0004e838:\n              prVar46 = (re_dfa_t *)0x0;\n            }\n            prVar48 = (re_dfa_t *)0x0;\n            prVar27 = prStack_74;\n            while( true ) {\n              if (prVar46 != (re_dfa_t *)0xffffffff) {\n                prVar42 = (re_dfa_t *)prVar27->rm_eo;\n                prVar50 = prVar46;\n                prVar43 = prVar42;\n                if (auStack_144[0x4c] != '\0') {\n                  prVar50 = (re_dfa_t *)auStack_144._32_4_;\n                  if ((re_dfa_t *)auStack_144._28_4_ != prVar46) {\n                    prVar50 = (re_dfa_t *)((re_hashval_t *)auStack_144._12_4_)[(int)prVar46];\n                  }\n                  prVar27->rm_so = (regoff_t)prVar50;\n                  prVar43 = (re_dfa_t *)auStack_144._32_4_;\n                  if ((re_dfa_t *)auStack_144._28_4_ != prVar42) {\n                    prVar43 = (re_dfa_t *)((re_hashval_t *)auStack_144._12_4_)[(int)prVar42];\n                  }\n                }\n                prVar27->rm_so =\n                     (int)(((re_dfa_t *)\n                           (((re_dfa_t *)(prVar50->word_char + -0x18))->word_char + -0x18))->\n                           word_char + 0xffffffe8) +\n                     (int)((re_dfa_t *)\n                          (((re_dfa_t *)\n                           (((re_dfa_t *)(prStack_16c->word_char + -0x18))->word_char + -0x18))->\n                           word_char + -0x18))->word_char + 0xffffffa0U;\n                prVar27->rm_eo =\n                     (int)(((re_dfa_t *)\n                           (((re_dfa_t *)(prVar43->word_char + -0x18))->word_char + -0x18))->\n                           word_char + 0xffffffe8) +\n                     (int)((re_dfa_t *)\n                          (((re_dfa_t *)\n                           (((re_dfa_t *)(prStack_16c->word_char + -0x18))->word_char + -0x18))->\n                           word_char + -0x18))->word_char + 0xffffffa0U;\n              }\n              prVar48 = (re_dfa_t *)((int)&prVar48->nodes + 1);\n              prVar27 = prVar27 + 1;\n              if (prVar48 == prStack_78) break;\n              prVar46 = (re_dfa_t *)prVar27->rm_so;\n            }\n            if (0 < iStack_180) {\n              prVar27 = prStack_74 + (int)prStack_78;\n              do {\n                prVar27->rm_so = -1;\n                prVar26 = prVar27 + 1;\n                prVar27->rm_eo = -1;\n                prVar27 = prVar26;\n              } while (prStack_74 + (int)prStack_78->word_char + iStack_180 + -0x60 != prVar26);\n            }\n            pIVar23 = prVar53->subexp_map;\n            pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n            prStack_1e4 = prVar18;\n            if (pIVar23 != (Idx *)0x0) {\n              puVar45 = (undefined1 *)0x0;\n              prVar27 = prStack_74;\n              do {\n                pcVar55 = *(code **)(puVar56 + 0x28520);\n                if (puVar45 == (undefined1 *)((int)&prStack_78[-1].lock + 0x17)) goto LAB_0004dbc0;\n                if ((undefined1 *)*pIVar23 != puVar45) {\n                  prVar27[1].rm_so = prStack_74[(int)((undefined1 *)*pIVar23 + 1)].rm_so;\n                  prVar27[1].rm_eo = prStack_74[*pIVar23 + 1].rm_eo;\n                }\n                puVar45 = puVar45 + 1;\n                pIVar23 = pIVar23 + 1;\n                prVar27 = prVar27 + 1;\n              } while( true );\n            }\n            goto LAB_0004dbbc;\n          }\n          prStack_74->rm_so = 0;\n          prStack_74->rm_eo = auStack_144._92_4_;\n          goto LAB_0004e838;\n        }\nLAB_0004e2d4:\n        match_ctx_clean((re_match_context_t *)auStack_144);\n        in_a3 = prStack_16c;\n      }" { (expression_statement "auStack_144._120_4_ = (anon_union_4_2_9a799d16_for___pthread_mutex_s_5)0x0;" (assignment_expression "auStack_144._120_4_ = (anon_union_4_2_9a799d16_for___pthread_mutex_s_5)0x0" (field_expression "auStack_144._120_4_" identifier . field_identifier) = (cast_expression "(anon_union_4_2_9a799d16_for___pthread_mutex_s_5)0x0" ( (type_descriptor "anon_union_4_2_9a799d16_for___pthread_mutex_s_5" type_identifier) ) number_literal)) ;) (expression_statement "auStack_144._108_4_ = 0;" (assignment_expression "auStack_144._108_4_ = 0" (field_expression "auStack_144._108_4_" identifier . field_identifier) = number_literal) ;) (expression_statement "prVar52 = *(re_dfastate_t **)(auStack_144._84_4_ + 0x24);" (assignment_expression "prVar52 = *(re_dfastate_t **)(auStack_144._84_4_ + 0x24)" identifier = (pointer_expression "*(re_dfastate_t **)(auStack_144._84_4_ + 0x24)" * (cast_expression "(re_dfastate_t **)(auStack_144._84_4_ + 0x24)" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(auStack_144._84_4_ + 0x24)" ( (binary_expression "auStack_144._84_4_ + 0x24" (field_expression "auStack_144._84_4_" identifier . field_identifier) + number_literal) ))))) ;) (expression_statement "prStack_1d0 = (re_dfastate_t *)auStack_144._40_4_;" (assignment_expression "prStack_1d0 = (re_dfastate_t *)auStack_144._40_4_" identifier = (cast_expression "(re_dfastate_t *)auStack_144._40_4_" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStack_144._40_4_" identifier . field_identifier))) ;) (expression_statement "auStack_144._104_4_ = 0;" (assignment_expression "auStack_144._104_4_ = 0" (field_expression "auStack_144._104_4_" identifier . field_identifier) = number_literal) ;) (expression_statement "auStack_168._0_4_ = (re_dfastate_t *)0x0;" (assignment_expression "auStack_168._0_4_ = (re_dfastate_t *)0x0" (field_expression "auStack_168._0_4_" identifier . field_identifier) = (cast_expression "(re_dfastate_t *)0x0" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((prVar52->field_0x34 & 1) != 0) {\n          uVar32 = re_string_context_at\n                             ((re_string_t *)auStack_144,\n                              (Idx)&((re_dfastate_t *)(auStack_144._40_4_ + -0x38))->field_0x37,\n                              auStack_144._88_4_);\n          if ((uVar32 & 1) == 0) {\n            if (uVar32 == 0) goto LAB_0004dd24;\n            if ((uVar32 & 6) == 6) {\n              prVar52 = *(re_dfastate_t **)(uVar44 + 0x30);\n            }\n            else if ((uVar32 & 2) == 0) {\n              if ((uVar32 & 4) == 0) goto LAB_0004dd24;\n              prVar52 = re_acquire_state_context\n                                  ((reg_errcode_t *)auStack_168,(re_dfa_t *)uVar44,\n                                   prVar52->entrance_nodes,uVar32);\n            }\n            else {\n              prVar52 = *(re_dfastate_t **)(uVar44 + 0x2c);\n            }\n          }\n          else {\n            prVar52 = *(re_dfastate_t **)(uVar44 + 0x28);\n          }\n          if (prVar52 == (re_dfastate_t *)0x0) goto code_r0x0004ea7c;\n        }" if (parenthesized_expression "((prVar52->field_0x34 & 1) != 0)" ( (binary_expression "(prVar52->field_0x34 & 1) != 0" (parenthesized_expression "(prVar52->field_0x34 & 1)" ( (binary_expression "prVar52->field_0x34 & 1" (field_expression "prVar52->field_0x34" identifier -> field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n          uVar32 = re_string_context_at\n                             ((re_string_t *)auStack_144,\n                              (Idx)&((re_dfastate_t *)(auStack_144._40_4_ + -0x38))->field_0x37,\n                              auStack_144._88_4_);\n          if ((uVar32 & 1) == 0) {\n            if (uVar32 == 0) goto LAB_0004dd24;\n            if ((uVar32 & 6) == 6) {\n              prVar52 = *(re_dfastate_t **)(uVar44 + 0x30);\n            }\n            else if ((uVar32 & 2) == 0) {\n              if ((uVar32 & 4) == 0) goto LAB_0004dd24;\n              prVar52 = re_acquire_state_context\n                                  ((reg_errcode_t *)auStack_168,(re_dfa_t *)uVar44,\n                                   prVar52->entrance_nodes,uVar32);\n            }\n            else {\n              prVar52 = *(re_dfastate_t **)(uVar44 + 0x2c);\n            }\n          }\n          else {\n            prVar52 = *(re_dfastate_t **)(uVar44 + 0x28);\n          }\n          if (prVar52 == (re_dfastate_t *)0x0) goto code_r0x0004ea7c;\n        }" { (expression_statement "uVar32 = re_string_context_at\n                             ((re_string_t *)auStack_144,\n                              (Idx)&((re_dfastate_t *)(auStack_144._40_4_ + -0x38))->field_0x37,\n                              auStack_144._88_4_);" (assignment_expression "uVar32 = re_string_context_at\n                             ((re_string_t *)auStack_144,\n                              (Idx)&((re_dfastate_t *)(auStack_144._40_4_ + -0x38))->field_0x37,\n                              auStack_144._88_4_)" identifier = (call_expression "re_string_context_at\n                             ((re_string_t *)auStack_144,\n                              (Idx)&((re_dfastate_t *)(auStack_144._40_4_ + -0x38))->field_0x37,\n                              auStack_144._88_4_)" identifier (argument_list "((re_string_t *)auStack_144,\n                              (Idx)&((re_dfastate_t *)(auStack_144._40_4_ + -0x38))->field_0x37,\n                              auStack_144._88_4_)" ( (cast_expression "(re_string_t *)auStack_144" ( (type_descriptor "re_string_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (binary_expression "(Idx)&((re_dfastate_t *)(auStack_144._40_4_ + -0x38))->field_0x37" (parenthesized_expression "(Idx)" ( identifier )) & (field_expression "((re_dfastate_t *)(auStack_144._40_4_ + -0x38))->field_0x37" (parenthesized_expression "((re_dfastate_t *)(auStack_144._40_4_ + -0x38))" ( (cast_expression "(re_dfastate_t *)(auStack_144._40_4_ + -0x38)" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(auStack_144._40_4_ + -0x38)" ( (binary_expression "auStack_144._40_4_ + -0x38" (field_expression "auStack_144._40_4_" identifier . field_identifier) + number_literal) ))) )) -> field_identifier)) , (field_expression "auStack_144._88_4_" identifier . field_identifier) )))) ;) (if_statement "if ((uVar32 & 1) == 0) {\n            if (uVar32 == 0) goto LAB_0004dd24;\n            if ((uVar32 & 6) == 6) {\n              prVar52 = *(re_dfastate_t **)(uVar44 + 0x30);\n            }\n            else if ((uVar32 & 2) == 0) {\n              if ((uVar32 & 4) == 0) goto LAB_0004dd24;\n              prVar52 = re_acquire_state_context\n                                  ((reg_errcode_t *)auStack_168,(re_dfa_t *)uVar44,\n                                   prVar52->entrance_nodes,uVar32);\n            }\n            else {\n              prVar52 = *(re_dfastate_t **)(uVar44 + 0x2c);\n            }\n          }\n          else {\n            prVar52 = *(re_dfastate_t **)(uVar44 + 0x28);\n          }" if (parenthesized_expression "((uVar32 & 1) == 0)" ( (binary_expression "(uVar32 & 1) == 0" (parenthesized_expression "(uVar32 & 1)" ( (binary_expression "uVar32 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            if (uVar32 == 0) goto LAB_0004dd24;\n            if ((uVar32 & 6) == 6) {\n              prVar52 = *(re_dfastate_t **)(uVar44 + 0x30);\n            }\n            else if ((uVar32 & 2) == 0) {\n              if ((uVar32 & 4) == 0) goto LAB_0004dd24;\n              prVar52 = re_acquire_state_context\n                                  ((reg_errcode_t *)auStack_168,(re_dfa_t *)uVar44,\n                                   prVar52->entrance_nodes,uVar32);\n            }\n            else {\n              prVar52 = *(re_dfastate_t **)(uVar44 + 0x2c);\n            }\n          }" { (if_statement "if (uVar32 == 0) goto LAB_0004dd24;" if (parenthesized_expression "(uVar32 == 0)" ( (binary_expression "uVar32 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0004dd24;" goto statement_identifier ;)) (if_statement "if ((uVar32 & 6) == 6) {\n              prVar52 = *(re_dfastate_t **)(uVar44 + 0x30);\n            }\n            else if ((uVar32 & 2) == 0) {\n              if ((uVar32 & 4) == 0) goto LAB_0004dd24;\n              prVar52 = re_acquire_state_context\n                                  ((reg_errcode_t *)auStack_168,(re_dfa_t *)uVar44,\n                                   prVar52->entrance_nodes,uVar32);\n            }\n            else {\n              prVar52 = *(re_dfastate_t **)(uVar44 + 0x2c);\n            }" if (parenthesized_expression "((uVar32 & 6) == 6)" ( (binary_expression "(uVar32 & 6) == 6" (parenthesized_expression "(uVar32 & 6)" ( (binary_expression "uVar32 & 6" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n              prVar52 = *(re_dfastate_t **)(uVar44 + 0x30);\n            }" { (expression_statement "prVar52 = *(re_dfastate_t **)(uVar44 + 0x30);" (assignment_expression "prVar52 = *(re_dfastate_t **)(uVar44 + 0x30)" identifier = (pointer_expression "*(re_dfastate_t **)(uVar44 + 0x30)" * (cast_expression "(re_dfastate_t **)(uVar44 + 0x30)" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(uVar44 + 0x30)" ( (binary_expression "uVar44 + 0x30" identifier + number_literal) ))))) ;) }) (else_clause "else if ((uVar32 & 2) == 0) {\n              if ((uVar32 & 4) == 0) goto LAB_0004dd24;\n              prVar52 = re_acquire_state_context\n                                  ((reg_errcode_t *)auStack_168,(re_dfa_t *)uVar44,\n                                   prVar52->entrance_nodes,uVar32);\n            }\n            else {\n              prVar52 = *(re_dfastate_t **)(uVar44 + 0x2c);\n            }" else (if_statement "if ((uVar32 & 2) == 0) {\n              if ((uVar32 & 4) == 0) goto LAB_0004dd24;\n              prVar52 = re_acquire_state_context\n                                  ((reg_errcode_t *)auStack_168,(re_dfa_t *)uVar44,\n                                   prVar52->entrance_nodes,uVar32);\n            }\n            else {\n              prVar52 = *(re_dfastate_t **)(uVar44 + 0x2c);\n            }" if (parenthesized_expression "((uVar32 & 2) == 0)" ( (binary_expression "(uVar32 & 2) == 0" (parenthesized_expression "(uVar32 & 2)" ( (binary_expression "uVar32 & 2" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n              if ((uVar32 & 4) == 0) goto LAB_0004dd24;\n              prVar52 = re_acquire_state_context\n                                  ((reg_errcode_t *)auStack_168,(re_dfa_t *)uVar44,\n                                   prVar52->entrance_nodes,uVar32);\n            }" { (if_statement "if ((uVar32 & 4) == 0) goto LAB_0004dd24;" if (parenthesized_expression "((uVar32 & 4) == 0)" ( (binary_expression "(uVar32 & 4) == 0" (parenthesized_expression "(uVar32 & 4)" ( (binary_expression "uVar32 & 4" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0004dd24;" goto statement_identifier ;)) (expression_statement "prVar52 = re_acquire_state_context\n                                  ((reg_errcode_t *)auStack_168,(re_dfa_t *)uVar44,\n                                   prVar52->entrance_nodes,uVar32);" (assignment_expression "prVar52 = re_acquire_state_context\n                                  ((reg_errcode_t *)auStack_168,(re_dfa_t *)uVar44,\n                                   prVar52->entrance_nodes,uVar32)" identifier = (call_expression "re_acquire_state_context\n                                  ((reg_errcode_t *)auStack_168,(re_dfa_t *)uVar44,\n                                   prVar52->entrance_nodes,uVar32)" identifier (argument_list "((reg_errcode_t *)auStack_168,(re_dfa_t *)uVar44,\n                                   prVar52->entrance_nodes,uVar32)" ( (cast_expression "(reg_errcode_t *)auStack_168" ( (type_descriptor "reg_errcode_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(re_dfa_t *)uVar44" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (field_expression "prVar52->entrance_nodes" identifier -> field_identifier) , identifier )))) ;) }) (else_clause "else {\n              prVar52 = *(re_dfastate_t **)(uVar44 + 0x2c);\n            }" else (compound_statement "{\n              prVar52 = *(re_dfastate_t **)(uVar44 + 0x2c);\n            }" { (expression_statement "prVar52 = *(re_dfastate_t **)(uVar44 + 0x2c);" (assignment_expression "prVar52 = *(re_dfastate_t **)(uVar44 + 0x2c)" identifier = (pointer_expression "*(re_dfastate_t **)(uVar44 + 0x2c)" * (cast_expression "(re_dfastate_t **)(uVar44 + 0x2c)" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(uVar44 + 0x2c)" ( (binary_expression "uVar44 + 0x2c" identifier + number_literal) ))))) ;) }))))) }) (else_clause "else {\n            prVar52 = *(re_dfastate_t **)(uVar44 + 0x28);\n          }" else (compound_statement "{\n            prVar52 = *(re_dfastate_t **)(uVar44 + 0x28);\n          }" { (expression_statement "prVar52 = *(re_dfastate_t **)(uVar44 + 0x28);" (assignment_expression "prVar52 = *(re_dfastate_t **)(uVar44 + 0x28)" identifier = (pointer_expression "*(re_dfastate_t **)(uVar44 + 0x28)" * (cast_expression "(re_dfastate_t **)(uVar44 + 0x28)" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(uVar44 + 0x28)" ( (binary_expression "uVar44 + 0x28" identifier + number_literal) ))))) ;) }))) (if_statement "if (prVar52 == (re_dfastate_t *)0x0) goto code_r0x0004ea7c;" if (parenthesized_expression "(prVar52 == (re_dfastate_t *)0x0)" ( (binary_expression "prVar52 == (re_dfastate_t *)0x0" identifier == (cast_expression "(re_dfastate_t *)0x0" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto code_r0x0004ea7c;" goto statement_identifier ;)) })) (labeled_statement "LAB_0004dd24:\n        bVar4 = pprVar16 != (re_dfa_t **)0x0;" statement_identifier : (expression_statement "bVar4 = pprVar16 != (re_dfa_t **)0x0;" (assignment_expression "bVar4 = pprVar16 != (re_dfa_t **)0x0" identifier = (binary_expression "pprVar16 != (re_dfa_t **)0x0" identifier != (cast_expression "(re_dfa_t **)0x0" ( (type_descriptor "re_dfa_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal))) ;)) (if_statement "if (((re_dfastate_t **)auStack_144._100_4_ == (re_dfastate_t **)0x0) ||\n           (iVar35 = *(Idx *)(uVar44 + 0x4c),\n           *(re_dfastate_t **)(auStack_144._100_4_ + (int)prVar39 * 4) = prVar52, iVar35 == 0)) {\nLAB_0004dd48:\n          if (*(int *)&prVar52->field_0x34 << 4 < 0) {\n            if (((prVar52->field_0x34 & 1) == 0) ||\n               (IVar21 = check_halt_state_context\n                                   ((re_match_context_t *)auStack_144,\n                                    (re_dfastate_t *)(prVar52->nodes).nelem,\n                                    (Idx)&(prVar52->nodes).elems,prVar39), IVar21 != 0)) {\n              prVar38 = prVar39;\n              bVar5 = bVar30;\n              if (!bVar30) goto LAB_0004e0e4;\n            }\n            else {\n              prVar39 = (re_dfastate_t *)0xffffffff;\n              bVar5 = false;\n            }\n          }\n          else {\n            prVar39 = (re_dfastate_t *)0xffffffff;\n            bVar5 = false;\n          }\n          iVar35 = *(int *)(puVar56 + 0x28244);\n          iVar19 = *(int *)(puVar56 + 0x2829c);\n          prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n          pprStack_1dc = pprVar16;\n          while ((int)prVar38 < (int)auStack_144._56_4_) {\n            prVar51 = (re_dfastate_t *)((int)&prVar38->hash + 1);\n            if ((((int)prVar51 < (int)auStack_144._36_4_) ||\n                ((int)auStack_144._48_4_ <= (int)auStack_144._36_4_)) &&\n               (((int)prVar51 < (int)auStack_144._28_4_ ||\n                ((int)auStack_144._48_4_ <= (int)auStack_144._28_4_)))) {\n              iVar20 = *(int *)&prVar52->field_0x34;\n              prVar48 = (re_dfa_t *)auStack_144._84_4_;\n            }\n            else {\n              auStack_168._0_4_ =\n                   (*(code *)(iVar35 + 0x41e4))\n                             ((re_match_context_t *)auStack_144,\n                              (undefined1 *)((int)&prVar38->hash + 2));\n              if ((re_dfastate_t *)auStack_168._0_4_ != (re_dfastate_t *)0x0) {\n                if ((re_dfastate_t *)auStack_168._0_4_ == (re_dfastate_t *)0xc) goto LAB_0004dbf8;\n                uVar44 = 0x46c;\n                goto LAB_0004ea9c;\n              }\n              iVar20 = *(int *)&prVar52->field_0x34;\n              prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n              prVar48 = (re_dfa_t *)auStack_144._84_4_;\n            }\n            auStack_144._84_4_ = prVar48;\n            if (iVar20 << 5 < 0) {\n              iVar20 = (prVar52->nodes).nelem;\n              if (0 < iVar20) {\n                in_a3 = (re_dfa_t *)0x0;\n                iVar24 = *(int *)(puVar56 + 0x28244);\n                pcVar55 = (code *)(*(int *)(puVar56 + 0x28244) + 0x7ab0);\n                do {\n                  prVar40 = prVar48->nodes;\n                  iVar54 = (prVar52->nodes).elems[(int)in_a3];\n                  uVar32 = *(uint *)&prVar40[iVar54].field_0x4;\n                  if ((uVar32 & 0x800) != 0) {\n                    if ((uVar32 & 0xffc000) != 0) {\n                      uVar15 = (*pcVar55)((re_match_context_t *)auStack_144,prVar38,\n                                          auStack_144._88_4_);\n                      uVar32 = (uVar32 << 8) >> 0x16;\n                      if ((uVar32 & 4) == 0) {\n                        uVar37 = uVar15 & 1;\n                        if ((uVar32 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar37 = uVar32 & 8;\n                        if ((uVar15 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar37 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar32 & 0x20) != 0) && ((uVar15 & 2) == 0)) ||\n                         (((uVar32 & 0x80) != 0 && ((uVar15 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    aVar25.__spins =\n                         (*(code *)(iVar19 + -0x4eb0))\n                                   (prVar40,&prVar48->syntax,iVar54,\n                                    (re_match_context_t *)auStack_144,prVar38);\n                    if (aVar25.__spins != 0) {\n                      if ((int)auStack_144._120_4_ < aVar25.__spins) {\n                        auStack_144._120_4_ = aVar25.__spins;\n                      }\n                      puVar45 = (undefined1 *)\n                                ((int)(re_hashval_t *)auStack_144._40_4_ + aVar25.__spins);\n                      auStack_168._4_4_ =\n                           (*(code *)(iVar24 + 0x43b0))((re_match_context_t *)auStack_144,puVar45);\n                      prVar38 = (re_dfastate_t *)auStack_168._4_4_;\n                      if ((re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0)\n                      goto joined_r0x0004e770;\n                      iVar20 = (int)puVar45 * 4;\n                      pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + iVar20);\n                      prVar38 = *pprVar22;\n                      src2 = prVar48->eclosures + prVar48->nexts[iVar54];\n                      if (prVar38 == (re_dfastate_t *)0x0) {\n                        rStack_160.sifted_states = (re_dfastate_t **)src2->alloc;\n                        rStack_160.limited_states = (re_dfastate_t **)src2->nelem;\n                        rStack_160.last_node = (Idx)src2->elems;\n                        uVar32 = (*pcVar55)((re_match_context_t *)auStack_144,\n                                            (re_dfastate_t *)(puVar45 + -1),auStack_144._88_4_);\n                        prVar38 = re_acquire_state_context\n                                            ((reg_errcode_t *)(auStack_168 + 4),prVar48,\n                                             (re_node_set *)(auStack_168 + 8),uVar32);\n                        *pprVar22 = prVar38;\n                      }\n                      else {\n                        auStack_168._4_4_ =\n                             re_node_set_init_union\n                                       ((re_node_set *)(auStack_168 + 8),prVar38->entrance_nodes,\n                                        src2);\n                        prVar38 = (re_dfastate_t *)auStack_168._4_4_;\n                        if ((re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0)\n                        goto joined_r0x0004e770;\n                        uVar32 = (*pcVar55)((re_match_context_t *)auStack_144,\n                                            (re_dfastate_t *)(puVar45 + -1),auStack_144._88_4_);\n                        pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + iVar20);\n                        prVar38 = re_acquire_state_context\n                                            ((reg_errcode_t *)(auStack_168 + 4),prVar48,\n                                             (re_node_set *)(auStack_168 + 8),uVar32);\n                        pcVar8 = *(code **)(puVar56 + 0x28520);\n                        *pprVar22 = prVar38;\n                        (*pcVar8)(rStack_160.last_node);\n                      }\n                      if ((*(re_dfastate_t **)(auStack_144._100_4_ + iVar20) == (re_dfastate_t *)0x0\n                          ) && (prVar38 = (re_dfastate_t *)auStack_168._4_4_,\n                               (re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar20 = (prVar52->nodes).nelem;\n                    prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n                  }\nLAB_0004e670:\n                  in_a3 = (re_dfa_t *)((int)&((re_string_t *)&in_a3->nodes)->raw_mbs + 1);\n                } while ((int)in_a3 < iVar20);\n              }\n              auStack_168._0_4_ = (re_dfastate_t *)0x0;\n            }\n            auStack_144._40_4_ = (int)&prVar38->hash + 1;\n            uVar32 = (uint)*(byte *)((int)((re_dfa_t *)\n                                          ((bitset_word_t *)(auStack_144._4_4_ + 0x60) + -0x18))->\n                                          word_char + (int)&prVar38[-2].non_eps_nodes);\n            do {\n              if (prVar52->trtable != (re_dfastate_t **)0x0) {\n                prVar49 = prVar52->trtable[uVar32];\nLAB_0004ddf0:\n                if ((re_dfastate_t **)auStack_144._100_4_ != (re_dfastate_t **)0x0)\n                goto LAB_0004ddfc;\n                goto LAB_0004de1c;\n              }\n              pprVar22 = prVar52->word_trtable;\n              if (pprVar22 != (re_dfastate_t **)0x0) {\n                uVar15 = re_string_context_at\n                                   ((re_string_t *)auStack_144,\n                                    (Idx)&((re_dfastate_t *)(auStack_144._40_4_ + -0x38))->\n                                          field_0x37,auStack_144._88_4_);\n                if ((uVar15 & 1) == 0) {\n                  prVar49 = pprVar22[uVar32];\n                }\n                else {\n                  prVar49 = pprVar22[uVar32 + 0x100];\n                }\n                goto LAB_0004ddf0;\n              }\n              iVar20 = (*(code *)(iVar34 + -0x7510))(auStack_144._84_4_,prVar52);\n            } while (iVar20 != 0);\n            auStack_168._0_4_ = (re_dfastate_t *)0xc;\n            prVar38 = (re_dfastate_t *)auStack_168._0_4_;\njoined_r0x0004e770:\n            auStack_168._0_4_ = prVar38;\n            if ((re_dfastate_t **)auStack_144._100_4_ == (re_dfastate_t **)0x0) {\n              pprVar22 = (re_dfastate_t **)0x0;\n              goto LAB_0004dbb4;\n            }\n            prVar49 = (re_dfastate_t *)0x0;\nLAB_0004ddfc:\n            prVar49 = merge_state_with_log\n                                ((reg_errcode_t *)auStack_168,(re_match_context_t *)auStack_144,\n                                 prVar49);\nLAB_0004de1c:\n            prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n            if (prVar49 == (re_dfastate_t *)0x0) {\n              pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n              if ((re_dfastate_t *)auStack_168._0_4_ != (re_dfastate_t *)0x0) goto LAB_0004dbb4;\n              if (((re_dfastate_t **)auStack_144._100_4_ == (re_dfastate_t **)0x0) ||\n                 ((bVar5 && (!bVar30)))) break;\n              in_a3 = (re_dfa_t *)auStack_168;\n              do {\n                bVar3 = false;\n                pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + auStack_144._40_4_ * 4);\n                prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n                do {\n                  prVar49 = (re_dfastate_t *)((int)&prVar38->hash + 1);\n                  pprVar22 = pprVar22 + 1;\n                  if ((int)auStack_144._104_4_ < (int)prVar49) {\n                    if (bVar3) {\n                      auStack_144._40_4_ = prVar38;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar3 = true;\n                  prVar38 = prVar49;\n                } while (*pprVar22 == (re_dfastate_t *)0x0);\n                auStack_144._40_4_ = prVar49;\n                prVar49 = merge_state_with_log\n                                    ((reg_errcode_t *)in_a3,(re_match_context_t *)auStack_144,\n                                     (re_dfastate_t *)0x0);\n                prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n                if ((re_dfastate_t *)auStack_168._0_4_ != (re_dfastate_t *)0x0) {\n                  if (prVar49 == (re_dfastate_t *)0x0) goto LAB_0004e0cc;\n                  break;\n                }\n              } while (prVar49 == (re_dfastate_t *)0x0);\n            }\n            prVar6 = prStack_1d0;\n            if ((bVar4) && (prVar6 = prVar51, prVar52 != prVar49)) {\n              bVar4 = false;\n              prVar6 = prStack_1d0;\n            }\n            prStack_1d0 = prVar6;\n            prVar52 = prVar49;\n            auStack_144._40_4_ = prVar38;\n            if (((prVar49->field_0x34 & 8) != 0) &&\n               (((prVar49->field_0x34 & 1) == 0 ||\n                (IVar21 = check_halt_state_context\n                                    ((re_match_context_t *)auStack_144,\n                                     (re_dfastate_t *)(prVar49->nodes).nelem,\n                                     (Idx)&(prVar49->nodes).elems,prVar38), IVar21 != 0)))) {\n              if (!bVar30) goto LAB_0004e0e4;\n              pprStack_1dc = (re_dfa_t **)0x0;\n              prVar39 = prVar38;\n              bVar5 = bVar30;\n            }\n          }\nLAB_0004e0cc:\n          prVar38 = prVar39;\n          if (pprStack_1dc != (re_dfa_t **)0x0) {\n            *pprStack_1dc = (re_dfa_t *)((int)&prStack_1d0->hash + (int)*pprStack_1dc);\n          }\n        }\n        else {\n          pIVar23 = &(prVar52->nodes).nelem;\n          nodes_1 = &(prVar52->nodes).elems;\n          prVar38 = (re_dfastate_t *)\n                    check_subexp_matching_top\n                              ((re_match_context_t *)auStack_144,(re_node_set *)pIVar23,(Idx)nodes_1\n                               ,(re_node_set *)0x0);\n          auStack_168._0_4_ = prVar38;\n          if (prVar38 == (re_dfastate_t *)0x0) {\n            if ((prVar52->field_0x34 & 2) == 0) {\n              bVar4 = false;\n            }\n            else {\n              prVar38 = (re_dfastate_t *)\n                        transit_state_bkref((re_match_context_t *)auStack_144,(re_node_set *)pIVar23\n                                            ,(re_node_set *)nodes_1);\n              auStack_168._0_4_ = prVar38;\n              if (prVar38 != (re_dfastate_t *)0x0) goto LAB_0004e0e4;\n              bVar4 = false;\n            }\n            goto LAB_0004dd48;\n          }\n        }" if (parenthesized_expression "(((re_dfastate_t **)auStack_144._100_4_ == (re_dfastate_t **)0x0) ||\n           (iVar35 = *(Idx *)(uVar44 + 0x4c),\n           *(re_dfastate_t **)(auStack_144._100_4_ + (int)prVar39 * 4) = prVar52, iVar35 == 0))" ( (binary_expression "((re_dfastate_t **)auStack_144._100_4_ == (re_dfastate_t **)0x0) ||\n           (iVar35 = *(Idx *)(uVar44 + 0x4c),\n           *(re_dfastate_t **)(auStack_144._100_4_ + (int)prVar39 * 4) = prVar52, iVar35 == 0)" (parenthesized_expression "((re_dfastate_t **)auStack_144._100_4_ == (re_dfastate_t **)0x0)" ( (binary_expression "(re_dfastate_t **)auStack_144._100_4_ == (re_dfastate_t **)0x0" (cast_expression "(re_dfastate_t **)auStack_144._100_4_" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (field_expression "auStack_144._100_4_" identifier . field_identifier)) == (cast_expression "(re_dfastate_t **)0x0" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) || (parenthesized_expression "(iVar35 = *(Idx *)(uVar44 + 0x4c),\n           *(re_dfastate_t **)(auStack_144._100_4_ + (int)prVar39 * 4) = prVar52, iVar35 == 0)" ( (comma_expression "iVar35 = *(Idx *)(uVar44 + 0x4c),\n           *(re_dfastate_t **)(auStack_144._100_4_ + (int)prVar39 * 4) = prVar52, iVar35 == 0" (assignment_expression "iVar35 = *(Idx *)(uVar44 + 0x4c)" identifier = (pointer_expression "*(Idx *)(uVar44 + 0x4c)" * (cast_expression "(Idx *)(uVar44 + 0x4c)" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar44 + 0x4c)" ( (binary_expression "uVar44 + 0x4c" identifier + number_literal) ))))) , (comma_expression "*(re_dfastate_t **)(auStack_144._100_4_ + (int)prVar39 * 4) = prVar52, iVar35 == 0" (assignment_expression "*(re_dfastate_t **)(auStack_144._100_4_ + (int)prVar39 * 4) = prVar52" (pointer_expression "*(re_dfastate_t **)(auStack_144._100_4_ + (int)prVar39 * 4)" * (cast_expression "(re_dfastate_t **)(auStack_144._100_4_ + (int)prVar39 * 4)" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(auStack_144._100_4_ + (int)prVar39 * 4)" ( (binary_expression "auStack_144._100_4_ + (int)prVar39 * 4" (field_expression "auStack_144._100_4_" identifier . field_identifier) + (binary_expression "(int)prVar39 * 4" (cast_expression "(int)prVar39" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) = identifier) , (binary_expression "iVar35 == 0" identifier == number_literal))) ))) )) (compound_statement "{\nLAB_0004dd48:\n          if (*(int *)&prVar52->field_0x34 << 4 < 0) {\n            if (((prVar52->field_0x34 & 1) == 0) ||\n               (IVar21 = check_halt_state_context\n                                   ((re_match_context_t *)auStack_144,\n                                    (re_dfastate_t *)(prVar52->nodes).nelem,\n                                    (Idx)&(prVar52->nodes).elems,prVar39), IVar21 != 0)) {\n              prVar38 = prVar39;\n              bVar5 = bVar30;\n              if (!bVar30) goto LAB_0004e0e4;\n            }\n            else {\n              prVar39 = (re_dfastate_t *)0xffffffff;\n              bVar5 = false;\n            }\n          }\n          else {\n            prVar39 = (re_dfastate_t *)0xffffffff;\n            bVar5 = false;\n          }\n          iVar35 = *(int *)(puVar56 + 0x28244);\n          iVar19 = *(int *)(puVar56 + 0x2829c);\n          prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n          pprStack_1dc = pprVar16;\n          while ((int)prVar38 < (int)auStack_144._56_4_) {\n            prVar51 = (re_dfastate_t *)((int)&prVar38->hash + 1);\n            if ((((int)prVar51 < (int)auStack_144._36_4_) ||\n                ((int)auStack_144._48_4_ <= (int)auStack_144._36_4_)) &&\n               (((int)prVar51 < (int)auStack_144._28_4_ ||\n                ((int)auStack_144._48_4_ <= (int)auStack_144._28_4_)))) {\n              iVar20 = *(int *)&prVar52->field_0x34;\n              prVar48 = (re_dfa_t *)auStack_144._84_4_;\n            }\n            else {\n              auStack_168._0_4_ =\n                   (*(code *)(iVar35 + 0x41e4))\n                             ((re_match_context_t *)auStack_144,\n                              (undefined1 *)((int)&prVar38->hash + 2));\n              if ((re_dfastate_t *)auStack_168._0_4_ != (re_dfastate_t *)0x0) {\n                if ((re_dfastate_t *)auStack_168._0_4_ == (re_dfastate_t *)0xc) goto LAB_0004dbf8;\n                uVar44 = 0x46c;\n                goto LAB_0004ea9c;\n              }\n              iVar20 = *(int *)&prVar52->field_0x34;\n              prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n              prVar48 = (re_dfa_t *)auStack_144._84_4_;\n            }\n            auStack_144._84_4_ = prVar48;\n            if (iVar20 << 5 < 0) {\n              iVar20 = (prVar52->nodes).nelem;\n              if (0 < iVar20) {\n                in_a3 = (re_dfa_t *)0x0;\n                iVar24 = *(int *)(puVar56 + 0x28244);\n                pcVar55 = (code *)(*(int *)(puVar56 + 0x28244) + 0x7ab0);\n                do {\n                  prVar40 = prVar48->nodes;\n                  iVar54 = (prVar52->nodes).elems[(int)in_a3];\n                  uVar32 = *(uint *)&prVar40[iVar54].field_0x4;\n                  if ((uVar32 & 0x800) != 0) {\n                    if ((uVar32 & 0xffc000) != 0) {\n                      uVar15 = (*pcVar55)((re_match_context_t *)auStack_144,prVar38,\n                                          auStack_144._88_4_);\n                      uVar32 = (uVar32 << 8) >> 0x16;\n                      if ((uVar32 & 4) == 0) {\n                        uVar37 = uVar15 & 1;\n                        if ((uVar32 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar37 = uVar32 & 8;\n                        if ((uVar15 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar37 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar32 & 0x20) != 0) && ((uVar15 & 2) == 0)) ||\n                         (((uVar32 & 0x80) != 0 && ((uVar15 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    aVar25.__spins =\n                         (*(code *)(iVar19 + -0x4eb0))\n                                   (prVar40,&prVar48->syntax,iVar54,\n                                    (re_match_context_t *)auStack_144,prVar38);\n                    if (aVar25.__spins != 0) {\n                      if ((int)auStack_144._120_4_ < aVar25.__spins) {\n                        auStack_144._120_4_ = aVar25.__spins;\n                      }\n                      puVar45 = (undefined1 *)\n                                ((int)(re_hashval_t *)auStack_144._40_4_ + aVar25.__spins);\n                      auStack_168._4_4_ =\n                           (*(code *)(iVar24 + 0x43b0))((re_match_context_t *)auStack_144,puVar45);\n                      prVar38 = (re_dfastate_t *)auStack_168._4_4_;\n                      if ((re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0)\n                      goto joined_r0x0004e770;\n                      iVar20 = (int)puVar45 * 4;\n                      pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + iVar20);\n                      prVar38 = *pprVar22;\n                      src2 = prVar48->eclosures + prVar48->nexts[iVar54];\n                      if (prVar38 == (re_dfastate_t *)0x0) {\n                        rStack_160.sifted_states = (re_dfastate_t **)src2->alloc;\n                        rStack_160.limited_states = (re_dfastate_t **)src2->nelem;\n                        rStack_160.last_node = (Idx)src2->elems;\n                        uVar32 = (*pcVar55)((re_match_context_t *)auStack_144,\n                                            (re_dfastate_t *)(puVar45 + -1),auStack_144._88_4_);\n                        prVar38 = re_acquire_state_context\n                                            ((reg_errcode_t *)(auStack_168 + 4),prVar48,\n                                             (re_node_set *)(auStack_168 + 8),uVar32);\n                        *pprVar22 = prVar38;\n                      }\n                      else {\n                        auStack_168._4_4_ =\n                             re_node_set_init_union\n                                       ((re_node_set *)(auStack_168 + 8),prVar38->entrance_nodes,\n                                        src2);\n                        prVar38 = (re_dfastate_t *)auStack_168._4_4_;\n                        if ((re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0)\n                        goto joined_r0x0004e770;\n                        uVar32 = (*pcVar55)((re_match_context_t *)auStack_144,\n                                            (re_dfastate_t *)(puVar45 + -1),auStack_144._88_4_);\n                        pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + iVar20);\n                        prVar38 = re_acquire_state_context\n                                            ((reg_errcode_t *)(auStack_168 + 4),prVar48,\n                                             (re_node_set *)(auStack_168 + 8),uVar32);\n                        pcVar8 = *(code **)(puVar56 + 0x28520);\n                        *pprVar22 = prVar38;\n                        (*pcVar8)(rStack_160.last_node);\n                      }\n                      if ((*(re_dfastate_t **)(auStack_144._100_4_ + iVar20) == (re_dfastate_t *)0x0\n                          ) && (prVar38 = (re_dfastate_t *)auStack_168._4_4_,\n                               (re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar20 = (prVar52->nodes).nelem;\n                    prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n                  }\nLAB_0004e670:\n                  in_a3 = (re_dfa_t *)((int)&((re_string_t *)&in_a3->nodes)->raw_mbs + 1);\n                } while ((int)in_a3 < iVar20);\n              }\n              auStack_168._0_4_ = (re_dfastate_t *)0x0;\n            }\n            auStack_144._40_4_ = (int)&prVar38->hash + 1;\n            uVar32 = (uint)*(byte *)((int)((re_dfa_t *)\n                                          ((bitset_word_t *)(auStack_144._4_4_ + 0x60) + -0x18))->\n                                          word_char + (int)&prVar38[-2].non_eps_nodes);\n            do {\n              if (prVar52->trtable != (re_dfastate_t **)0x0) {\n                prVar49 = prVar52->trtable[uVar32];\nLAB_0004ddf0:\n                if ((re_dfastate_t **)auStack_144._100_4_ != (re_dfastate_t **)0x0)\n                goto LAB_0004ddfc;\n                goto LAB_0004de1c;\n              }\n              pprVar22 = prVar52->word_trtable;\n              if (pprVar22 != (re_dfastate_t **)0x0) {\n                uVar15 = re_string_context_at\n                                   ((re_string_t *)auStack_144,\n                                    (Idx)&((re_dfastate_t *)(auStack_144._40_4_ + -0x38))->\n                                          field_0x37,auStack_144._88_4_);\n                if ((uVar15 & 1) == 0) {\n                  prVar49 = pprVar22[uVar32];\n                }\n                else {\n                  prVar49 = pprVar22[uVar32 + 0x100];\n                }\n                goto LAB_0004ddf0;\n              }\n              iVar20 = (*(code *)(iVar34 + -0x7510))(auStack_144._84_4_,prVar52);\n            } while (iVar20 != 0);\n            auStack_168._0_4_ = (re_dfastate_t *)0xc;\n            prVar38 = (re_dfastate_t *)auStack_168._0_4_;\njoined_r0x0004e770:\n            auStack_168._0_4_ = prVar38;\n            if ((re_dfastate_t **)auStack_144._100_4_ == (re_dfastate_t **)0x0) {\n              pprVar22 = (re_dfastate_t **)0x0;\n              goto LAB_0004dbb4;\n            }\n            prVar49 = (re_dfastate_t *)0x0;\nLAB_0004ddfc:\n            prVar49 = merge_state_with_log\n                                ((reg_errcode_t *)auStack_168,(re_match_context_t *)auStack_144,\n                                 prVar49);\nLAB_0004de1c:\n            prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n            if (prVar49 == (re_dfastate_t *)0x0) {\n              pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n              if ((re_dfastate_t *)auStack_168._0_4_ != (re_dfastate_t *)0x0) goto LAB_0004dbb4;\n              if (((re_dfastate_t **)auStack_144._100_4_ == (re_dfastate_t **)0x0) ||\n                 ((bVar5 && (!bVar30)))) break;\n              in_a3 = (re_dfa_t *)auStack_168;\n              do {\n                bVar3 = false;\n                pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + auStack_144._40_4_ * 4);\n                prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n                do {\n                  prVar49 = (re_dfastate_t *)((int)&prVar38->hash + 1);\n                  pprVar22 = pprVar22 + 1;\n                  if ((int)auStack_144._104_4_ < (int)prVar49) {\n                    if (bVar3) {\n                      auStack_144._40_4_ = prVar38;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar3 = true;\n                  prVar38 = prVar49;\n                } while (*pprVar22 == (re_dfastate_t *)0x0);\n                auStack_144._40_4_ = prVar49;\n                prVar49 = merge_state_with_log\n                                    ((reg_errcode_t *)in_a3,(re_match_context_t *)auStack_144,\n                                     (re_dfastate_t *)0x0);\n                prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n                if ((re_dfastate_t *)auStack_168._0_4_ != (re_dfastate_t *)0x0) {\n                  if (prVar49 == (re_dfastate_t *)0x0) goto LAB_0004e0cc;\n                  break;\n                }\n              } while (prVar49 == (re_dfastate_t *)0x0);\n            }\n            prVar6 = prStack_1d0;\n            if ((bVar4) && (prVar6 = prVar51, prVar52 != prVar49)) {\n              bVar4 = false;\n              prVar6 = prStack_1d0;\n            }\n            prStack_1d0 = prVar6;\n            prVar52 = prVar49;\n            auStack_144._40_4_ = prVar38;\n            if (((prVar49->field_0x34 & 8) != 0) &&\n               (((prVar49->field_0x34 & 1) == 0 ||\n                (IVar21 = check_halt_state_context\n                                    ((re_match_context_t *)auStack_144,\n                                     (re_dfastate_t *)(prVar49->nodes).nelem,\n                                     (Idx)&(prVar49->nodes).elems,prVar38), IVar21 != 0)))) {\n              if (!bVar30) goto LAB_0004e0e4;\n              pprStack_1dc = (re_dfa_t **)0x0;\n              prVar39 = prVar38;\n              bVar5 = bVar30;\n            }\n          }\nLAB_0004e0cc:\n          prVar38 = prVar39;\n          if (pprStack_1dc != (re_dfa_t **)0x0) {\n            *pprStack_1dc = (re_dfa_t *)((int)&prStack_1d0->hash + (int)*pprStack_1dc);\n          }\n        }" { (labeled_statement "LAB_0004dd48:\n          if (*(int *)&prVar52->field_0x34 << 4 < 0) {\n            if (((prVar52->field_0x34 & 1) == 0) ||\n               (IVar21 = check_halt_state_context\n                                   ((re_match_context_t *)auStack_144,\n                                    (re_dfastate_t *)(prVar52->nodes).nelem,\n                                    (Idx)&(prVar52->nodes).elems,prVar39), IVar21 != 0)) {\n              prVar38 = prVar39;\n              bVar5 = bVar30;\n              if (!bVar30) goto LAB_0004e0e4;\n            }\n            else {\n              prVar39 = (re_dfastate_t *)0xffffffff;\n              bVar5 = false;\n            }\n          }\n          else {\n            prVar39 = (re_dfastate_t *)0xffffffff;\n            bVar5 = false;\n          }" statement_identifier : (if_statement "if (*(int *)&prVar52->field_0x34 << 4 < 0) {\n            if (((prVar52->field_0x34 & 1) == 0) ||\n               (IVar21 = check_halt_state_context\n                                   ((re_match_context_t *)auStack_144,\n                                    (re_dfastate_t *)(prVar52->nodes).nelem,\n                                    (Idx)&(prVar52->nodes).elems,prVar39), IVar21 != 0)) {\n              prVar38 = prVar39;\n              bVar5 = bVar30;\n              if (!bVar30) goto LAB_0004e0e4;\n            }\n            else {\n              prVar39 = (re_dfastate_t *)0xffffffff;\n              bVar5 = false;\n            }\n          }\n          else {\n            prVar39 = (re_dfastate_t *)0xffffffff;\n            bVar5 = false;\n          }" if (parenthesized_expression "(*(int *)&prVar52->field_0x34 << 4 < 0)" ( (binary_expression "*(int *)&prVar52->field_0x34 << 4 < 0" (binary_expression "*(int *)&prVar52->field_0x34 << 4" (pointer_expression "*(int *)&prVar52->field_0x34" * (cast_expression "(int *)&prVar52->field_0x34" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&prVar52->field_0x34" & (field_expression "prVar52->field_0x34" identifier -> field_identifier)))) << number_literal) < number_literal) )) (compound_statement "{\n            if (((prVar52->field_0x34 & 1) == 0) ||\n               (IVar21 = check_halt_state_context\n                                   ((re_match_context_t *)auStack_144,\n                                    (re_dfastate_t *)(prVar52->nodes).nelem,\n                                    (Idx)&(prVar52->nodes).elems,prVar39), IVar21 != 0)) {\n              prVar38 = prVar39;\n              bVar5 = bVar30;\n              if (!bVar30) goto LAB_0004e0e4;\n            }\n            else {\n              prVar39 = (re_dfastate_t *)0xffffffff;\n              bVar5 = false;\n            }\n          }" { (if_statement "if (((prVar52->field_0x34 & 1) == 0) ||\n               (IVar21 = check_halt_state_context\n                                   ((re_match_context_t *)auStack_144,\n                                    (re_dfastate_t *)(prVar52->nodes).nelem,\n                                    (Idx)&(prVar52->nodes).elems,prVar39), IVar21 != 0)) {\n              prVar38 = prVar39;\n              bVar5 = bVar30;\n              if (!bVar30) goto LAB_0004e0e4;\n            }\n            else {\n              prVar39 = (re_dfastate_t *)0xffffffff;\n              bVar5 = false;\n            }" if (parenthesized_expression "(((prVar52->field_0x34 & 1) == 0) ||\n               (IVar21 = check_halt_state_context\n                                   ((re_match_context_t *)auStack_144,\n                                    (re_dfastate_t *)(prVar52->nodes).nelem,\n                                    (Idx)&(prVar52->nodes).elems,prVar39), IVar21 != 0))" ( (binary_expression "((prVar52->field_0x34 & 1) == 0) ||\n               (IVar21 = check_halt_state_context\n                                   ((re_match_context_t *)auStack_144,\n                                    (re_dfastate_t *)(prVar52->nodes).nelem,\n                                    (Idx)&(prVar52->nodes).elems,prVar39), IVar21 != 0)" (parenthesized_expression "((prVar52->field_0x34 & 1) == 0)" ( (binary_expression "(prVar52->field_0x34 & 1) == 0" (parenthesized_expression "(prVar52->field_0x34 & 1)" ( (binary_expression "prVar52->field_0x34 & 1" (field_expression "prVar52->field_0x34" identifier -> field_identifier) & number_literal) )) == number_literal) )) || (parenthesized_expression "(IVar21 = check_halt_state_context\n                                   ((re_match_context_t *)auStack_144,\n                                    (re_dfastate_t *)(prVar52->nodes).nelem,\n                                    (Idx)&(prVar52->nodes).elems,prVar39), IVar21 != 0)" ( (comma_expression "IVar21 = check_halt_state_context\n                                   ((re_match_context_t *)auStack_144,\n                                    (re_dfastate_t *)(prVar52->nodes).nelem,\n                                    (Idx)&(prVar52->nodes).elems,prVar39), IVar21 != 0" (assignment_expression "IVar21 = check_halt_state_context\n                                   ((re_match_context_t *)auStack_144,\n                                    (re_dfastate_t *)(prVar52->nodes).nelem,\n                                    (Idx)&(prVar52->nodes).elems,prVar39)" identifier = (call_expression "check_halt_state_context\n                                   ((re_match_context_t *)auStack_144,\n                                    (re_dfastate_t *)(prVar52->nodes).nelem,\n                                    (Idx)&(prVar52->nodes).elems,prVar39)" identifier (argument_list "((re_match_context_t *)auStack_144,\n                                    (re_dfastate_t *)(prVar52->nodes).nelem,\n                                    (Idx)&(prVar52->nodes).elems,prVar39)" ( (cast_expression "(re_match_context_t *)auStack_144" ( (type_descriptor "re_match_context_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(re_dfastate_t *)(prVar52->nodes).nelem" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(prVar52->nodes).nelem" (parenthesized_expression "(prVar52->nodes)" ( (field_expression "prVar52->nodes" identifier -> field_identifier) )) . field_identifier)) , (binary_expression "(Idx)&(prVar52->nodes).elems" (parenthesized_expression "(Idx)" ( identifier )) & (field_expression "(prVar52->nodes).elems" (parenthesized_expression "(prVar52->nodes)" ( (field_expression "prVar52->nodes" identifier -> field_identifier) )) . field_identifier)) , identifier )))) , (binary_expression "IVar21 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n              prVar38 = prVar39;\n              bVar5 = bVar30;\n              if (!bVar30) goto LAB_0004e0e4;\n            }" { (expression_statement "prVar38 = prVar39;" (assignment_expression "prVar38 = prVar39" identifier = identifier) ;) (expression_statement "bVar5 = bVar30;" (assignment_expression "bVar5 = bVar30" identifier = identifier) ;) (if_statement "if (!bVar30) goto LAB_0004e0e4;" if (parenthesized_expression "(!bVar30)" ( (unary_expression "!bVar30" ! identifier) )) (goto_statement "goto LAB_0004e0e4;" goto statement_identifier ;)) }) (else_clause "else {\n              prVar39 = (re_dfastate_t *)0xffffffff;\n              bVar5 = false;\n            }" else (compound_statement "{\n              prVar39 = (re_dfastate_t *)0xffffffff;\n              bVar5 = false;\n            }" { (expression_statement "prVar39 = (re_dfastate_t *)0xffffffff;" (assignment_expression "prVar39 = (re_dfastate_t *)0xffffffff" identifier = (cast_expression "(re_dfastate_t *)0xffffffff" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bVar5 = false;" (assignment_expression "bVar5 = false" identifier = false) ;) }))) }) (else_clause "else {\n            prVar39 = (re_dfastate_t *)0xffffffff;\n            bVar5 = false;\n          }" else (compound_statement "{\n            prVar39 = (re_dfastate_t *)0xffffffff;\n            bVar5 = false;\n          }" { (expression_statement "prVar39 = (re_dfastate_t *)0xffffffff;" (assignment_expression "prVar39 = (re_dfastate_t *)0xffffffff" identifier = (cast_expression "(re_dfastate_t *)0xffffffff" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bVar5 = false;" (assignment_expression "bVar5 = false" identifier = false) ;) })))) (expression_statement "iVar35 = *(int *)(puVar56 + 0x28244);" (assignment_expression "iVar35 = *(int *)(puVar56 + 0x28244)" identifier = (pointer_expression "*(int *)(puVar56 + 0x28244)" * (cast_expression "(int *)(puVar56 + 0x28244)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x28244)" ( (binary_expression "puVar56 + 0x28244" identifier + number_literal) ))))) ;) (expression_statement "iVar19 = *(int *)(puVar56 + 0x2829c);" (assignment_expression "iVar19 = *(int *)(puVar56 + 0x2829c)" identifier = (pointer_expression "*(int *)(puVar56 + 0x2829c)" * (cast_expression "(int *)(puVar56 + 0x2829c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2829c)" ( (binary_expression "puVar56 + 0x2829c" identifier + number_literal) ))))) ;) (expression_statement "prVar38 = (re_dfastate_t *)auStack_144._40_4_;" (assignment_expression "prVar38 = (re_dfastate_t *)auStack_144._40_4_" identifier = (cast_expression "(re_dfastate_t *)auStack_144._40_4_" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStack_144._40_4_" identifier . field_identifier))) ;) (expression_statement "pprStack_1dc = pprVar16;" (assignment_expression "pprStack_1dc = pprVar16" identifier = identifier) ;) (while_statement "while ((int)prVar38 < (int)auStack_144._56_4_) {\n            prVar51 = (re_dfastate_t *)((int)&prVar38->hash + 1);\n            if ((((int)prVar51 < (int)auStack_144._36_4_) ||\n                ((int)auStack_144._48_4_ <= (int)auStack_144._36_4_)) &&\n               (((int)prVar51 < (int)auStack_144._28_4_ ||\n                ((int)auStack_144._48_4_ <= (int)auStack_144._28_4_)))) {\n              iVar20 = *(int *)&prVar52->field_0x34;\n              prVar48 = (re_dfa_t *)auStack_144._84_4_;\n            }\n            else {\n              auStack_168._0_4_ =\n                   (*(code *)(iVar35 + 0x41e4))\n                             ((re_match_context_t *)auStack_144,\n                              (undefined1 *)((int)&prVar38->hash + 2));\n              if ((re_dfastate_t *)auStack_168._0_4_ != (re_dfastate_t *)0x0) {\n                if ((re_dfastate_t *)auStack_168._0_4_ == (re_dfastate_t *)0xc) goto LAB_0004dbf8;\n                uVar44 = 0x46c;\n                goto LAB_0004ea9c;\n              }\n              iVar20 = *(int *)&prVar52->field_0x34;\n              prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n              prVar48 = (re_dfa_t *)auStack_144._84_4_;\n            }\n            auStack_144._84_4_ = prVar48;\n            if (iVar20 << 5 < 0) {\n              iVar20 = (prVar52->nodes).nelem;\n              if (0 < iVar20) {\n                in_a3 = (re_dfa_t *)0x0;\n                iVar24 = *(int *)(puVar56 + 0x28244);\n                pcVar55 = (code *)(*(int *)(puVar56 + 0x28244) + 0x7ab0);\n                do {\n                  prVar40 = prVar48->nodes;\n                  iVar54 = (prVar52->nodes).elems[(int)in_a3];\n                  uVar32 = *(uint *)&prVar40[iVar54].field_0x4;\n                  if ((uVar32 & 0x800) != 0) {\n                    if ((uVar32 & 0xffc000) != 0) {\n                      uVar15 = (*pcVar55)((re_match_context_t *)auStack_144,prVar38,\n                                          auStack_144._88_4_);\n                      uVar32 = (uVar32 << 8) >> 0x16;\n                      if ((uVar32 & 4) == 0) {\n                        uVar37 = uVar15 & 1;\n                        if ((uVar32 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar37 = uVar32 & 8;\n                        if ((uVar15 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar37 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar32 & 0x20) != 0) && ((uVar15 & 2) == 0)) ||\n                         (((uVar32 & 0x80) != 0 && ((uVar15 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    aVar25.__spins =\n                         (*(code *)(iVar19 + -0x4eb0))\n                                   (prVar40,&prVar48->syntax,iVar54,\n                                    (re_match_context_t *)auStack_144,prVar38);\n                    if (aVar25.__spins != 0) {\n                      if ((int)auStack_144._120_4_ < aVar25.__spins) {\n                        auStack_144._120_4_ = aVar25.__spins;\n                      }\n                      puVar45 = (undefined1 *)\n                                ((int)(re_hashval_t *)auStack_144._40_4_ + aVar25.__spins);\n                      auStack_168._4_4_ =\n                           (*(code *)(iVar24 + 0x43b0))((re_match_context_t *)auStack_144,puVar45);\n                      prVar38 = (re_dfastate_t *)auStack_168._4_4_;\n                      if ((re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0)\n                      goto joined_r0x0004e770;\n                      iVar20 = (int)puVar45 * 4;\n                      pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + iVar20);\n                      prVar38 = *pprVar22;\n                      src2 = prVar48->eclosures + prVar48->nexts[iVar54];\n                      if (prVar38 == (re_dfastate_t *)0x0) {\n                        rStack_160.sifted_states = (re_dfastate_t **)src2->alloc;\n                        rStack_160.limited_states = (re_dfastate_t **)src2->nelem;\n                        rStack_160.last_node = (Idx)src2->elems;\n                        uVar32 = (*pcVar55)((re_match_context_t *)auStack_144,\n                                            (re_dfastate_t *)(puVar45 + -1),auStack_144._88_4_);\n                        prVar38 = re_acquire_state_context\n                                            ((reg_errcode_t *)(auStack_168 + 4),prVar48,\n                                             (re_node_set *)(auStack_168 + 8),uVar32);\n                        *pprVar22 = prVar38;\n                      }\n                      else {\n                        auStack_168._4_4_ =\n                             re_node_set_init_union\n                                       ((re_node_set *)(auStack_168 + 8),prVar38->entrance_nodes,\n                                        src2);\n                        prVar38 = (re_dfastate_t *)auStack_168._4_4_;\n                        if ((re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0)\n                        goto joined_r0x0004e770;\n                        uVar32 = (*pcVar55)((re_match_context_t *)auStack_144,\n                                            (re_dfastate_t *)(puVar45 + -1),auStack_144._88_4_);\n                        pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + iVar20);\n                        prVar38 = re_acquire_state_context\n                                            ((reg_errcode_t *)(auStack_168 + 4),prVar48,\n                                             (re_node_set *)(auStack_168 + 8),uVar32);\n                        pcVar8 = *(code **)(puVar56 + 0x28520);\n                        *pprVar22 = prVar38;\n                        (*pcVar8)(rStack_160.last_node);\n                      }\n                      if ((*(re_dfastate_t **)(auStack_144._100_4_ + iVar20) == (re_dfastate_t *)0x0\n                          ) && (prVar38 = (re_dfastate_t *)auStack_168._4_4_,\n                               (re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar20 = (prVar52->nodes).nelem;\n                    prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n                  }\nLAB_0004e670:\n                  in_a3 = (re_dfa_t *)((int)&((re_string_t *)&in_a3->nodes)->raw_mbs + 1);\n                } while ((int)in_a3 < iVar20);\n              }\n              auStack_168._0_4_ = (re_dfastate_t *)0x0;\n            }\n            auStack_144._40_4_ = (int)&prVar38->hash + 1;\n            uVar32 = (uint)*(byte *)((int)((re_dfa_t *)\n                                          ((bitset_word_t *)(auStack_144._4_4_ + 0x60) + -0x18))->\n                                          word_char + (int)&prVar38[-2].non_eps_nodes);\n            do {\n              if (prVar52->trtable != (re_dfastate_t **)0x0) {\n                prVar49 = prVar52->trtable[uVar32];\nLAB_0004ddf0:\n                if ((re_dfastate_t **)auStack_144._100_4_ != (re_dfastate_t **)0x0)\n                goto LAB_0004ddfc;\n                goto LAB_0004de1c;\n              }\n              pprVar22 = prVar52->word_trtable;\n              if (pprVar22 != (re_dfastate_t **)0x0) {\n                uVar15 = re_string_context_at\n                                   ((re_string_t *)auStack_144,\n                                    (Idx)&((re_dfastate_t *)(auStack_144._40_4_ + -0x38))->\n                                          field_0x37,auStack_144._88_4_);\n                if ((uVar15 & 1) == 0) {\n                  prVar49 = pprVar22[uVar32];\n                }\n                else {\n                  prVar49 = pprVar22[uVar32 + 0x100];\n                }\n                goto LAB_0004ddf0;\n              }\n              iVar20 = (*(code *)(iVar34 + -0x7510))(auStack_144._84_4_,prVar52);\n            } while (iVar20 != 0);\n            auStack_168._0_4_ = (re_dfastate_t *)0xc;\n            prVar38 = (re_dfastate_t *)auStack_168._0_4_;\njoined_r0x0004e770:\n            auStack_168._0_4_ = prVar38;\n            if ((re_dfastate_t **)auStack_144._100_4_ == (re_dfastate_t **)0x0) {\n              pprVar22 = (re_dfastate_t **)0x0;\n              goto LAB_0004dbb4;\n            }\n            prVar49 = (re_dfastate_t *)0x0;\nLAB_0004ddfc:\n            prVar49 = merge_state_with_log\n                                ((reg_errcode_t *)auStack_168,(re_match_context_t *)auStack_144,\n                                 prVar49);\nLAB_0004de1c:\n            prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n            if (prVar49 == (re_dfastate_t *)0x0) {\n              pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n              if ((re_dfastate_t *)auStack_168._0_4_ != (re_dfastate_t *)0x0) goto LAB_0004dbb4;\n              if (((re_dfastate_t **)auStack_144._100_4_ == (re_dfastate_t **)0x0) ||\n                 ((bVar5 && (!bVar30)))) break;\n              in_a3 = (re_dfa_t *)auStack_168;\n              do {\n                bVar3 = false;\n                pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + auStack_144._40_4_ * 4);\n                prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n                do {\n                  prVar49 = (re_dfastate_t *)((int)&prVar38->hash + 1);\n                  pprVar22 = pprVar22 + 1;\n                  if ((int)auStack_144._104_4_ < (int)prVar49) {\n                    if (bVar3) {\n                      auStack_144._40_4_ = prVar38;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar3 = true;\n                  prVar38 = prVar49;\n                } while (*pprVar22 == (re_dfastate_t *)0x0);\n                auStack_144._40_4_ = prVar49;\n                prVar49 = merge_state_with_log\n                                    ((reg_errcode_t *)in_a3,(re_match_context_t *)auStack_144,\n                                     (re_dfastate_t *)0x0);\n                prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n                if ((re_dfastate_t *)auStack_168._0_4_ != (re_dfastate_t *)0x0) {\n                  if (prVar49 == (re_dfastate_t *)0x0) goto LAB_0004e0cc;\n                  break;\n                }\n              } while (prVar49 == (re_dfastate_t *)0x0);\n            }\n            prVar6 = prStack_1d0;\n            if ((bVar4) && (prVar6 = prVar51, prVar52 != prVar49)) {\n              bVar4 = false;\n              prVar6 = prStack_1d0;\n            }\n            prStack_1d0 = prVar6;\n            prVar52 = prVar49;\n            auStack_144._40_4_ = prVar38;\n            if (((prVar49->field_0x34 & 8) != 0) &&\n               (((prVar49->field_0x34 & 1) == 0 ||\n                (IVar21 = check_halt_state_context\n                                    ((re_match_context_t *)auStack_144,\n                                     (re_dfastate_t *)(prVar49->nodes).nelem,\n                                     (Idx)&(prVar49->nodes).elems,prVar38), IVar21 != 0)))) {\n              if (!bVar30) goto LAB_0004e0e4;\n              pprStack_1dc = (re_dfa_t **)0x0;\n              prVar39 = prVar38;\n              bVar5 = bVar30;\n            }\n          }" while (parenthesized_expression "((int)prVar38 < (int)auStack_144._56_4_)" ( (binary_expression "(int)prVar38 < (int)auStack_144._56_4_" (cast_expression "(int)prVar38" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)auStack_144._56_4_" ( (type_descriptor "int" primitive_type) ) (field_expression "auStack_144._56_4_" identifier . field_identifier))) )) (compound_statement "{\n            prVar51 = (re_dfastate_t *)((int)&prVar38->hash + 1);\n            if ((((int)prVar51 < (int)auStack_144._36_4_) ||\n                ((int)auStack_144._48_4_ <= (int)auStack_144._36_4_)) &&\n               (((int)prVar51 < (int)auStack_144._28_4_ ||\n                ((int)auStack_144._48_4_ <= (int)auStack_144._28_4_)))) {\n              iVar20 = *(int *)&prVar52->field_0x34;\n              prVar48 = (re_dfa_t *)auStack_144._84_4_;\n            }\n            else {\n              auStack_168._0_4_ =\n                   (*(code *)(iVar35 + 0x41e4))\n                             ((re_match_context_t *)auStack_144,\n                              (undefined1 *)((int)&prVar38->hash + 2));\n              if ((re_dfastate_t *)auStack_168._0_4_ != (re_dfastate_t *)0x0) {\n                if ((re_dfastate_t *)auStack_168._0_4_ == (re_dfastate_t *)0xc) goto LAB_0004dbf8;\n                uVar44 = 0x46c;\n                goto LAB_0004ea9c;\n              }\n              iVar20 = *(int *)&prVar52->field_0x34;\n              prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n              prVar48 = (re_dfa_t *)auStack_144._84_4_;\n            }\n            auStack_144._84_4_ = prVar48;\n            if (iVar20 << 5 < 0) {\n              iVar20 = (prVar52->nodes).nelem;\n              if (0 < iVar20) {\n                in_a3 = (re_dfa_t *)0x0;\n                iVar24 = *(int *)(puVar56 + 0x28244);\n                pcVar55 = (code *)(*(int *)(puVar56 + 0x28244) + 0x7ab0);\n                do {\n                  prVar40 = prVar48->nodes;\n                  iVar54 = (prVar52->nodes).elems[(int)in_a3];\n                  uVar32 = *(uint *)&prVar40[iVar54].field_0x4;\n                  if ((uVar32 & 0x800) != 0) {\n                    if ((uVar32 & 0xffc000) != 0) {\n                      uVar15 = (*pcVar55)((re_match_context_t *)auStack_144,prVar38,\n                                          auStack_144._88_4_);\n                      uVar32 = (uVar32 << 8) >> 0x16;\n                      if ((uVar32 & 4) == 0) {\n                        uVar37 = uVar15 & 1;\n                        if ((uVar32 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar37 = uVar32 & 8;\n                        if ((uVar15 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar37 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar32 & 0x20) != 0) && ((uVar15 & 2) == 0)) ||\n                         (((uVar32 & 0x80) != 0 && ((uVar15 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    aVar25.__spins =\n                         (*(code *)(iVar19 + -0x4eb0))\n                                   (prVar40,&prVar48->syntax,iVar54,\n                                    (re_match_context_t *)auStack_144,prVar38);\n                    if (aVar25.__spins != 0) {\n                      if ((int)auStack_144._120_4_ < aVar25.__spins) {\n                        auStack_144._120_4_ = aVar25.__spins;\n                      }\n                      puVar45 = (undefined1 *)\n                                ((int)(re_hashval_t *)auStack_144._40_4_ + aVar25.__spins);\n                      auStack_168._4_4_ =\n                           (*(code *)(iVar24 + 0x43b0))((re_match_context_t *)auStack_144,puVar45);\n                      prVar38 = (re_dfastate_t *)auStack_168._4_4_;\n                      if ((re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0)\n                      goto joined_r0x0004e770;\n                      iVar20 = (int)puVar45 * 4;\n                      pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + iVar20);\n                      prVar38 = *pprVar22;\n                      src2 = prVar48->eclosures + prVar48->nexts[iVar54];\n                      if (prVar38 == (re_dfastate_t *)0x0) {\n                        rStack_160.sifted_states = (re_dfastate_t **)src2->alloc;\n                        rStack_160.limited_states = (re_dfastate_t **)src2->nelem;\n                        rStack_160.last_node = (Idx)src2->elems;\n                        uVar32 = (*pcVar55)((re_match_context_t *)auStack_144,\n                                            (re_dfastate_t *)(puVar45 + -1),auStack_144._88_4_);\n                        prVar38 = re_acquire_state_context\n                                            ((reg_errcode_t *)(auStack_168 + 4),prVar48,\n                                             (re_node_set *)(auStack_168 + 8),uVar32);\n                        *pprVar22 = prVar38;\n                      }\n                      else {\n                        auStack_168._4_4_ =\n                             re_node_set_init_union\n                                       ((re_node_set *)(auStack_168 + 8),prVar38->entrance_nodes,\n                                        src2);\n                        prVar38 = (re_dfastate_t *)auStack_168._4_4_;\n                        if ((re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0)\n                        goto joined_r0x0004e770;\n                        uVar32 = (*pcVar55)((re_match_context_t *)auStack_144,\n                                            (re_dfastate_t *)(puVar45 + -1),auStack_144._88_4_);\n                        pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + iVar20);\n                        prVar38 = re_acquire_state_context\n                                            ((reg_errcode_t *)(auStack_168 + 4),prVar48,\n                                             (re_node_set *)(auStack_168 + 8),uVar32);\n                        pcVar8 = *(code **)(puVar56 + 0x28520);\n                        *pprVar22 = prVar38;\n                        (*pcVar8)(rStack_160.last_node);\n                      }\n                      if ((*(re_dfastate_t **)(auStack_144._100_4_ + iVar20) == (re_dfastate_t *)0x0\n                          ) && (prVar38 = (re_dfastate_t *)auStack_168._4_4_,\n                               (re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar20 = (prVar52->nodes).nelem;\n                    prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n                  }\nLAB_0004e670:\n                  in_a3 = (re_dfa_t *)((int)&((re_string_t *)&in_a3->nodes)->raw_mbs + 1);\n                } while ((int)in_a3 < iVar20);\n              }\n              auStack_168._0_4_ = (re_dfastate_t *)0x0;\n            }\n            auStack_144._40_4_ = (int)&prVar38->hash + 1;\n            uVar32 = (uint)*(byte *)((int)((re_dfa_t *)\n                                          ((bitset_word_t *)(auStack_144._4_4_ + 0x60) + -0x18))->\n                                          word_char + (int)&prVar38[-2].non_eps_nodes);\n            do {\n              if (prVar52->trtable != (re_dfastate_t **)0x0) {\n                prVar49 = prVar52->trtable[uVar32];\nLAB_0004ddf0:\n                if ((re_dfastate_t **)auStack_144._100_4_ != (re_dfastate_t **)0x0)\n                goto LAB_0004ddfc;\n                goto LAB_0004de1c;\n              }\n              pprVar22 = prVar52->word_trtable;\n              if (pprVar22 != (re_dfastate_t **)0x0) {\n                uVar15 = re_string_context_at\n                                   ((re_string_t *)auStack_144,\n                                    (Idx)&((re_dfastate_t *)(auStack_144._40_4_ + -0x38))->\n                                          field_0x37,auStack_144._88_4_);\n                if ((uVar15 & 1) == 0) {\n                  prVar49 = pprVar22[uVar32];\n                }\n                else {\n                  prVar49 = pprVar22[uVar32 + 0x100];\n                }\n                goto LAB_0004ddf0;\n              }\n              iVar20 = (*(code *)(iVar34 + -0x7510))(auStack_144._84_4_,prVar52);\n            } while (iVar20 != 0);\n            auStack_168._0_4_ = (re_dfastate_t *)0xc;\n            prVar38 = (re_dfastate_t *)auStack_168._0_4_;\njoined_r0x0004e770:\n            auStack_168._0_4_ = prVar38;\n            if ((re_dfastate_t **)auStack_144._100_4_ == (re_dfastate_t **)0x0) {\n              pprVar22 = (re_dfastate_t **)0x0;\n              goto LAB_0004dbb4;\n            }\n            prVar49 = (re_dfastate_t *)0x0;\nLAB_0004ddfc:\n            prVar49 = merge_state_with_log\n                                ((reg_errcode_t *)auStack_168,(re_match_context_t *)auStack_144,\n                                 prVar49);\nLAB_0004de1c:\n            prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n            if (prVar49 == (re_dfastate_t *)0x0) {\n              pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n              if ((re_dfastate_t *)auStack_168._0_4_ != (re_dfastate_t *)0x0) goto LAB_0004dbb4;\n              if (((re_dfastate_t **)auStack_144._100_4_ == (re_dfastate_t **)0x0) ||\n                 ((bVar5 && (!bVar30)))) break;\n              in_a3 = (re_dfa_t *)auStack_168;\n              do {\n                bVar3 = false;\n                pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + auStack_144._40_4_ * 4);\n                prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n                do {\n                  prVar49 = (re_dfastate_t *)((int)&prVar38->hash + 1);\n                  pprVar22 = pprVar22 + 1;\n                  if ((int)auStack_144._104_4_ < (int)prVar49) {\n                    if (bVar3) {\n                      auStack_144._40_4_ = prVar38;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar3 = true;\n                  prVar38 = prVar49;\n                } while (*pprVar22 == (re_dfastate_t *)0x0);\n                auStack_144._40_4_ = prVar49;\n                prVar49 = merge_state_with_log\n                                    ((reg_errcode_t *)in_a3,(re_match_context_t *)auStack_144,\n                                     (re_dfastate_t *)0x0);\n                prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n                if ((re_dfastate_t *)auStack_168._0_4_ != (re_dfastate_t *)0x0) {\n                  if (prVar49 == (re_dfastate_t *)0x0) goto LAB_0004e0cc;\n                  break;\n                }\n              } while (prVar49 == (re_dfastate_t *)0x0);\n            }\n            prVar6 = prStack_1d0;\n            if ((bVar4) && (prVar6 = prVar51, prVar52 != prVar49)) {\n              bVar4 = false;\n              prVar6 = prStack_1d0;\n            }\n            prStack_1d0 = prVar6;\n            prVar52 = prVar49;\n            auStack_144._40_4_ = prVar38;\n            if (((prVar49->field_0x34 & 8) != 0) &&\n               (((prVar49->field_0x34 & 1) == 0 ||\n                (IVar21 = check_halt_state_context\n                                    ((re_match_context_t *)auStack_144,\n                                     (re_dfastate_t *)(prVar49->nodes).nelem,\n                                     (Idx)&(prVar49->nodes).elems,prVar38), IVar21 != 0)))) {\n              if (!bVar30) goto LAB_0004e0e4;\n              pprStack_1dc = (re_dfa_t **)0x0;\n              prVar39 = prVar38;\n              bVar5 = bVar30;\n            }\n          }" { (expression_statement "prVar51 = (re_dfastate_t *)((int)&prVar38->hash + 1);" (assignment_expression "prVar51 = (re_dfastate_t *)((int)&prVar38->hash + 1)" identifier = (cast_expression "(re_dfastate_t *)((int)&prVar38->hash + 1)" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&prVar38->hash + 1)" ( (binary_expression "(int)&prVar38->hash + 1" (cast_expression "(int)&prVar38->hash" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prVar38->hash" & (field_expression "prVar38->hash" identifier -> field_identifier))) + number_literal) )))) ;) (if_statement "if ((((int)prVar51 < (int)auStack_144._36_4_) ||\n                ((int)auStack_144._48_4_ <= (int)auStack_144._36_4_)) &&\n               (((int)prVar51 < (int)auStack_144._28_4_ ||\n                ((int)auStack_144._48_4_ <= (int)auStack_144._28_4_)))) {\n              iVar20 = *(int *)&prVar52->field_0x34;\n              prVar48 = (re_dfa_t *)auStack_144._84_4_;\n            }\n            else {\n              auStack_168._0_4_ =\n                   (*(code *)(iVar35 + 0x41e4))\n                             ((re_match_context_t *)auStack_144,\n                              (undefined1 *)((int)&prVar38->hash + 2));\n              if ((re_dfastate_t *)auStack_168._0_4_ != (re_dfastate_t *)0x0) {\n                if ((re_dfastate_t *)auStack_168._0_4_ == (re_dfastate_t *)0xc) goto LAB_0004dbf8;\n                uVar44 = 0x46c;\n                goto LAB_0004ea9c;\n              }\n              iVar20 = *(int *)&prVar52->field_0x34;\n              prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n              prVar48 = (re_dfa_t *)auStack_144._84_4_;\n            }" if (parenthesized_expression "((((int)prVar51 < (int)auStack_144._36_4_) ||\n                ((int)auStack_144._48_4_ <= (int)auStack_144._36_4_)) &&\n               (((int)prVar51 < (int)auStack_144._28_4_ ||\n                ((int)auStack_144._48_4_ <= (int)auStack_144._28_4_))))" ( (binary_expression "(((int)prVar51 < (int)auStack_144._36_4_) ||\n                ((int)auStack_144._48_4_ <= (int)auStack_144._36_4_)) &&\n               (((int)prVar51 < (int)auStack_144._28_4_ ||\n                ((int)auStack_144._48_4_ <= (int)auStack_144._28_4_)))" (parenthesized_expression "(((int)prVar51 < (int)auStack_144._36_4_) ||\n                ((int)auStack_144._48_4_ <= (int)auStack_144._36_4_))" ( (binary_expression "((int)prVar51 < (int)auStack_144._36_4_) ||\n                ((int)auStack_144._48_4_ <= (int)auStack_144._36_4_)" (parenthesized_expression "((int)prVar51 < (int)auStack_144._36_4_)" ( (binary_expression "(int)prVar51 < (int)auStack_144._36_4_" (cast_expression "(int)prVar51" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)auStack_144._36_4_" ( (type_descriptor "int" primitive_type) ) (field_expression "auStack_144._36_4_" identifier . field_identifier))) )) || (parenthesized_expression "((int)auStack_144._48_4_ <= (int)auStack_144._36_4_)" ( (binary_expression "(int)auStack_144._48_4_ <= (int)auStack_144._36_4_" (cast_expression "(int)auStack_144._48_4_" ( (type_descriptor "int" primitive_type) ) (field_expression "auStack_144._48_4_" identifier . field_identifier)) <= (cast_expression "(int)auStack_144._36_4_" ( (type_descriptor "int" primitive_type) ) (field_expression "auStack_144._36_4_" identifier . field_identifier))) ))) )) && (parenthesized_expression "(((int)prVar51 < (int)auStack_144._28_4_ ||\n                ((int)auStack_144._48_4_ <= (int)auStack_144._28_4_)))" ( (parenthesized_expression "((int)prVar51 < (int)auStack_144._28_4_ ||\n                ((int)auStack_144._48_4_ <= (int)auStack_144._28_4_))" ( (binary_expression "(int)prVar51 < (int)auStack_144._28_4_ ||\n                ((int)auStack_144._48_4_ <= (int)auStack_144._28_4_)" (binary_expression "(int)prVar51 < (int)auStack_144._28_4_" (cast_expression "(int)prVar51" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)auStack_144._28_4_" ( (type_descriptor "int" primitive_type) ) (field_expression "auStack_144._28_4_" identifier . field_identifier))) || (parenthesized_expression "((int)auStack_144._48_4_ <= (int)auStack_144._28_4_)" ( (binary_expression "(int)auStack_144._48_4_ <= (int)auStack_144._28_4_" (cast_expression "(int)auStack_144._48_4_" ( (type_descriptor "int" primitive_type) ) (field_expression "auStack_144._48_4_" identifier . field_identifier)) <= (cast_expression "(int)auStack_144._28_4_" ( (type_descriptor "int" primitive_type) ) (field_expression "auStack_144._28_4_" identifier . field_identifier))) ))) )) ))) )) (compound_statement "{\n              iVar20 = *(int *)&prVar52->field_0x34;\n              prVar48 = (re_dfa_t *)auStack_144._84_4_;\n            }" { (expression_statement "iVar20 = *(int *)&prVar52->field_0x34;" (assignment_expression "iVar20 = *(int *)&prVar52->field_0x34" identifier = (pointer_expression "*(int *)&prVar52->field_0x34" * (cast_expression "(int *)&prVar52->field_0x34" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&prVar52->field_0x34" & (field_expression "prVar52->field_0x34" identifier -> field_identifier))))) ;) (expression_statement "prVar48 = (re_dfa_t *)auStack_144._84_4_;" (assignment_expression "prVar48 = (re_dfa_t *)auStack_144._84_4_" identifier = (cast_expression "(re_dfa_t *)auStack_144._84_4_" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStack_144._84_4_" identifier . field_identifier))) ;) }) (else_clause "else {\n              auStack_168._0_4_ =\n                   (*(code *)(iVar35 + 0x41e4))\n                             ((re_match_context_t *)auStack_144,\n                              (undefined1 *)((int)&prVar38->hash + 2));\n              if ((re_dfastate_t *)auStack_168._0_4_ != (re_dfastate_t *)0x0) {\n                if ((re_dfastate_t *)auStack_168._0_4_ == (re_dfastate_t *)0xc) goto LAB_0004dbf8;\n                uVar44 = 0x46c;\n                goto LAB_0004ea9c;\n              }\n              iVar20 = *(int *)&prVar52->field_0x34;\n              prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n              prVar48 = (re_dfa_t *)auStack_144._84_4_;\n            }" else (compound_statement "{\n              auStack_168._0_4_ =\n                   (*(code *)(iVar35 + 0x41e4))\n                             ((re_match_context_t *)auStack_144,\n                              (undefined1 *)((int)&prVar38->hash + 2));\n              if ((re_dfastate_t *)auStack_168._0_4_ != (re_dfastate_t *)0x0) {\n                if ((re_dfastate_t *)auStack_168._0_4_ == (re_dfastate_t *)0xc) goto LAB_0004dbf8;\n                uVar44 = 0x46c;\n                goto LAB_0004ea9c;\n              }\n              iVar20 = *(int *)&prVar52->field_0x34;\n              prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n              prVar48 = (re_dfa_t *)auStack_144._84_4_;\n            }" { (expression_statement "auStack_168._0_4_ =\n                   (*(code *)(iVar35 + 0x41e4))\n                             ((re_match_context_t *)auStack_144,\n                              (undefined1 *)((int)&prVar38->hash + 2));" (assignment_expression "auStack_168._0_4_ =\n                   (*(code *)(iVar35 + 0x41e4))\n                             ((re_match_context_t *)auStack_144,\n                              (undefined1 *)((int)&prVar38->hash + 2))" (field_expression "auStack_168._0_4_" identifier . field_identifier) = (call_expression "(*(code *)(iVar35 + 0x41e4))\n                             ((re_match_context_t *)auStack_144,\n                              (undefined1 *)((int)&prVar38->hash + 2))" (parenthesized_expression "(*(code *)(iVar35 + 0x41e4))" ( (pointer_expression "*(code *)(iVar35 + 0x41e4)" * (cast_expression "(code *)(iVar35 + 0x41e4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar35 + 0x41e4)" ( (binary_expression "iVar35 + 0x41e4" identifier + number_literal) )))) )) (argument_list "((re_match_context_t *)auStack_144,\n                              (undefined1 *)((int)&prVar38->hash + 2))" ( (cast_expression "(re_match_context_t *)auStack_144" ( (type_descriptor "re_match_context_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(undefined1 *)((int)&prVar38->hash + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&prVar38->hash + 2)" ( (binary_expression "(int)&prVar38->hash + 2" (cast_expression "(int)&prVar38->hash" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prVar38->hash" & (field_expression "prVar38->hash" identifier -> field_identifier))) + number_literal) ))) )))) ;) (if_statement "if ((re_dfastate_t *)auStack_168._0_4_ != (re_dfastate_t *)0x0) {\n                if ((re_dfastate_t *)auStack_168._0_4_ == (re_dfastate_t *)0xc) goto LAB_0004dbf8;\n                uVar44 = 0x46c;\n                goto LAB_0004ea9c;\n              }" if (parenthesized_expression "((re_dfastate_t *)auStack_168._0_4_ != (re_dfastate_t *)0x0)" ( (binary_expression "(re_dfastate_t *)auStack_168._0_4_ != (re_dfastate_t *)0x0" (cast_expression "(re_dfastate_t *)auStack_168._0_4_" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStack_168._0_4_" identifier . field_identifier)) != (cast_expression "(re_dfastate_t *)0x0" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                if ((re_dfastate_t *)auStack_168._0_4_ == (re_dfastate_t *)0xc) goto LAB_0004dbf8;\n                uVar44 = 0x46c;\n                goto LAB_0004ea9c;\n              }" { (if_statement "if ((re_dfastate_t *)auStack_168._0_4_ == (re_dfastate_t *)0xc) goto LAB_0004dbf8;" if (parenthesized_expression "((re_dfastate_t *)auStack_168._0_4_ == (re_dfastate_t *)0xc)" ( (binary_expression "(re_dfastate_t *)auStack_168._0_4_ == (re_dfastate_t *)0xc" (cast_expression "(re_dfastate_t *)auStack_168._0_4_" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStack_168._0_4_" identifier . field_identifier)) == (cast_expression "(re_dfastate_t *)0xc" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004dbf8;" goto statement_identifier ;)) (expression_statement "uVar44 = 0x46c;" (assignment_expression "uVar44 = 0x46c" identifier = number_literal) ;) (goto_statement "goto LAB_0004ea9c;" goto statement_identifier ;) })) (expression_statement "iVar20 = *(int *)&prVar52->field_0x34;" (assignment_expression "iVar20 = *(int *)&prVar52->field_0x34" identifier = (pointer_expression "*(int *)&prVar52->field_0x34" * (cast_expression "(int *)&prVar52->field_0x34" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&prVar52->field_0x34" & (field_expression "prVar52->field_0x34" identifier -> field_identifier))))) ;) (expression_statement "prVar38 = (re_dfastate_t *)auStack_144._40_4_;" (assignment_expression "prVar38 = (re_dfastate_t *)auStack_144._40_4_" identifier = (cast_expression "(re_dfastate_t *)auStack_144._40_4_" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStack_144._40_4_" identifier . field_identifier))) ;) (expression_statement "prVar48 = (re_dfa_t *)auStack_144._84_4_;" (assignment_expression "prVar48 = (re_dfa_t *)auStack_144._84_4_" identifier = (cast_expression "(re_dfa_t *)auStack_144._84_4_" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStack_144._84_4_" identifier . field_identifier))) ;) }))) (expression_statement "auStack_144._84_4_ = prVar48;" (assignment_expression "auStack_144._84_4_ = prVar48" (field_expression "auStack_144._84_4_" identifier . field_identifier) = identifier) ;) (if_statement "if (iVar20 << 5 < 0) {\n              iVar20 = (prVar52->nodes).nelem;\n              if (0 < iVar20) {\n                in_a3 = (re_dfa_t *)0x0;\n                iVar24 = *(int *)(puVar56 + 0x28244);\n                pcVar55 = (code *)(*(int *)(puVar56 + 0x28244) + 0x7ab0);\n                do {\n                  prVar40 = prVar48->nodes;\n                  iVar54 = (prVar52->nodes).elems[(int)in_a3];\n                  uVar32 = *(uint *)&prVar40[iVar54].field_0x4;\n                  if ((uVar32 & 0x800) != 0) {\n                    if ((uVar32 & 0xffc000) != 0) {\n                      uVar15 = (*pcVar55)((re_match_context_t *)auStack_144,prVar38,\n                                          auStack_144._88_4_);\n                      uVar32 = (uVar32 << 8) >> 0x16;\n                      if ((uVar32 & 4) == 0) {\n                        uVar37 = uVar15 & 1;\n                        if ((uVar32 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar37 = uVar32 & 8;\n                        if ((uVar15 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar37 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar32 & 0x20) != 0) && ((uVar15 & 2) == 0)) ||\n                         (((uVar32 & 0x80) != 0 && ((uVar15 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    aVar25.__spins =\n                         (*(code *)(iVar19 + -0x4eb0))\n                                   (prVar40,&prVar48->syntax,iVar54,\n                                    (re_match_context_t *)auStack_144,prVar38);\n                    if (aVar25.__spins != 0) {\n                      if ((int)auStack_144._120_4_ < aVar25.__spins) {\n                        auStack_144._120_4_ = aVar25.__spins;\n                      }\n                      puVar45 = (undefined1 *)\n                                ((int)(re_hashval_t *)auStack_144._40_4_ + aVar25.__spins);\n                      auStack_168._4_4_ =\n                           (*(code *)(iVar24 + 0x43b0))((re_match_context_t *)auStack_144,puVar45);\n                      prVar38 = (re_dfastate_t *)auStack_168._4_4_;\n                      if ((re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0)\n                      goto joined_r0x0004e770;\n                      iVar20 = (int)puVar45 * 4;\n                      pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + iVar20);\n                      prVar38 = *pprVar22;\n                      src2 = prVar48->eclosures + prVar48->nexts[iVar54];\n                      if (prVar38 == (re_dfastate_t *)0x0) {\n                        rStack_160.sifted_states = (re_dfastate_t **)src2->alloc;\n                        rStack_160.limited_states = (re_dfastate_t **)src2->nelem;\n                        rStack_160.last_node = (Idx)src2->elems;\n                        uVar32 = (*pcVar55)((re_match_context_t *)auStack_144,\n                                            (re_dfastate_t *)(puVar45 + -1),auStack_144._88_4_);\n                        prVar38 = re_acquire_state_context\n                                            ((reg_errcode_t *)(auStack_168 + 4),prVar48,\n                                             (re_node_set *)(auStack_168 + 8),uVar32);\n                        *pprVar22 = prVar38;\n                      }\n                      else {\n                        auStack_168._4_4_ =\n                             re_node_set_init_union\n                                       ((re_node_set *)(auStack_168 + 8),prVar38->entrance_nodes,\n                                        src2);\n                        prVar38 = (re_dfastate_t *)auStack_168._4_4_;\n                        if ((re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0)\n                        goto joined_r0x0004e770;\n                        uVar32 = (*pcVar55)((re_match_context_t *)auStack_144,\n                                            (re_dfastate_t *)(puVar45 + -1),auStack_144._88_4_);\n                        pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + iVar20);\n                        prVar38 = re_acquire_state_context\n                                            ((reg_errcode_t *)(auStack_168 + 4),prVar48,\n                                             (re_node_set *)(auStack_168 + 8),uVar32);\n                        pcVar8 = *(code **)(puVar56 + 0x28520);\n                        *pprVar22 = prVar38;\n                        (*pcVar8)(rStack_160.last_node);\n                      }\n                      if ((*(re_dfastate_t **)(auStack_144._100_4_ + iVar20) == (re_dfastate_t *)0x0\n                          ) && (prVar38 = (re_dfastate_t *)auStack_168._4_4_,\n                               (re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar20 = (prVar52->nodes).nelem;\n                    prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n                  }\nLAB_0004e670:\n                  in_a3 = (re_dfa_t *)((int)&((re_string_t *)&in_a3->nodes)->raw_mbs + 1);\n                } while ((int)in_a3 < iVar20);\n              }\n              auStack_168._0_4_ = (re_dfastate_t *)0x0;\n            }" if (parenthesized_expression "(iVar20 << 5 < 0)" ( (binary_expression "iVar20 << 5 < 0" (binary_expression "iVar20 << 5" identifier << number_literal) < number_literal) )) (compound_statement "{\n              iVar20 = (prVar52->nodes).nelem;\n              if (0 < iVar20) {\n                in_a3 = (re_dfa_t *)0x0;\n                iVar24 = *(int *)(puVar56 + 0x28244);\n                pcVar55 = (code *)(*(int *)(puVar56 + 0x28244) + 0x7ab0);\n                do {\n                  prVar40 = prVar48->nodes;\n                  iVar54 = (prVar52->nodes).elems[(int)in_a3];\n                  uVar32 = *(uint *)&prVar40[iVar54].field_0x4;\n                  if ((uVar32 & 0x800) != 0) {\n                    if ((uVar32 & 0xffc000) != 0) {\n                      uVar15 = (*pcVar55)((re_match_context_t *)auStack_144,prVar38,\n                                          auStack_144._88_4_);\n                      uVar32 = (uVar32 << 8) >> 0x16;\n                      if ((uVar32 & 4) == 0) {\n                        uVar37 = uVar15 & 1;\n                        if ((uVar32 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar37 = uVar32 & 8;\n                        if ((uVar15 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar37 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar32 & 0x20) != 0) && ((uVar15 & 2) == 0)) ||\n                         (((uVar32 & 0x80) != 0 && ((uVar15 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    aVar25.__spins =\n                         (*(code *)(iVar19 + -0x4eb0))\n                                   (prVar40,&prVar48->syntax,iVar54,\n                                    (re_match_context_t *)auStack_144,prVar38);\n                    if (aVar25.__spins != 0) {\n                      if ((int)auStack_144._120_4_ < aVar25.__spins) {\n                        auStack_144._120_4_ = aVar25.__spins;\n                      }\n                      puVar45 = (undefined1 *)\n                                ((int)(re_hashval_t *)auStack_144._40_4_ + aVar25.__spins);\n                      auStack_168._4_4_ =\n                           (*(code *)(iVar24 + 0x43b0))((re_match_context_t *)auStack_144,puVar45);\n                      prVar38 = (re_dfastate_t *)auStack_168._4_4_;\n                      if ((re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0)\n                      goto joined_r0x0004e770;\n                      iVar20 = (int)puVar45 * 4;\n                      pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + iVar20);\n                      prVar38 = *pprVar22;\n                      src2 = prVar48->eclosures + prVar48->nexts[iVar54];\n                      if (prVar38 == (re_dfastate_t *)0x0) {\n                        rStack_160.sifted_states = (re_dfastate_t **)src2->alloc;\n                        rStack_160.limited_states = (re_dfastate_t **)src2->nelem;\n                        rStack_160.last_node = (Idx)src2->elems;\n                        uVar32 = (*pcVar55)((re_match_context_t *)auStack_144,\n                                            (re_dfastate_t *)(puVar45 + -1),auStack_144._88_4_);\n                        prVar38 = re_acquire_state_context\n                                            ((reg_errcode_t *)(auStack_168 + 4),prVar48,\n                                             (re_node_set *)(auStack_168 + 8),uVar32);\n                        *pprVar22 = prVar38;\n                      }\n                      else {\n                        auStack_168._4_4_ =\n                             re_node_set_init_union\n                                       ((re_node_set *)(auStack_168 + 8),prVar38->entrance_nodes,\n                                        src2);\n                        prVar38 = (re_dfastate_t *)auStack_168._4_4_;\n                        if ((re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0)\n                        goto joined_r0x0004e770;\n                        uVar32 = (*pcVar55)((re_match_context_t *)auStack_144,\n                                            (re_dfastate_t *)(puVar45 + -1),auStack_144._88_4_);\n                        pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + iVar20);\n                        prVar38 = re_acquire_state_context\n                                            ((reg_errcode_t *)(auStack_168 + 4),prVar48,\n                                             (re_node_set *)(auStack_168 + 8),uVar32);\n                        pcVar8 = *(code **)(puVar56 + 0x28520);\n                        *pprVar22 = prVar38;\n                        (*pcVar8)(rStack_160.last_node);\n                      }\n                      if ((*(re_dfastate_t **)(auStack_144._100_4_ + iVar20) == (re_dfastate_t *)0x0\n                          ) && (prVar38 = (re_dfastate_t *)auStack_168._4_4_,\n                               (re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar20 = (prVar52->nodes).nelem;\n                    prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n                  }\nLAB_0004e670:\n                  in_a3 = (re_dfa_t *)((int)&((re_string_t *)&in_a3->nodes)->raw_mbs + 1);\n                } while ((int)in_a3 < iVar20);\n              }\n              auStack_168._0_4_ = (re_dfastate_t *)0x0;\n            }" { (expression_statement "iVar20 = (prVar52->nodes).nelem;" (assignment_expression "iVar20 = (prVar52->nodes).nelem" identifier = (field_expression "(prVar52->nodes).nelem" (parenthesized_expression "(prVar52->nodes)" ( (field_expression "prVar52->nodes" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (0 < iVar20) {\n                in_a3 = (re_dfa_t *)0x0;\n                iVar24 = *(int *)(puVar56 + 0x28244);\n                pcVar55 = (code *)(*(int *)(puVar56 + 0x28244) + 0x7ab0);\n                do {\n                  prVar40 = prVar48->nodes;\n                  iVar54 = (prVar52->nodes).elems[(int)in_a3];\n                  uVar32 = *(uint *)&prVar40[iVar54].field_0x4;\n                  if ((uVar32 & 0x800) != 0) {\n                    if ((uVar32 & 0xffc000) != 0) {\n                      uVar15 = (*pcVar55)((re_match_context_t *)auStack_144,prVar38,\n                                          auStack_144._88_4_);\n                      uVar32 = (uVar32 << 8) >> 0x16;\n                      if ((uVar32 & 4) == 0) {\n                        uVar37 = uVar15 & 1;\n                        if ((uVar32 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar37 = uVar32 & 8;\n                        if ((uVar15 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar37 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar32 & 0x20) != 0) && ((uVar15 & 2) == 0)) ||\n                         (((uVar32 & 0x80) != 0 && ((uVar15 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    aVar25.__spins =\n                         (*(code *)(iVar19 + -0x4eb0))\n                                   (prVar40,&prVar48->syntax,iVar54,\n                                    (re_match_context_t *)auStack_144,prVar38);\n                    if (aVar25.__spins != 0) {\n                      if ((int)auStack_144._120_4_ < aVar25.__spins) {\n                        auStack_144._120_4_ = aVar25.__spins;\n                      }\n                      puVar45 = (undefined1 *)\n                                ((int)(re_hashval_t *)auStack_144._40_4_ + aVar25.__spins);\n                      auStack_168._4_4_ =\n                           (*(code *)(iVar24 + 0x43b0))((re_match_context_t *)auStack_144,puVar45);\n                      prVar38 = (re_dfastate_t *)auStack_168._4_4_;\n                      if ((re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0)\n                      goto joined_r0x0004e770;\n                      iVar20 = (int)puVar45 * 4;\n                      pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + iVar20);\n                      prVar38 = *pprVar22;\n                      src2 = prVar48->eclosures + prVar48->nexts[iVar54];\n                      if (prVar38 == (re_dfastate_t *)0x0) {\n                        rStack_160.sifted_states = (re_dfastate_t **)src2->alloc;\n                        rStack_160.limited_states = (re_dfastate_t **)src2->nelem;\n                        rStack_160.last_node = (Idx)src2->elems;\n                        uVar32 = (*pcVar55)((re_match_context_t *)auStack_144,\n                                            (re_dfastate_t *)(puVar45 + -1),auStack_144._88_4_);\n                        prVar38 = re_acquire_state_context\n                                            ((reg_errcode_t *)(auStack_168 + 4),prVar48,\n                                             (re_node_set *)(auStack_168 + 8),uVar32);\n                        *pprVar22 = prVar38;\n                      }\n                      else {\n                        auStack_168._4_4_ =\n                             re_node_set_init_union\n                                       ((re_node_set *)(auStack_168 + 8),prVar38->entrance_nodes,\n                                        src2);\n                        prVar38 = (re_dfastate_t *)auStack_168._4_4_;\n                        if ((re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0)\n                        goto joined_r0x0004e770;\n                        uVar32 = (*pcVar55)((re_match_context_t *)auStack_144,\n                                            (re_dfastate_t *)(puVar45 + -1),auStack_144._88_4_);\n                        pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + iVar20);\n                        prVar38 = re_acquire_state_context\n                                            ((reg_errcode_t *)(auStack_168 + 4),prVar48,\n                                             (re_node_set *)(auStack_168 + 8),uVar32);\n                        pcVar8 = *(code **)(puVar56 + 0x28520);\n                        *pprVar22 = prVar38;\n                        (*pcVar8)(rStack_160.last_node);\n                      }\n                      if ((*(re_dfastate_t **)(auStack_144._100_4_ + iVar20) == (re_dfastate_t *)0x0\n                          ) && (prVar38 = (re_dfastate_t *)auStack_168._4_4_,\n                               (re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar20 = (prVar52->nodes).nelem;\n                    prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n                  }\nLAB_0004e670:\n                  in_a3 = (re_dfa_t *)((int)&((re_string_t *)&in_a3->nodes)->raw_mbs + 1);\n                } while ((int)in_a3 < iVar20);\n              }" if (parenthesized_expression "(0 < iVar20)" ( (binary_expression "0 < iVar20" number_literal < identifier) )) (compound_statement "{\n                in_a3 = (re_dfa_t *)0x0;\n                iVar24 = *(int *)(puVar56 + 0x28244);\n                pcVar55 = (code *)(*(int *)(puVar56 + 0x28244) + 0x7ab0);\n                do {\n                  prVar40 = prVar48->nodes;\n                  iVar54 = (prVar52->nodes).elems[(int)in_a3];\n                  uVar32 = *(uint *)&prVar40[iVar54].field_0x4;\n                  if ((uVar32 & 0x800) != 0) {\n                    if ((uVar32 & 0xffc000) != 0) {\n                      uVar15 = (*pcVar55)((re_match_context_t *)auStack_144,prVar38,\n                                          auStack_144._88_4_);\n                      uVar32 = (uVar32 << 8) >> 0x16;\n                      if ((uVar32 & 4) == 0) {\n                        uVar37 = uVar15 & 1;\n                        if ((uVar32 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar37 = uVar32 & 8;\n                        if ((uVar15 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar37 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar32 & 0x20) != 0) && ((uVar15 & 2) == 0)) ||\n                         (((uVar32 & 0x80) != 0 && ((uVar15 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    aVar25.__spins =\n                         (*(code *)(iVar19 + -0x4eb0))\n                                   (prVar40,&prVar48->syntax,iVar54,\n                                    (re_match_context_t *)auStack_144,prVar38);\n                    if (aVar25.__spins != 0) {\n                      if ((int)auStack_144._120_4_ < aVar25.__spins) {\n                        auStack_144._120_4_ = aVar25.__spins;\n                      }\n                      puVar45 = (undefined1 *)\n                                ((int)(re_hashval_t *)auStack_144._40_4_ + aVar25.__spins);\n                      auStack_168._4_4_ =\n                           (*(code *)(iVar24 + 0x43b0))((re_match_context_t *)auStack_144,puVar45);\n                      prVar38 = (re_dfastate_t *)auStack_168._4_4_;\n                      if ((re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0)\n                      goto joined_r0x0004e770;\n                      iVar20 = (int)puVar45 * 4;\n                      pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + iVar20);\n                      prVar38 = *pprVar22;\n                      src2 = prVar48->eclosures + prVar48->nexts[iVar54];\n                      if (prVar38 == (re_dfastate_t *)0x0) {\n                        rStack_160.sifted_states = (re_dfastate_t **)src2->alloc;\n                        rStack_160.limited_states = (re_dfastate_t **)src2->nelem;\n                        rStack_160.last_node = (Idx)src2->elems;\n                        uVar32 = (*pcVar55)((re_match_context_t *)auStack_144,\n                                            (re_dfastate_t *)(puVar45 + -1),auStack_144._88_4_);\n                        prVar38 = re_acquire_state_context\n                                            ((reg_errcode_t *)(auStack_168 + 4),prVar48,\n                                             (re_node_set *)(auStack_168 + 8),uVar32);\n                        *pprVar22 = prVar38;\n                      }\n                      else {\n                        auStack_168._4_4_ =\n                             re_node_set_init_union\n                                       ((re_node_set *)(auStack_168 + 8),prVar38->entrance_nodes,\n                                        src2);\n                        prVar38 = (re_dfastate_t *)auStack_168._4_4_;\n                        if ((re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0)\n                        goto joined_r0x0004e770;\n                        uVar32 = (*pcVar55)((re_match_context_t *)auStack_144,\n                                            (re_dfastate_t *)(puVar45 + -1),auStack_144._88_4_);\n                        pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + iVar20);\n                        prVar38 = re_acquire_state_context\n                                            ((reg_errcode_t *)(auStack_168 + 4),prVar48,\n                                             (re_node_set *)(auStack_168 + 8),uVar32);\n                        pcVar8 = *(code **)(puVar56 + 0x28520);\n                        *pprVar22 = prVar38;\n                        (*pcVar8)(rStack_160.last_node);\n                      }\n                      if ((*(re_dfastate_t **)(auStack_144._100_4_ + iVar20) == (re_dfastate_t *)0x0\n                          ) && (prVar38 = (re_dfastate_t *)auStack_168._4_4_,\n                               (re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar20 = (prVar52->nodes).nelem;\n                    prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n                  }\nLAB_0004e670:\n                  in_a3 = (re_dfa_t *)((int)&((re_string_t *)&in_a3->nodes)->raw_mbs + 1);\n                } while ((int)in_a3 < iVar20);\n              }" { (expression_statement "in_a3 = (re_dfa_t *)0x0;" (assignment_expression "in_a3 = (re_dfa_t *)0x0" identifier = (cast_expression "(re_dfa_t *)0x0" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar24 = *(int *)(puVar56 + 0x28244);" (assignment_expression "iVar24 = *(int *)(puVar56 + 0x28244)" identifier = (pointer_expression "*(int *)(puVar56 + 0x28244)" * (cast_expression "(int *)(puVar56 + 0x28244)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x28244)" ( (binary_expression "puVar56 + 0x28244" identifier + number_literal) ))))) ;) (expression_statement "pcVar55 = (code *)(*(int *)(puVar56 + 0x28244) + 0x7ab0);" (assignment_expression "pcVar55 = (code *)(*(int *)(puVar56 + 0x28244) + 0x7ab0)" identifier = (cast_expression "(code *)(*(int *)(puVar56 + 0x28244) + 0x7ab0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar56 + 0x28244) + 0x7ab0)" ( (binary_expression "*(int *)(puVar56 + 0x28244) + 0x7ab0" (pointer_expression "*(int *)(puVar56 + 0x28244)" * (cast_expression "(int *)(puVar56 + 0x28244)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x28244)" ( (binary_expression "puVar56 + 0x28244" identifier + number_literal) )))) + number_literal) )))) ;) (do_statement "do {\n                  prVar40 = prVar48->nodes;\n                  iVar54 = (prVar52->nodes).elems[(int)in_a3];\n                  uVar32 = *(uint *)&prVar40[iVar54].field_0x4;\n                  if ((uVar32 & 0x800) != 0) {\n                    if ((uVar32 & 0xffc000) != 0) {\n                      uVar15 = (*pcVar55)((re_match_context_t *)auStack_144,prVar38,\n                                          auStack_144._88_4_);\n                      uVar32 = (uVar32 << 8) >> 0x16;\n                      if ((uVar32 & 4) == 0) {\n                        uVar37 = uVar15 & 1;\n                        if ((uVar32 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar37 = uVar32 & 8;\n                        if ((uVar15 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar37 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar32 & 0x20) != 0) && ((uVar15 & 2) == 0)) ||\n                         (((uVar32 & 0x80) != 0 && ((uVar15 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    aVar25.__spins =\n                         (*(code *)(iVar19 + -0x4eb0))\n                                   (prVar40,&prVar48->syntax,iVar54,\n                                    (re_match_context_t *)auStack_144,prVar38);\n                    if (aVar25.__spins != 0) {\n                      if ((int)auStack_144._120_4_ < aVar25.__spins) {\n                        auStack_144._120_4_ = aVar25.__spins;\n                      }\n                      puVar45 = (undefined1 *)\n                                ((int)(re_hashval_t *)auStack_144._40_4_ + aVar25.__spins);\n                      auStack_168._4_4_ =\n                           (*(code *)(iVar24 + 0x43b0))((re_match_context_t *)auStack_144,puVar45);\n                      prVar38 = (re_dfastate_t *)auStack_168._4_4_;\n                      if ((re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0)\n                      goto joined_r0x0004e770;\n                      iVar20 = (int)puVar45 * 4;\n                      pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + iVar20);\n                      prVar38 = *pprVar22;\n                      src2 = prVar48->eclosures + prVar48->nexts[iVar54];\n                      if (prVar38 == (re_dfastate_t *)0x0) {\n                        rStack_160.sifted_states = (re_dfastate_t **)src2->alloc;\n                        rStack_160.limited_states = (re_dfastate_t **)src2->nelem;\n                        rStack_160.last_node = (Idx)src2->elems;\n                        uVar32 = (*pcVar55)((re_match_context_t *)auStack_144,\n                                            (re_dfastate_t *)(puVar45 + -1),auStack_144._88_4_);\n                        prVar38 = re_acquire_state_context\n                                            ((reg_errcode_t *)(auStack_168 + 4),prVar48,\n                                             (re_node_set *)(auStack_168 + 8),uVar32);\n                        *pprVar22 = prVar38;\n                      }\n                      else {\n                        auStack_168._4_4_ =\n                             re_node_set_init_union\n                                       ((re_node_set *)(auStack_168 + 8),prVar38->entrance_nodes,\n                                        src2);\n                        prVar38 = (re_dfastate_t *)auStack_168._4_4_;\n                        if ((re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0)\n                        goto joined_r0x0004e770;\n                        uVar32 = (*pcVar55)((re_match_context_t *)auStack_144,\n                                            (re_dfastate_t *)(puVar45 + -1),auStack_144._88_4_);\n                        pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + iVar20);\n                        prVar38 = re_acquire_state_context\n                                            ((reg_errcode_t *)(auStack_168 + 4),prVar48,\n                                             (re_node_set *)(auStack_168 + 8),uVar32);\n                        pcVar8 = *(code **)(puVar56 + 0x28520);\n                        *pprVar22 = prVar38;\n                        (*pcVar8)(rStack_160.last_node);\n                      }\n                      if ((*(re_dfastate_t **)(auStack_144._100_4_ + iVar20) == (re_dfastate_t *)0x0\n                          ) && (prVar38 = (re_dfastate_t *)auStack_168._4_4_,\n                               (re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar20 = (prVar52->nodes).nelem;\n                    prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n                  }\nLAB_0004e670:\n                  in_a3 = (re_dfa_t *)((int)&((re_string_t *)&in_a3->nodes)->raw_mbs + 1);\n                } while ((int)in_a3 < iVar20);" do (compound_statement "{\n                  prVar40 = prVar48->nodes;\n                  iVar54 = (prVar52->nodes).elems[(int)in_a3];\n                  uVar32 = *(uint *)&prVar40[iVar54].field_0x4;\n                  if ((uVar32 & 0x800) != 0) {\n                    if ((uVar32 & 0xffc000) != 0) {\n                      uVar15 = (*pcVar55)((re_match_context_t *)auStack_144,prVar38,\n                                          auStack_144._88_4_);\n                      uVar32 = (uVar32 << 8) >> 0x16;\n                      if ((uVar32 & 4) == 0) {\n                        uVar37 = uVar15 & 1;\n                        if ((uVar32 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar37 = uVar32 & 8;\n                        if ((uVar15 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar37 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar32 & 0x20) != 0) && ((uVar15 & 2) == 0)) ||\n                         (((uVar32 & 0x80) != 0 && ((uVar15 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    aVar25.__spins =\n                         (*(code *)(iVar19 + -0x4eb0))\n                                   (prVar40,&prVar48->syntax,iVar54,\n                                    (re_match_context_t *)auStack_144,prVar38);\n                    if (aVar25.__spins != 0) {\n                      if ((int)auStack_144._120_4_ < aVar25.__spins) {\n                        auStack_144._120_4_ = aVar25.__spins;\n                      }\n                      puVar45 = (undefined1 *)\n                                ((int)(re_hashval_t *)auStack_144._40_4_ + aVar25.__spins);\n                      auStack_168._4_4_ =\n                           (*(code *)(iVar24 + 0x43b0))((re_match_context_t *)auStack_144,puVar45);\n                      prVar38 = (re_dfastate_t *)auStack_168._4_4_;\n                      if ((re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0)\n                      goto joined_r0x0004e770;\n                      iVar20 = (int)puVar45 * 4;\n                      pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + iVar20);\n                      prVar38 = *pprVar22;\n                      src2 = prVar48->eclosures + prVar48->nexts[iVar54];\n                      if (prVar38 == (re_dfastate_t *)0x0) {\n                        rStack_160.sifted_states = (re_dfastate_t **)src2->alloc;\n                        rStack_160.limited_states = (re_dfastate_t **)src2->nelem;\n                        rStack_160.last_node = (Idx)src2->elems;\n                        uVar32 = (*pcVar55)((re_match_context_t *)auStack_144,\n                                            (re_dfastate_t *)(puVar45 + -1),auStack_144._88_4_);\n                        prVar38 = re_acquire_state_context\n                                            ((reg_errcode_t *)(auStack_168 + 4),prVar48,\n                                             (re_node_set *)(auStack_168 + 8),uVar32);\n                        *pprVar22 = prVar38;\n                      }\n                      else {\n                        auStack_168._4_4_ =\n                             re_node_set_init_union\n                                       ((re_node_set *)(auStack_168 + 8),prVar38->entrance_nodes,\n                                        src2);\n                        prVar38 = (re_dfastate_t *)auStack_168._4_4_;\n                        if ((re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0)\n                        goto joined_r0x0004e770;\n                        uVar32 = (*pcVar55)((re_match_context_t *)auStack_144,\n                                            (re_dfastate_t *)(puVar45 + -1),auStack_144._88_4_);\n                        pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + iVar20);\n                        prVar38 = re_acquire_state_context\n                                            ((reg_errcode_t *)(auStack_168 + 4),prVar48,\n                                             (re_node_set *)(auStack_168 + 8),uVar32);\n                        pcVar8 = *(code **)(puVar56 + 0x28520);\n                        *pprVar22 = prVar38;\n                        (*pcVar8)(rStack_160.last_node);\n                      }\n                      if ((*(re_dfastate_t **)(auStack_144._100_4_ + iVar20) == (re_dfastate_t *)0x0\n                          ) && (prVar38 = (re_dfastate_t *)auStack_168._4_4_,\n                               (re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar20 = (prVar52->nodes).nelem;\n                    prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n                  }\nLAB_0004e670:\n                  in_a3 = (re_dfa_t *)((int)&((re_string_t *)&in_a3->nodes)->raw_mbs + 1);\n                }" { (expression_statement "prVar40 = prVar48->nodes;" (assignment_expression "prVar40 = prVar48->nodes" identifier = (field_expression "prVar48->nodes" identifier -> field_identifier)) ;) (expression_statement "iVar54 = (prVar52->nodes).elems[(int)in_a3];" (assignment_expression "iVar54 = (prVar52->nodes).elems[(int)in_a3]" identifier = (subscript_expression "(prVar52->nodes).elems[(int)in_a3]" (field_expression "(prVar52->nodes).elems" (parenthesized_expression "(prVar52->nodes)" ( (field_expression "prVar52->nodes" identifier -> field_identifier) )) . field_identifier) [ (cast_expression "(int)in_a3" ( (type_descriptor "int" primitive_type) ) identifier) ])) ;) (expression_statement "uVar32 = *(uint *)&prVar40[iVar54].field_0x4;" (assignment_expression "uVar32 = *(uint *)&prVar40[iVar54].field_0x4" identifier = (pointer_expression "*(uint *)&prVar40[iVar54].field_0x4" * (cast_expression "(uint *)&prVar40[iVar54].field_0x4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&prVar40[iVar54].field_0x4" & (field_expression "prVar40[iVar54].field_0x4" (subscript_expression "prVar40[iVar54]" identifier [ identifier ]) . field_identifier))))) ;) (if_statement "if ((uVar32 & 0x800) != 0) {\n                    if ((uVar32 & 0xffc000) != 0) {\n                      uVar15 = (*pcVar55)((re_match_context_t *)auStack_144,prVar38,\n                                          auStack_144._88_4_);\n                      uVar32 = (uVar32 << 8) >> 0x16;\n                      if ((uVar32 & 4) == 0) {\n                        uVar37 = uVar15 & 1;\n                        if ((uVar32 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar37 = uVar32 & 8;\n                        if ((uVar15 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar37 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar32 & 0x20) != 0) && ((uVar15 & 2) == 0)) ||\n                         (((uVar32 & 0x80) != 0 && ((uVar15 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    aVar25.__spins =\n                         (*(code *)(iVar19 + -0x4eb0))\n                                   (prVar40,&prVar48->syntax,iVar54,\n                                    (re_match_context_t *)auStack_144,prVar38);\n                    if (aVar25.__spins != 0) {\n                      if ((int)auStack_144._120_4_ < aVar25.__spins) {\n                        auStack_144._120_4_ = aVar25.__spins;\n                      }\n                      puVar45 = (undefined1 *)\n                                ((int)(re_hashval_t *)auStack_144._40_4_ + aVar25.__spins);\n                      auStack_168._4_4_ =\n                           (*(code *)(iVar24 + 0x43b0))((re_match_context_t *)auStack_144,puVar45);\n                      prVar38 = (re_dfastate_t *)auStack_168._4_4_;\n                      if ((re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0)\n                      goto joined_r0x0004e770;\n                      iVar20 = (int)puVar45 * 4;\n                      pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + iVar20);\n                      prVar38 = *pprVar22;\n                      src2 = prVar48->eclosures + prVar48->nexts[iVar54];\n                      if (prVar38 == (re_dfastate_t *)0x0) {\n                        rStack_160.sifted_states = (re_dfastate_t **)src2->alloc;\n                        rStack_160.limited_states = (re_dfastate_t **)src2->nelem;\n                        rStack_160.last_node = (Idx)src2->elems;\n                        uVar32 = (*pcVar55)((re_match_context_t *)auStack_144,\n                                            (re_dfastate_t *)(puVar45 + -1),auStack_144._88_4_);\n                        prVar38 = re_acquire_state_context\n                                            ((reg_errcode_t *)(auStack_168 + 4),prVar48,\n                                             (re_node_set *)(auStack_168 + 8),uVar32);\n                        *pprVar22 = prVar38;\n                      }\n                      else {\n                        auStack_168._4_4_ =\n                             re_node_set_init_union\n                                       ((re_node_set *)(auStack_168 + 8),prVar38->entrance_nodes,\n                                        src2);\n                        prVar38 = (re_dfastate_t *)auStack_168._4_4_;\n                        if ((re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0)\n                        goto joined_r0x0004e770;\n                        uVar32 = (*pcVar55)((re_match_context_t *)auStack_144,\n                                            (re_dfastate_t *)(puVar45 + -1),auStack_144._88_4_);\n                        pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + iVar20);\n                        prVar38 = re_acquire_state_context\n                                            ((reg_errcode_t *)(auStack_168 + 4),prVar48,\n                                             (re_node_set *)(auStack_168 + 8),uVar32);\n                        pcVar8 = *(code **)(puVar56 + 0x28520);\n                        *pprVar22 = prVar38;\n                        (*pcVar8)(rStack_160.last_node);\n                      }\n                      if ((*(re_dfastate_t **)(auStack_144._100_4_ + iVar20) == (re_dfastate_t *)0x0\n                          ) && (prVar38 = (re_dfastate_t *)auStack_168._4_4_,\n                               (re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar20 = (prVar52->nodes).nelem;\n                    prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n                  }" if (parenthesized_expression "((uVar32 & 0x800) != 0)" ( (binary_expression "(uVar32 & 0x800) != 0" (parenthesized_expression "(uVar32 & 0x800)" ( (binary_expression "uVar32 & 0x800" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                    if ((uVar32 & 0xffc000) != 0) {\n                      uVar15 = (*pcVar55)((re_match_context_t *)auStack_144,prVar38,\n                                          auStack_144._88_4_);\n                      uVar32 = (uVar32 << 8) >> 0x16;\n                      if ((uVar32 & 4) == 0) {\n                        uVar37 = uVar15 & 1;\n                        if ((uVar32 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar37 = uVar32 & 8;\n                        if ((uVar15 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar37 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar32 & 0x20) != 0) && ((uVar15 & 2) == 0)) ||\n                         (((uVar32 & 0x80) != 0 && ((uVar15 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    aVar25.__spins =\n                         (*(code *)(iVar19 + -0x4eb0))\n                                   (prVar40,&prVar48->syntax,iVar54,\n                                    (re_match_context_t *)auStack_144,prVar38);\n                    if (aVar25.__spins != 0) {\n                      if ((int)auStack_144._120_4_ < aVar25.__spins) {\n                        auStack_144._120_4_ = aVar25.__spins;\n                      }\n                      puVar45 = (undefined1 *)\n                                ((int)(re_hashval_t *)auStack_144._40_4_ + aVar25.__spins);\n                      auStack_168._4_4_ =\n                           (*(code *)(iVar24 + 0x43b0))((re_match_context_t *)auStack_144,puVar45);\n                      prVar38 = (re_dfastate_t *)auStack_168._4_4_;\n                      if ((re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0)\n                      goto joined_r0x0004e770;\n                      iVar20 = (int)puVar45 * 4;\n                      pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + iVar20);\n                      prVar38 = *pprVar22;\n                      src2 = prVar48->eclosures + prVar48->nexts[iVar54];\n                      if (prVar38 == (re_dfastate_t *)0x0) {\n                        rStack_160.sifted_states = (re_dfastate_t **)src2->alloc;\n                        rStack_160.limited_states = (re_dfastate_t **)src2->nelem;\n                        rStack_160.last_node = (Idx)src2->elems;\n                        uVar32 = (*pcVar55)((re_match_context_t *)auStack_144,\n                                            (re_dfastate_t *)(puVar45 + -1),auStack_144._88_4_);\n                        prVar38 = re_acquire_state_context\n                                            ((reg_errcode_t *)(auStack_168 + 4),prVar48,\n                                             (re_node_set *)(auStack_168 + 8),uVar32);\n                        *pprVar22 = prVar38;\n                      }\n                      else {\n                        auStack_168._4_4_ =\n                             re_node_set_init_union\n                                       ((re_node_set *)(auStack_168 + 8),prVar38->entrance_nodes,\n                                        src2);\n                        prVar38 = (re_dfastate_t *)auStack_168._4_4_;\n                        if ((re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0)\n                        goto joined_r0x0004e770;\n                        uVar32 = (*pcVar55)((re_match_context_t *)auStack_144,\n                                            (re_dfastate_t *)(puVar45 + -1),auStack_144._88_4_);\n                        pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + iVar20);\n                        prVar38 = re_acquire_state_context\n                                            ((reg_errcode_t *)(auStack_168 + 4),prVar48,\n                                             (re_node_set *)(auStack_168 + 8),uVar32);\n                        pcVar8 = *(code **)(puVar56 + 0x28520);\n                        *pprVar22 = prVar38;\n                        (*pcVar8)(rStack_160.last_node);\n                      }\n                      if ((*(re_dfastate_t **)(auStack_144._100_4_ + iVar20) == (re_dfastate_t *)0x0\n                          ) && (prVar38 = (re_dfastate_t *)auStack_168._4_4_,\n                               (re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar20 = (prVar52->nodes).nelem;\n                    prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n                  }" { (if_statement "if ((uVar32 & 0xffc000) != 0) {\n                      uVar15 = (*pcVar55)((re_match_context_t *)auStack_144,prVar38,\n                                          auStack_144._88_4_);\n                      uVar32 = (uVar32 << 8) >> 0x16;\n                      if ((uVar32 & 4) == 0) {\n                        uVar37 = uVar15 & 1;\n                        if ((uVar32 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar37 = uVar32 & 8;\n                        if ((uVar15 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar37 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar32 & 0x20) != 0) && ((uVar15 & 2) == 0)) ||\n                         (((uVar32 & 0x80) != 0 && ((uVar15 & 8) == 0)))) goto LAB_0004e670;\n                    }" if (parenthesized_expression "((uVar32 & 0xffc000) != 0)" ( (binary_expression "(uVar32 & 0xffc000) != 0" (parenthesized_expression "(uVar32 & 0xffc000)" ( (binary_expression "uVar32 & 0xffc000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                      uVar15 = (*pcVar55)((re_match_context_t *)auStack_144,prVar38,\n                                          auStack_144._88_4_);\n                      uVar32 = (uVar32 << 8) >> 0x16;\n                      if ((uVar32 & 4) == 0) {\n                        uVar37 = uVar15 & 1;\n                        if ((uVar32 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar37 = uVar32 & 8;\n                        if ((uVar15 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar37 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar32 & 0x20) != 0) && ((uVar15 & 2) == 0)) ||\n                         (((uVar32 & 0x80) != 0 && ((uVar15 & 8) == 0)))) goto LAB_0004e670;\n                    }" { (expression_statement "uVar15 = (*pcVar55)((re_match_context_t *)auStack_144,prVar38,\n                                          auStack_144._88_4_);" (assignment_expression "uVar15 = (*pcVar55)((re_match_context_t *)auStack_144,prVar38,\n                                          auStack_144._88_4_)" identifier = (call_expression "(*pcVar55)((re_match_context_t *)auStack_144,prVar38,\n                                          auStack_144._88_4_)" (parenthesized_expression "(*pcVar55)" ( (pointer_expression "*pcVar55" * identifier) )) (argument_list "((re_match_context_t *)auStack_144,prVar38,\n                                          auStack_144._88_4_)" ( (cast_expression "(re_match_context_t *)auStack_144" ( (type_descriptor "re_match_context_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , (field_expression "auStack_144._88_4_" identifier . field_identifier) )))) ;) (expression_statement "uVar32 = (uVar32 << 8) >> 0x16;" (assignment_expression "uVar32 = (uVar32 << 8) >> 0x16" identifier = (binary_expression "(uVar32 << 8) >> 0x16" (parenthesized_expression "(uVar32 << 8)" ( (binary_expression "uVar32 << 8" identifier << number_literal) )) >> number_literal)) ;) (if_statement "if ((uVar32 & 4) == 0) {\n                        uVar37 = uVar15 & 1;\n                        if ((uVar32 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar37 = uVar32 & 8;\n                        if ((uVar15 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar37 != 0) goto LAB_0004e670;\n                      }" if (parenthesized_expression "((uVar32 & 4) == 0)" ( (binary_expression "(uVar32 & 4) == 0" (parenthesized_expression "(uVar32 & 4)" ( (binary_expression "uVar32 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                        uVar37 = uVar15 & 1;\n                        if ((uVar32 & 8) != 0) goto joined_r0x0004e514;\n                      }" { (expression_statement "uVar37 = uVar15 & 1;" (assignment_expression "uVar37 = uVar15 & 1" identifier = (binary_expression "uVar15 & 1" identifier & number_literal)) ;) (if_statement "if ((uVar32 & 8) != 0) goto joined_r0x0004e514;" if (parenthesized_expression "((uVar32 & 8) != 0)" ( (binary_expression "(uVar32 & 8) != 0" (parenthesized_expression "(uVar32 & 8)" ( (binary_expression "uVar32 & 8" identifier & number_literal) )) != number_literal) )) (goto_statement "goto joined_r0x0004e514;" goto statement_identifier ;)) }) (else_clause "else {\n                        uVar37 = uVar32 & 8;\n                        if ((uVar15 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar37 != 0) goto LAB_0004e670;\n                      }" else (compound_statement "{\n                        uVar37 = uVar32 & 8;\n                        if ((uVar15 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar37 != 0) goto LAB_0004e670;\n                      }" { (expression_statement "uVar37 = uVar32 & 8;" (assignment_expression "uVar37 = uVar32 & 8" identifier = (binary_expression "uVar32 & 8" identifier & number_literal)) ;) (if_statement "if ((uVar15 & 1) == 0) goto LAB_0004e670;" if (parenthesized_expression "((uVar15 & 1) == 0)" ( (binary_expression "(uVar15 & 1) == 0" (parenthesized_expression "(uVar15 & 1)" ( (binary_expression "uVar15 & 1" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0004e670;" goto statement_identifier ;)) (labeled_statement "joined_r0x0004e514:\n                        if (uVar37 != 0) goto LAB_0004e670;" statement_identifier : (if_statement "if (uVar37 != 0) goto LAB_0004e670;" if (parenthesized_expression "(uVar37 != 0)" ( (binary_expression "uVar37 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0004e670;" goto statement_identifier ;))) }))) (if_statement "if ((((uVar32 & 0x20) != 0) && ((uVar15 & 2) == 0)) ||\n                         (((uVar32 & 0x80) != 0 && ((uVar15 & 8) == 0)))) goto LAB_0004e670;" if (parenthesized_expression "((((uVar32 & 0x20) != 0) && ((uVar15 & 2) == 0)) ||\n                         (((uVar32 & 0x80) != 0 && ((uVar15 & 8) == 0))))" ( (binary_expression "(((uVar32 & 0x20) != 0) && ((uVar15 & 2) == 0)) ||\n                         (((uVar32 & 0x80) != 0 && ((uVar15 & 8) == 0)))" (parenthesized_expression "(((uVar32 & 0x20) != 0) && ((uVar15 & 2) == 0))" ( (binary_expression "((uVar32 & 0x20) != 0) && ((uVar15 & 2) == 0)" (parenthesized_expression "((uVar32 & 0x20) != 0)" ( (binary_expression "(uVar32 & 0x20) != 0" (parenthesized_expression "(uVar32 & 0x20)" ( (binary_expression "uVar32 & 0x20" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "((uVar15 & 2) == 0)" ( (binary_expression "(uVar15 & 2) == 0" (parenthesized_expression "(uVar15 & 2)" ( (binary_expression "uVar15 & 2" identifier & number_literal) )) == number_literal) ))) )) || (parenthesized_expression "(((uVar32 & 0x80) != 0 && ((uVar15 & 8) == 0)))" ( (parenthesized_expression "((uVar32 & 0x80) != 0 && ((uVar15 & 8) == 0))" ( (binary_expression "(uVar32 & 0x80) != 0 && ((uVar15 & 8) == 0)" (binary_expression "(uVar32 & 0x80) != 0" (parenthesized_expression "(uVar32 & 0x80)" ( (binary_expression "uVar32 & 0x80" identifier & number_literal) )) != number_literal) && (parenthesized_expression "((uVar15 & 8) == 0)" ( (binary_expression "(uVar15 & 8) == 0" (parenthesized_expression "(uVar15 & 8)" ( (binary_expression "uVar15 & 8" identifier & number_literal) )) == number_literal) ))) )) ))) )) (goto_statement "goto LAB_0004e670;" goto statement_identifier ;)) })) (expression_statement "aVar25.__spins =\n                         (*(code *)(iVar19 + -0x4eb0))\n                                   (prVar40,&prVar48->syntax,iVar54,\n                                    (re_match_context_t *)auStack_144,prVar38);" (assignment_expression "aVar25.__spins =\n                         (*(code *)(iVar19 + -0x4eb0))\n                                   (prVar40,&prVar48->syntax,iVar54,\n                                    (re_match_context_t *)auStack_144,prVar38)" (field_expression "aVar25.__spins" identifier . field_identifier) = (call_expression "(*(code *)(iVar19 + -0x4eb0))\n                                   (prVar40,&prVar48->syntax,iVar54,\n                                    (re_match_context_t *)auStack_144,prVar38)" (parenthesized_expression "(*(code *)(iVar19 + -0x4eb0))" ( (pointer_expression "*(code *)(iVar19 + -0x4eb0)" * (cast_expression "(code *)(iVar19 + -0x4eb0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + -0x4eb0)" ( (binary_expression "iVar19 + -0x4eb0" identifier + number_literal) )))) )) (argument_list "(prVar40,&prVar48->syntax,iVar54,\n                                    (re_match_context_t *)auStack_144,prVar38)" ( identifier , (pointer_expression "&prVar48->syntax" & (field_expression "prVar48->syntax" identifier -> field_identifier)) , identifier , (cast_expression "(re_match_context_t *)auStack_144" ( (type_descriptor "re_match_context_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) ;) (if_statement "if (aVar25.__spins != 0) {\n                      if ((int)auStack_144._120_4_ < aVar25.__spins) {\n                        auStack_144._120_4_ = aVar25.__spins;\n                      }\n                      puVar45 = (undefined1 *)\n                                ((int)(re_hashval_t *)auStack_144._40_4_ + aVar25.__spins);\n                      auStack_168._4_4_ =\n                           (*(code *)(iVar24 + 0x43b0))((re_match_context_t *)auStack_144,puVar45);\n                      prVar38 = (re_dfastate_t *)auStack_168._4_4_;\n                      if ((re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0)\n                      goto joined_r0x0004e770;\n                      iVar20 = (int)puVar45 * 4;\n                      pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + iVar20);\n                      prVar38 = *pprVar22;\n                      src2 = prVar48->eclosures + prVar48->nexts[iVar54];\n                      if (prVar38 == (re_dfastate_t *)0x0) {\n                        rStack_160.sifted_states = (re_dfastate_t **)src2->alloc;\n                        rStack_160.limited_states = (re_dfastate_t **)src2->nelem;\n                        rStack_160.last_node = (Idx)src2->elems;\n                        uVar32 = (*pcVar55)((re_match_context_t *)auStack_144,\n                                            (re_dfastate_t *)(puVar45 + -1),auStack_144._88_4_);\n                        prVar38 = re_acquire_state_context\n                                            ((reg_errcode_t *)(auStack_168 + 4),prVar48,\n                                             (re_node_set *)(auStack_168 + 8),uVar32);\n                        *pprVar22 = prVar38;\n                      }\n                      else {\n                        auStack_168._4_4_ =\n                             re_node_set_init_union\n                                       ((re_node_set *)(auStack_168 + 8),prVar38->entrance_nodes,\n                                        src2);\n                        prVar38 = (re_dfastate_t *)auStack_168._4_4_;\n                        if ((re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0)\n                        goto joined_r0x0004e770;\n                        uVar32 = (*pcVar55)((re_match_context_t *)auStack_144,\n                                            (re_dfastate_t *)(puVar45 + -1),auStack_144._88_4_);\n                        pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + iVar20);\n                        prVar38 = re_acquire_state_context\n                                            ((reg_errcode_t *)(auStack_168 + 4),prVar48,\n                                             (re_node_set *)(auStack_168 + 8),uVar32);\n                        pcVar8 = *(code **)(puVar56 + 0x28520);\n                        *pprVar22 = prVar38;\n                        (*pcVar8)(rStack_160.last_node);\n                      }\n                      if ((*(re_dfastate_t **)(auStack_144._100_4_ + iVar20) == (re_dfastate_t *)0x0\n                          ) && (prVar38 = (re_dfastate_t *)auStack_168._4_4_,\n                               (re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0))\n                      goto joined_r0x0004e770;\n                    }" if (parenthesized_expression "(aVar25.__spins != 0)" ( (binary_expression "aVar25.__spins != 0" (field_expression "aVar25.__spins" identifier . field_identifier) != number_literal) )) (compound_statement "{\n                      if ((int)auStack_144._120_4_ < aVar25.__spins) {\n                        auStack_144._120_4_ = aVar25.__spins;\n                      }\n                      puVar45 = (undefined1 *)\n                                ((int)(re_hashval_t *)auStack_144._40_4_ + aVar25.__spins);\n                      auStack_168._4_4_ =\n                           (*(code *)(iVar24 + 0x43b0))((re_match_context_t *)auStack_144,puVar45);\n                      prVar38 = (re_dfastate_t *)auStack_168._4_4_;\n                      if ((re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0)\n                      goto joined_r0x0004e770;\n                      iVar20 = (int)puVar45 * 4;\n                      pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + iVar20);\n                      prVar38 = *pprVar22;\n                      src2 = prVar48->eclosures + prVar48->nexts[iVar54];\n                      if (prVar38 == (re_dfastate_t *)0x0) {\n                        rStack_160.sifted_states = (re_dfastate_t **)src2->alloc;\n                        rStack_160.limited_states = (re_dfastate_t **)src2->nelem;\n                        rStack_160.last_node = (Idx)src2->elems;\n                        uVar32 = (*pcVar55)((re_match_context_t *)auStack_144,\n                                            (re_dfastate_t *)(puVar45 + -1),auStack_144._88_4_);\n                        prVar38 = re_acquire_state_context\n                                            ((reg_errcode_t *)(auStack_168 + 4),prVar48,\n                                             (re_node_set *)(auStack_168 + 8),uVar32);\n                        *pprVar22 = prVar38;\n                      }\n                      else {\n                        auStack_168._4_4_ =\n                             re_node_set_init_union\n                                       ((re_node_set *)(auStack_168 + 8),prVar38->entrance_nodes,\n                                        src2);\n                        prVar38 = (re_dfastate_t *)auStack_168._4_4_;\n                        if ((re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0)\n                        goto joined_r0x0004e770;\n                        uVar32 = (*pcVar55)((re_match_context_t *)auStack_144,\n                                            (re_dfastate_t *)(puVar45 + -1),auStack_144._88_4_);\n                        pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + iVar20);\n                        prVar38 = re_acquire_state_context\n                                            ((reg_errcode_t *)(auStack_168 + 4),prVar48,\n                                             (re_node_set *)(auStack_168 + 8),uVar32);\n                        pcVar8 = *(code **)(puVar56 + 0x28520);\n                        *pprVar22 = prVar38;\n                        (*pcVar8)(rStack_160.last_node);\n                      }\n                      if ((*(re_dfastate_t **)(auStack_144._100_4_ + iVar20) == (re_dfastate_t *)0x0\n                          ) && (prVar38 = (re_dfastate_t *)auStack_168._4_4_,\n                               (re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0))\n                      goto joined_r0x0004e770;\n                    }" { (if_statement "if ((int)auStack_144._120_4_ < aVar25.__spins) {\n                        auStack_144._120_4_ = aVar25.__spins;\n                      }" if (parenthesized_expression "((int)auStack_144._120_4_ < aVar25.__spins)" ( (binary_expression "(int)auStack_144._120_4_ < aVar25.__spins" (cast_expression "(int)auStack_144._120_4_" ( (type_descriptor "int" primitive_type) ) (field_expression "auStack_144._120_4_" identifier . field_identifier)) < (field_expression "aVar25.__spins" identifier . field_identifier)) )) (compound_statement "{\n                        auStack_144._120_4_ = aVar25.__spins;\n                      }" { (expression_statement "auStack_144._120_4_ = aVar25.__spins;" (assignment_expression "auStack_144._120_4_ = aVar25.__spins" (field_expression "auStack_144._120_4_" identifier . field_identifier) = (field_expression "aVar25.__spins" identifier . field_identifier)) ;) })) (expression_statement "puVar45 = (undefined1 *)\n                                ((int)(re_hashval_t *)auStack_144._40_4_ + aVar25.__spins);" (assignment_expression "puVar45 = (undefined1 *)\n                                ((int)(re_hashval_t *)auStack_144._40_4_ + aVar25.__spins)" identifier = (cast_expression "(undefined1 *)\n                                ((int)(re_hashval_t *)auStack_144._40_4_ + aVar25.__spins)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(re_hashval_t *)auStack_144._40_4_ + aVar25.__spins)" ( (binary_expression "(int)(re_hashval_t *)auStack_144._40_4_ + aVar25.__spins" (cast_expression "(int)(re_hashval_t *)auStack_144._40_4_" ( (type_descriptor "int" primitive_type) ) (cast_expression "(re_hashval_t *)auStack_144._40_4_" ( (type_descriptor "re_hashval_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStack_144._40_4_" identifier . field_identifier))) + (field_expression "aVar25.__spins" identifier . field_identifier)) )))) ;) (expression_statement "auStack_168._4_4_ =\n                           (*(code *)(iVar24 + 0x43b0))((re_match_context_t *)auStack_144,puVar45);" (assignment_expression "auStack_168._4_4_ =\n                           (*(code *)(iVar24 + 0x43b0))((re_match_context_t *)auStack_144,puVar45)" (field_expression "auStack_168._4_4_" identifier . field_identifier) = (call_expression "(*(code *)(iVar24 + 0x43b0))((re_match_context_t *)auStack_144,puVar45)" (parenthesized_expression "(*(code *)(iVar24 + 0x43b0))" ( (pointer_expression "*(code *)(iVar24 + 0x43b0)" * (cast_expression "(code *)(iVar24 + 0x43b0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x43b0)" ( (binary_expression "iVar24 + 0x43b0" identifier + number_literal) )))) )) (argument_list "((re_match_context_t *)auStack_144,puVar45)" ( (cast_expression "(re_match_context_t *)auStack_144" ( (type_descriptor "re_match_context_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) ;) (expression_statement "prVar38 = (re_dfastate_t *)auStack_168._4_4_;" (assignment_expression "prVar38 = (re_dfastate_t *)auStack_168._4_4_" identifier = (cast_expression "(re_dfastate_t *)auStack_168._4_4_" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStack_168._4_4_" identifier . field_identifier))) ;) (if_statement "if ((re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0)\n                      goto joined_r0x0004e770;" if (parenthesized_expression "((re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0)" ( (binary_expression "(re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0" (cast_expression "(re_dfastate_t *)auStack_168._4_4_" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStack_168._4_4_" identifier . field_identifier)) != (cast_expression "(re_dfastate_t *)0x0" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto joined_r0x0004e770;" goto statement_identifier ;)) (expression_statement "iVar20 = (int)puVar45 * 4;" (assignment_expression "iVar20 = (int)puVar45 * 4" identifier = (binary_expression "(int)puVar45 * 4" (cast_expression "(int)puVar45" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (expression_statement "pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + iVar20);" (assignment_expression "pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + iVar20)" identifier = (cast_expression "(re_dfastate_t **)(auStack_144._100_4_ + iVar20)" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(auStack_144._100_4_ + iVar20)" ( (binary_expression "auStack_144._100_4_ + iVar20" (field_expression "auStack_144._100_4_" identifier . field_identifier) + identifier) )))) ;) (expression_statement "prVar38 = *pprVar22;" (assignment_expression "prVar38 = *pprVar22" identifier = (pointer_expression "*pprVar22" * identifier)) ;) (expression_statement "src2 = prVar48->eclosures + prVar48->nexts[iVar54];" (assignment_expression "src2 = prVar48->eclosures + prVar48->nexts[iVar54]" identifier = (binary_expression "prVar48->eclosures + prVar48->nexts[iVar54]" (field_expression "prVar48->eclosures" identifier -> field_identifier) + (subscript_expression "prVar48->nexts[iVar54]" (field_expression "prVar48->nexts" identifier -> field_identifier) [ identifier ]))) ;) (if_statement "if (prVar38 == (re_dfastate_t *)0x0) {\n                        rStack_160.sifted_states = (re_dfastate_t **)src2->alloc;\n                        rStack_160.limited_states = (re_dfastate_t **)src2->nelem;\n                        rStack_160.last_node = (Idx)src2->elems;\n                        uVar32 = (*pcVar55)((re_match_context_t *)auStack_144,\n                                            (re_dfastate_t *)(puVar45 + -1),auStack_144._88_4_);\n                        prVar38 = re_acquire_state_context\n                                            ((reg_errcode_t *)(auStack_168 + 4),prVar48,\n                                             (re_node_set *)(auStack_168 + 8),uVar32);\n                        *pprVar22 = prVar38;\n                      }\n                      else {\n                        auStack_168._4_4_ =\n                             re_node_set_init_union\n                                       ((re_node_set *)(auStack_168 + 8),prVar38->entrance_nodes,\n                                        src2);\n                        prVar38 = (re_dfastate_t *)auStack_168._4_4_;\n                        if ((re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0)\n                        goto joined_r0x0004e770;\n                        uVar32 = (*pcVar55)((re_match_context_t *)auStack_144,\n                                            (re_dfastate_t *)(puVar45 + -1),auStack_144._88_4_);\n                        pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + iVar20);\n                        prVar38 = re_acquire_state_context\n                                            ((reg_errcode_t *)(auStack_168 + 4),prVar48,\n                                             (re_node_set *)(auStack_168 + 8),uVar32);\n                        pcVar8 = *(code **)(puVar56 + 0x28520);\n                        *pprVar22 = prVar38;\n                        (*pcVar8)(rStack_160.last_node);\n                      }" if (parenthesized_expression "(prVar38 == (re_dfastate_t *)0x0)" ( (binary_expression "prVar38 == (re_dfastate_t *)0x0" identifier == (cast_expression "(re_dfastate_t *)0x0" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                        rStack_160.sifted_states = (re_dfastate_t **)src2->alloc;\n                        rStack_160.limited_states = (re_dfastate_t **)src2->nelem;\n                        rStack_160.last_node = (Idx)src2->elems;\n                        uVar32 = (*pcVar55)((re_match_context_t *)auStack_144,\n                                            (re_dfastate_t *)(puVar45 + -1),auStack_144._88_4_);\n                        prVar38 = re_acquire_state_context\n                                            ((reg_errcode_t *)(auStack_168 + 4),prVar48,\n                                             (re_node_set *)(auStack_168 + 8),uVar32);\n                        *pprVar22 = prVar38;\n                      }" { (expression_statement "rStack_160.sifted_states = (re_dfastate_t **)src2->alloc;" (assignment_expression "rStack_160.sifted_states = (re_dfastate_t **)src2->alloc" (field_expression "rStack_160.sifted_states" identifier . field_identifier) = (cast_expression "(re_dfastate_t **)src2->alloc" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (field_expression "src2->alloc" identifier -> field_identifier))) ;) (expression_statement "rStack_160.limited_states = (re_dfastate_t **)src2->nelem;" (assignment_expression "rStack_160.limited_states = (re_dfastate_t **)src2->nelem" (field_expression "rStack_160.limited_states" identifier . field_identifier) = (cast_expression "(re_dfastate_t **)src2->nelem" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (field_expression "src2->nelem" identifier -> field_identifier))) ;) (expression_statement "rStack_160.last_node = (Idx)src2->elems;" (assignment_expression "rStack_160.last_node = (Idx)src2->elems" (field_expression "rStack_160.last_node" identifier . field_identifier) = (cast_expression "(Idx)src2->elems" ( (type_descriptor "Idx" type_identifier) ) (field_expression "src2->elems" identifier -> field_identifier))) ;) (expression_statement "uVar32 = (*pcVar55)((re_match_context_t *)auStack_144,\n                                            (re_dfastate_t *)(puVar45 + -1),auStack_144._88_4_);" (assignment_expression "uVar32 = (*pcVar55)((re_match_context_t *)auStack_144,\n                                            (re_dfastate_t *)(puVar45 + -1),auStack_144._88_4_)" identifier = (call_expression "(*pcVar55)((re_match_context_t *)auStack_144,\n                                            (re_dfastate_t *)(puVar45 + -1),auStack_144._88_4_)" (parenthesized_expression "(*pcVar55)" ( (pointer_expression "*pcVar55" * identifier) )) (argument_list "((re_match_context_t *)auStack_144,\n                                            (re_dfastate_t *)(puVar45 + -1),auStack_144._88_4_)" ( (cast_expression "(re_match_context_t *)auStack_144" ( (type_descriptor "re_match_context_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(re_dfastate_t *)(puVar45 + -1)" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar45 + -1)" ( (binary_expression "puVar45 + -1" identifier + number_literal) ))) , (field_expression "auStack_144._88_4_" identifier . field_identifier) )))) ;) (expression_statement "prVar38 = re_acquire_state_context\n                                            ((reg_errcode_t *)(auStack_168 + 4),prVar48,\n                                             (re_node_set *)(auStack_168 + 8),uVar32);" (assignment_expression "prVar38 = re_acquire_state_context\n                                            ((reg_errcode_t *)(auStack_168 + 4),prVar48,\n                                             (re_node_set *)(auStack_168 + 8),uVar32)" identifier = (call_expression "re_acquire_state_context\n                                            ((reg_errcode_t *)(auStack_168 + 4),prVar48,\n                                             (re_node_set *)(auStack_168 + 8),uVar32)" identifier (argument_list "((reg_errcode_t *)(auStack_168 + 4),prVar48,\n                                             (re_node_set *)(auStack_168 + 8),uVar32)" ( (cast_expression "(reg_errcode_t *)(auStack_168 + 4)" ( (type_descriptor "reg_errcode_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(auStack_168 + 4)" ( (binary_expression "auStack_168 + 4" identifier + number_literal) ))) , identifier , (cast_expression "(re_node_set *)(auStack_168 + 8)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(auStack_168 + 8)" ( (binary_expression "auStack_168 + 8" identifier + number_literal) ))) , identifier )))) ;) (expression_statement "*pprVar22 = prVar38;" (assignment_expression "*pprVar22 = prVar38" (pointer_expression "*pprVar22" * identifier) = identifier) ;) }) (else_clause "else {\n                        auStack_168._4_4_ =\n                             re_node_set_init_union\n                                       ((re_node_set *)(auStack_168 + 8),prVar38->entrance_nodes,\n                                        src2);\n                        prVar38 = (re_dfastate_t *)auStack_168._4_4_;\n                        if ((re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0)\n                        goto joined_r0x0004e770;\n                        uVar32 = (*pcVar55)((re_match_context_t *)auStack_144,\n                                            (re_dfastate_t *)(puVar45 + -1),auStack_144._88_4_);\n                        pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + iVar20);\n                        prVar38 = re_acquire_state_context\n                                            ((reg_errcode_t *)(auStack_168 + 4),prVar48,\n                                             (re_node_set *)(auStack_168 + 8),uVar32);\n                        pcVar8 = *(code **)(puVar56 + 0x28520);\n                        *pprVar22 = prVar38;\n                        (*pcVar8)(rStack_160.last_node);\n                      }" else (compound_statement "{\n                        auStack_168._4_4_ =\n                             re_node_set_init_union\n                                       ((re_node_set *)(auStack_168 + 8),prVar38->entrance_nodes,\n                                        src2);\n                        prVar38 = (re_dfastate_t *)auStack_168._4_4_;\n                        if ((re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0)\n                        goto joined_r0x0004e770;\n                        uVar32 = (*pcVar55)((re_match_context_t *)auStack_144,\n                                            (re_dfastate_t *)(puVar45 + -1),auStack_144._88_4_);\n                        pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + iVar20);\n                        prVar38 = re_acquire_state_context\n                                            ((reg_errcode_t *)(auStack_168 + 4),prVar48,\n                                             (re_node_set *)(auStack_168 + 8),uVar32);\n                        pcVar8 = *(code **)(puVar56 + 0x28520);\n                        *pprVar22 = prVar38;\n                        (*pcVar8)(rStack_160.last_node);\n                      }" { (expression_statement "auStack_168._4_4_ =\n                             re_node_set_init_union\n                                       ((re_node_set *)(auStack_168 + 8),prVar38->entrance_nodes,\n                                        src2);" (assignment_expression "auStack_168._4_4_ =\n                             re_node_set_init_union\n                                       ((re_node_set *)(auStack_168 + 8),prVar38->entrance_nodes,\n                                        src2)" (field_expression "auStack_168._4_4_" identifier . field_identifier) = (call_expression "re_node_set_init_union\n                                       ((re_node_set *)(auStack_168 + 8),prVar38->entrance_nodes,\n                                        src2)" identifier (argument_list "((re_node_set *)(auStack_168 + 8),prVar38->entrance_nodes,\n                                        src2)" ( (cast_expression "(re_node_set *)(auStack_168 + 8)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(auStack_168 + 8)" ( (binary_expression "auStack_168 + 8" identifier + number_literal) ))) , (field_expression "prVar38->entrance_nodes" identifier -> field_identifier) , identifier )))) ;) (expression_statement "prVar38 = (re_dfastate_t *)auStack_168._4_4_;" (assignment_expression "prVar38 = (re_dfastate_t *)auStack_168._4_4_" identifier = (cast_expression "(re_dfastate_t *)auStack_168._4_4_" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStack_168._4_4_" identifier . field_identifier))) ;) (if_statement "if ((re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0)\n                        goto joined_r0x0004e770;" if (parenthesized_expression "((re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0)" ( (binary_expression "(re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0" (cast_expression "(re_dfastate_t *)auStack_168._4_4_" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStack_168._4_4_" identifier . field_identifier)) != (cast_expression "(re_dfastate_t *)0x0" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto joined_r0x0004e770;" goto statement_identifier ;)) (expression_statement "uVar32 = (*pcVar55)((re_match_context_t *)auStack_144,\n                                            (re_dfastate_t *)(puVar45 + -1),auStack_144._88_4_);" (assignment_expression "uVar32 = (*pcVar55)((re_match_context_t *)auStack_144,\n                                            (re_dfastate_t *)(puVar45 + -1),auStack_144._88_4_)" identifier = (call_expression "(*pcVar55)((re_match_context_t *)auStack_144,\n                                            (re_dfastate_t *)(puVar45 + -1),auStack_144._88_4_)" (parenthesized_expression "(*pcVar55)" ( (pointer_expression "*pcVar55" * identifier) )) (argument_list "((re_match_context_t *)auStack_144,\n                                            (re_dfastate_t *)(puVar45 + -1),auStack_144._88_4_)" ( (cast_expression "(re_match_context_t *)auStack_144" ( (type_descriptor "re_match_context_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(re_dfastate_t *)(puVar45 + -1)" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar45 + -1)" ( (binary_expression "puVar45 + -1" identifier + number_literal) ))) , (field_expression "auStack_144._88_4_" identifier . field_identifier) )))) ;) (expression_statement "pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + iVar20);" (assignment_expression "pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + iVar20)" identifier = (cast_expression "(re_dfastate_t **)(auStack_144._100_4_ + iVar20)" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(auStack_144._100_4_ + iVar20)" ( (binary_expression "auStack_144._100_4_ + iVar20" (field_expression "auStack_144._100_4_" identifier . field_identifier) + identifier) )))) ;) (expression_statement "prVar38 = re_acquire_state_context\n                                            ((reg_errcode_t *)(auStack_168 + 4),prVar48,\n                                             (re_node_set *)(auStack_168 + 8),uVar32);" (assignment_expression "prVar38 = re_acquire_state_context\n                                            ((reg_errcode_t *)(auStack_168 + 4),prVar48,\n                                             (re_node_set *)(auStack_168 + 8),uVar32)" identifier = (call_expression "re_acquire_state_context\n                                            ((reg_errcode_t *)(auStack_168 + 4),prVar48,\n                                             (re_node_set *)(auStack_168 + 8),uVar32)" identifier (argument_list "((reg_errcode_t *)(auStack_168 + 4),prVar48,\n                                             (re_node_set *)(auStack_168 + 8),uVar32)" ( (cast_expression "(reg_errcode_t *)(auStack_168 + 4)" ( (type_descriptor "reg_errcode_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(auStack_168 + 4)" ( (binary_expression "auStack_168 + 4" identifier + number_literal) ))) , identifier , (cast_expression "(re_node_set *)(auStack_168 + 8)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(auStack_168 + 8)" ( (binary_expression "auStack_168 + 8" identifier + number_literal) ))) , identifier )))) ;) (expression_statement "pcVar8 = *(code **)(puVar56 + 0x28520);" (assignment_expression "pcVar8 = *(code **)(puVar56 + 0x28520)" identifier = (pointer_expression "*(code **)(puVar56 + 0x28520)" * (cast_expression "(code **)(puVar56 + 0x28520)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x28520)" ( (binary_expression "puVar56 + 0x28520" identifier + number_literal) ))))) ;) (expression_statement "*pprVar22 = prVar38;" (assignment_expression "*pprVar22 = prVar38" (pointer_expression "*pprVar22" * identifier) = identifier) ;) (expression_statement "(*pcVar8)(rStack_160.last_node);" (call_expression "(*pcVar8)(rStack_160.last_node)" (parenthesized_expression "(*pcVar8)" ( (pointer_expression "*pcVar8" * identifier) )) (argument_list "(rStack_160.last_node)" ( (field_expression "rStack_160.last_node" identifier . field_identifier) ))) ;) }))) (if_statement "if ((*(re_dfastate_t **)(auStack_144._100_4_ + iVar20) == (re_dfastate_t *)0x0\n                          ) && (prVar38 = (re_dfastate_t *)auStack_168._4_4_,\n                               (re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0))\n                      goto joined_r0x0004e770;" if (parenthesized_expression "((*(re_dfastate_t **)(auStack_144._100_4_ + iVar20) == (re_dfastate_t *)0x0\n                          ) && (prVar38 = (re_dfastate_t *)auStack_168._4_4_,\n                               (re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0))" ( (binary_expression "(*(re_dfastate_t **)(auStack_144._100_4_ + iVar20) == (re_dfastate_t *)0x0\n                          ) && (prVar38 = (re_dfastate_t *)auStack_168._4_4_,\n                               (re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0)" (parenthesized_expression "(*(re_dfastate_t **)(auStack_144._100_4_ + iVar20) == (re_dfastate_t *)0x0\n                          )" ( (binary_expression "*(re_dfastate_t **)(auStack_144._100_4_ + iVar20) == (re_dfastate_t *)0x0" (pointer_expression "*(re_dfastate_t **)(auStack_144._100_4_ + iVar20)" * (cast_expression "(re_dfastate_t **)(auStack_144._100_4_ + iVar20)" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(auStack_144._100_4_ + iVar20)" ( (binary_expression "auStack_144._100_4_ + iVar20" (field_expression "auStack_144._100_4_" identifier . field_identifier) + identifier) )))) == (cast_expression "(re_dfastate_t *)0x0" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(prVar38 = (re_dfastate_t *)auStack_168._4_4_,\n                               (re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0)" ( (comma_expression "prVar38 = (re_dfastate_t *)auStack_168._4_4_,\n                               (re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0" (assignment_expression "prVar38 = (re_dfastate_t *)auStack_168._4_4_" identifier = (cast_expression "(re_dfastate_t *)auStack_168._4_4_" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStack_168._4_4_" identifier . field_identifier))) , (binary_expression "(re_dfastate_t *)auStack_168._4_4_ != (re_dfastate_t *)0x0" (cast_expression "(re_dfastate_t *)auStack_168._4_4_" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStack_168._4_4_" identifier . field_identifier)) != (cast_expression "(re_dfastate_t *)0x0" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (goto_statement "goto joined_r0x0004e770;" goto statement_identifier ;)) })) (expression_statement "iVar20 = (prVar52->nodes).nelem;" (assignment_expression "iVar20 = (prVar52->nodes).nelem" identifier = (field_expression "(prVar52->nodes).nelem" (parenthesized_expression "(prVar52->nodes)" ( (field_expression "prVar52->nodes" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "prVar38 = (re_dfastate_t *)auStack_144._40_4_;" (assignment_expression "prVar38 = (re_dfastate_t *)auStack_144._40_4_" identifier = (cast_expression "(re_dfastate_t *)auStack_144._40_4_" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStack_144._40_4_" identifier . field_identifier))) ;) })) (labeled_statement "LAB_0004e670:\n                  in_a3 = (re_dfa_t *)((int)&((re_string_t *)&in_a3->nodes)->raw_mbs + 1);" statement_identifier : (expression_statement "in_a3 = (re_dfa_t *)((int)&((re_string_t *)&in_a3->nodes)->raw_mbs + 1);" (assignment_expression "in_a3 = (re_dfa_t *)((int)&((re_string_t *)&in_a3->nodes)->raw_mbs + 1)" identifier = (cast_expression "(re_dfa_t *)((int)&((re_string_t *)&in_a3->nodes)->raw_mbs + 1)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&((re_string_t *)&in_a3->nodes)->raw_mbs + 1)" ( (binary_expression "(int)&((re_string_t *)&in_a3->nodes)->raw_mbs + 1" (cast_expression "(int)&((re_string_t *)&in_a3->nodes)->raw_mbs" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&((re_string_t *)&in_a3->nodes)->raw_mbs" & (field_expression "((re_string_t *)&in_a3->nodes)->raw_mbs" (parenthesized_expression "((re_string_t *)&in_a3->nodes)" ( (cast_expression "(re_string_t *)&in_a3->nodes" ( (type_descriptor "re_string_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&in_a3->nodes" & (field_expression "in_a3->nodes" identifier -> field_identifier))) )) -> field_identifier))) + number_literal) )))) ;)) }) while (parenthesized_expression "((int)in_a3 < iVar20)" ( (binary_expression "(int)in_a3 < iVar20" (cast_expression "(int)in_a3" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) )) ;) })) (expression_statement "auStack_168._0_4_ = (re_dfastate_t *)0x0;" (assignment_expression "auStack_168._0_4_ = (re_dfastate_t *)0x0" (field_expression "auStack_168._0_4_" identifier . field_identifier) = (cast_expression "(re_dfastate_t *)0x0" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "auStack_144._40_4_ = (int)&prVar38->hash + 1;" (assignment_expression "auStack_144._40_4_ = (int)&prVar38->hash + 1" (field_expression "auStack_144._40_4_" identifier . field_identifier) = (binary_expression "(int)&prVar38->hash + 1" (cast_expression "(int)&prVar38->hash" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prVar38->hash" & (field_expression "prVar38->hash" identifier -> field_identifier))) + number_literal)) ;) (expression_statement "uVar32 = (uint)*(byte *)((int)((re_dfa_t *)\n                                          ((bitset_word_t *)(auStack_144._4_4_ + 0x60) + -0x18))->\n                                          word_char + (int)&prVar38[-2].non_eps_nodes);" (assignment_expression "uVar32 = (uint)*(byte *)((int)((re_dfa_t *)\n                                          ((bitset_word_t *)(auStack_144._4_4_ + 0x60) + -0x18))->\n                                          word_char + (int)&prVar38[-2].non_eps_nodes)" identifier = (binary_expression "(uint)*(byte *)((int)((re_dfa_t *)\n                                          ((bitset_word_t *)(auStack_144._4_4_ + 0x60) + -0x18))->\n                                          word_char + (int)&prVar38[-2].non_eps_nodes)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)((int)((re_dfa_t *)\n                                          ((bitset_word_t *)(auStack_144._4_4_ + 0x60) + -0x18))->\n                                          word_char + (int)&prVar38[-2].non_eps_nodes)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)((re_dfa_t *)\n                                          ((bitset_word_t *)(auStack_144._4_4_ + 0x60) + -0x18))->\n                                          word_char + (int)&prVar38[-2].non_eps_nodes)" ( (binary_expression "(int)((re_dfa_t *)\n                                          ((bitset_word_t *)(auStack_144._4_4_ + 0x60) + -0x18))->\n                                          word_char + (int)&prVar38[-2].non_eps_nodes" (cast_expression "(int)((re_dfa_t *)\n                                          ((bitset_word_t *)(auStack_144._4_4_ + 0x60) + -0x18))->\n                                          word_char" ( (type_descriptor "int" primitive_type) ) (field_expression "((re_dfa_t *)\n                                          ((bitset_word_t *)(auStack_144._4_4_ + 0x60) + -0x18))->\n                                          word_char" (parenthesized_expression "((re_dfa_t *)\n                                          ((bitset_word_t *)(auStack_144._4_4_ + 0x60) + -0x18))" ( (cast_expression "(re_dfa_t *)\n                                          ((bitset_word_t *)(auStack_144._4_4_ + 0x60) + -0x18)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((bitset_word_t *)(auStack_144._4_4_ + 0x60) + -0x18)" ( (binary_expression "(bitset_word_t *)(auStack_144._4_4_ + 0x60) + -0x18" (cast_expression "(bitset_word_t *)(auStack_144._4_4_ + 0x60)" ( (type_descriptor "bitset_word_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(auStack_144._4_4_ + 0x60)" ( (binary_expression "auStack_144._4_4_ + 0x60" (field_expression "auStack_144._4_4_" identifier . field_identifier) + number_literal) ))) + number_literal) ))) )) -> field_identifier)) + (cast_expression "(int)&prVar38[-2].non_eps_nodes" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prVar38[-2].non_eps_nodes" & (field_expression "prVar38[-2].non_eps_nodes" (subscript_expression "prVar38[-2]" identifier [ number_literal ]) . field_identifier)))) ))))) ;) (do_statement "do {\n              if (prVar52->trtable != (re_dfastate_t **)0x0) {\n                prVar49 = prVar52->trtable[uVar32];\nLAB_0004ddf0:\n                if ((re_dfastate_t **)auStack_144._100_4_ != (re_dfastate_t **)0x0)\n                goto LAB_0004ddfc;\n                goto LAB_0004de1c;\n              }\n              pprVar22 = prVar52->word_trtable;\n              if (pprVar22 != (re_dfastate_t **)0x0) {\n                uVar15 = re_string_context_at\n                                   ((re_string_t *)auStack_144,\n                                    (Idx)&((re_dfastate_t *)(auStack_144._40_4_ + -0x38))->\n                                          field_0x37,auStack_144._88_4_);\n                if ((uVar15 & 1) == 0) {\n                  prVar49 = pprVar22[uVar32];\n                }\n                else {\n                  prVar49 = pprVar22[uVar32 + 0x100];\n                }\n                goto LAB_0004ddf0;\n              }\n              iVar20 = (*(code *)(iVar34 + -0x7510))(auStack_144._84_4_,prVar52);\n            } while (iVar20 != 0);" do (compound_statement "{\n              if (prVar52->trtable != (re_dfastate_t **)0x0) {\n                prVar49 = prVar52->trtable[uVar32];\nLAB_0004ddf0:\n                if ((re_dfastate_t **)auStack_144._100_4_ != (re_dfastate_t **)0x0)\n                goto LAB_0004ddfc;\n                goto LAB_0004de1c;\n              }\n              pprVar22 = prVar52->word_trtable;\n              if (pprVar22 != (re_dfastate_t **)0x0) {\n                uVar15 = re_string_context_at\n                                   ((re_string_t *)auStack_144,\n                                    (Idx)&((re_dfastate_t *)(auStack_144._40_4_ + -0x38))->\n                                          field_0x37,auStack_144._88_4_);\n                if ((uVar15 & 1) == 0) {\n                  prVar49 = pprVar22[uVar32];\n                }\n                else {\n                  prVar49 = pprVar22[uVar32 + 0x100];\n                }\n                goto LAB_0004ddf0;\n              }\n              iVar20 = (*(code *)(iVar34 + -0x7510))(auStack_144._84_4_,prVar52);\n            }" { (if_statement "if (prVar52->trtable != (re_dfastate_t **)0x0) {\n                prVar49 = prVar52->trtable[uVar32];\nLAB_0004ddf0:\n                if ((re_dfastate_t **)auStack_144._100_4_ != (re_dfastate_t **)0x0)\n                goto LAB_0004ddfc;\n                goto LAB_0004de1c;\n              }" if (parenthesized_expression "(prVar52->trtable != (re_dfastate_t **)0x0)" ( (binary_expression "prVar52->trtable != (re_dfastate_t **)0x0" (field_expression "prVar52->trtable" identifier -> field_identifier) != (cast_expression "(re_dfastate_t **)0x0" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n                prVar49 = prVar52->trtable[uVar32];\nLAB_0004ddf0:\n                if ((re_dfastate_t **)auStack_144._100_4_ != (re_dfastate_t **)0x0)\n                goto LAB_0004ddfc;\n                goto LAB_0004de1c;\n              }" { (expression_statement "prVar49 = prVar52->trtable[uVar32];" (assignment_expression "prVar49 = prVar52->trtable[uVar32]" identifier = (subscript_expression "prVar52->trtable[uVar32]" (field_expression "prVar52->trtable" identifier -> field_identifier) [ identifier ])) ;) (labeled_statement "LAB_0004ddf0:\n                if ((re_dfastate_t **)auStack_144._100_4_ != (re_dfastate_t **)0x0)\n                goto LAB_0004ddfc;" statement_identifier : (if_statement "if ((re_dfastate_t **)auStack_144._100_4_ != (re_dfastate_t **)0x0)\n                goto LAB_0004ddfc;" if (parenthesized_expression "((re_dfastate_t **)auStack_144._100_4_ != (re_dfastate_t **)0x0)" ( (binary_expression "(re_dfastate_t **)auStack_144._100_4_ != (re_dfastate_t **)0x0" (cast_expression "(re_dfastate_t **)auStack_144._100_4_" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (field_expression "auStack_144._100_4_" identifier . field_identifier)) != (cast_expression "(re_dfastate_t **)0x0" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (goto_statement "goto LAB_0004ddfc;" goto statement_identifier ;))) (goto_statement "goto LAB_0004de1c;" goto statement_identifier ;) })) (expression_statement "pprVar22 = prVar52->word_trtable;" (assignment_expression "pprVar22 = prVar52->word_trtable" identifier = (field_expression "prVar52->word_trtable" identifier -> field_identifier)) ;) (if_statement "if (pprVar22 != (re_dfastate_t **)0x0) {\n                uVar15 = re_string_context_at\n                                   ((re_string_t *)auStack_144,\n                                    (Idx)&((re_dfastate_t *)(auStack_144._40_4_ + -0x38))->\n                                          field_0x37,auStack_144._88_4_);\n                if ((uVar15 & 1) == 0) {\n                  prVar49 = pprVar22[uVar32];\n                }\n                else {\n                  prVar49 = pprVar22[uVar32 + 0x100];\n                }\n                goto LAB_0004ddf0;\n              }" if (parenthesized_expression "(pprVar22 != (re_dfastate_t **)0x0)" ( (binary_expression "pprVar22 != (re_dfastate_t **)0x0" identifier != (cast_expression "(re_dfastate_t **)0x0" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n                uVar15 = re_string_context_at\n                                   ((re_string_t *)auStack_144,\n                                    (Idx)&((re_dfastate_t *)(auStack_144._40_4_ + -0x38))->\n                                          field_0x37,auStack_144._88_4_);\n                if ((uVar15 & 1) == 0) {\n                  prVar49 = pprVar22[uVar32];\n                }\n                else {\n                  prVar49 = pprVar22[uVar32 + 0x100];\n                }\n                goto LAB_0004ddf0;\n              }" { (expression_statement "uVar15 = re_string_context_at\n                                   ((re_string_t *)auStack_144,\n                                    (Idx)&((re_dfastate_t *)(auStack_144._40_4_ + -0x38))->\n                                          field_0x37,auStack_144._88_4_);" (assignment_expression "uVar15 = re_string_context_at\n                                   ((re_string_t *)auStack_144,\n                                    (Idx)&((re_dfastate_t *)(auStack_144._40_4_ + -0x38))->\n                                          field_0x37,auStack_144._88_4_)" identifier = (call_expression "re_string_context_at\n                                   ((re_string_t *)auStack_144,\n                                    (Idx)&((re_dfastate_t *)(auStack_144._40_4_ + -0x38))->\n                                          field_0x37,auStack_144._88_4_)" identifier (argument_list "((re_string_t *)auStack_144,\n                                    (Idx)&((re_dfastate_t *)(auStack_144._40_4_ + -0x38))->\n                                          field_0x37,auStack_144._88_4_)" ( (cast_expression "(re_string_t *)auStack_144" ( (type_descriptor "re_string_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (binary_expression "(Idx)&((re_dfastate_t *)(auStack_144._40_4_ + -0x38))->\n                                          field_0x37" (parenthesized_expression "(Idx)" ( identifier )) & (field_expression "((re_dfastate_t *)(auStack_144._40_4_ + -0x38))->\n                                          field_0x37" (parenthesized_expression "((re_dfastate_t *)(auStack_144._40_4_ + -0x38))" ( (cast_expression "(re_dfastate_t *)(auStack_144._40_4_ + -0x38)" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(auStack_144._40_4_ + -0x38)" ( (binary_expression "auStack_144._40_4_ + -0x38" (field_expression "auStack_144._40_4_" identifier . field_identifier) + number_literal) ))) )) -> field_identifier)) , (field_expression "auStack_144._88_4_" identifier . field_identifier) )))) ;) (if_statement "if ((uVar15 & 1) == 0) {\n                  prVar49 = pprVar22[uVar32];\n                }\n                else {\n                  prVar49 = pprVar22[uVar32 + 0x100];\n                }" if (parenthesized_expression "((uVar15 & 1) == 0)" ( (binary_expression "(uVar15 & 1) == 0" (parenthesized_expression "(uVar15 & 1)" ( (binary_expression "uVar15 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                  prVar49 = pprVar22[uVar32];\n                }" { (expression_statement "prVar49 = pprVar22[uVar32];" (assignment_expression "prVar49 = pprVar22[uVar32]" identifier = (subscript_expression "pprVar22[uVar32]" identifier [ identifier ])) ;) }) (else_clause "else {\n                  prVar49 = pprVar22[uVar32 + 0x100];\n                }" else (compound_statement "{\n                  prVar49 = pprVar22[uVar32 + 0x100];\n                }" { (expression_statement "prVar49 = pprVar22[uVar32 + 0x100];" (assignment_expression "prVar49 = pprVar22[uVar32 + 0x100]" identifier = (subscript_expression "pprVar22[uVar32 + 0x100]" identifier [ (binary_expression "uVar32 + 0x100" identifier + number_literal) ])) ;) }))) (goto_statement "goto LAB_0004ddf0;" goto statement_identifier ;) })) (expression_statement "iVar20 = (*(code *)(iVar34 + -0x7510))(auStack_144._84_4_,prVar52);" (assignment_expression "iVar20 = (*(code *)(iVar34 + -0x7510))(auStack_144._84_4_,prVar52)" identifier = (call_expression "(*(code *)(iVar34 + -0x7510))(auStack_144._84_4_,prVar52)" (parenthesized_expression "(*(code *)(iVar34 + -0x7510))" ( (pointer_expression "*(code *)(iVar34 + -0x7510)" * (cast_expression "(code *)(iVar34 + -0x7510)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar34 + -0x7510)" ( (binary_expression "iVar34 + -0x7510" identifier + number_literal) )))) )) (argument_list "(auStack_144._84_4_,prVar52)" ( (field_expression "auStack_144._84_4_" identifier . field_identifier) , identifier )))) ;) }) while (parenthesized_expression "(iVar20 != 0)" ( (binary_expression "iVar20 != 0" identifier != number_literal) )) ;) (expression_statement "auStack_168._0_4_ = (re_dfastate_t *)0xc;" (assignment_expression "auStack_168._0_4_ = (re_dfastate_t *)0xc" (field_expression "auStack_168._0_4_" identifier . field_identifier) = (cast_expression "(re_dfastate_t *)0xc" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "prVar38 = (re_dfastate_t *)auStack_168._0_4_;" (assignment_expression "prVar38 = (re_dfastate_t *)auStack_168._0_4_" identifier = (cast_expression "(re_dfastate_t *)auStack_168._0_4_" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStack_168._0_4_" identifier . field_identifier))) ;) (labeled_statement "joined_r0x0004e770:\n            auStack_168._0_4_ = prVar38;" statement_identifier : (expression_statement "auStack_168._0_4_ = prVar38;" (assignment_expression "auStack_168._0_4_ = prVar38" (field_expression "auStack_168._0_4_" identifier . field_identifier) = identifier) ;)) (if_statement "if ((re_dfastate_t **)auStack_144._100_4_ == (re_dfastate_t **)0x0) {\n              pprVar22 = (re_dfastate_t **)0x0;\n              goto LAB_0004dbb4;\n            }" if (parenthesized_expression "((re_dfastate_t **)auStack_144._100_4_ == (re_dfastate_t **)0x0)" ( (binary_expression "(re_dfastate_t **)auStack_144._100_4_ == (re_dfastate_t **)0x0" (cast_expression "(re_dfastate_t **)auStack_144._100_4_" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (field_expression "auStack_144._100_4_" identifier . field_identifier)) == (cast_expression "(re_dfastate_t **)0x0" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n              pprVar22 = (re_dfastate_t **)0x0;\n              goto LAB_0004dbb4;\n            }" { (expression_statement "pprVar22 = (re_dfastate_t **)0x0;" (assignment_expression "pprVar22 = (re_dfastate_t **)0x0" identifier = (cast_expression "(re_dfastate_t **)0x0" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (goto_statement "goto LAB_0004dbb4;" goto statement_identifier ;) })) (expression_statement "prVar49 = (re_dfastate_t *)0x0;" (assignment_expression "prVar49 = (re_dfastate_t *)0x0" identifier = (cast_expression "(re_dfastate_t *)0x0" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0004ddfc:\n            prVar49 = merge_state_with_log\n                                ((reg_errcode_t *)auStack_168,(re_match_context_t *)auStack_144,\n                                 prVar49);" statement_identifier : (expression_statement "prVar49 = merge_state_with_log\n                                ((reg_errcode_t *)auStack_168,(re_match_context_t *)auStack_144,\n                                 prVar49);" (assignment_expression "prVar49 = merge_state_with_log\n                                ((reg_errcode_t *)auStack_168,(re_match_context_t *)auStack_144,\n                                 prVar49)" identifier = (call_expression "merge_state_with_log\n                                ((reg_errcode_t *)auStack_168,(re_match_context_t *)auStack_144,\n                                 prVar49)" identifier (argument_list "((reg_errcode_t *)auStack_168,(re_match_context_t *)auStack_144,\n                                 prVar49)" ( (cast_expression "(reg_errcode_t *)auStack_168" ( (type_descriptor "reg_errcode_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(re_match_context_t *)auStack_144" ( (type_descriptor "re_match_context_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) ;)) (labeled_statement "LAB_0004de1c:\n            prVar38 = (re_dfastate_t *)auStack_144._40_4_;" statement_identifier : (expression_statement "prVar38 = (re_dfastate_t *)auStack_144._40_4_;" (assignment_expression "prVar38 = (re_dfastate_t *)auStack_144._40_4_" identifier = (cast_expression "(re_dfastate_t *)auStack_144._40_4_" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStack_144._40_4_" identifier . field_identifier))) ;)) (if_statement "if (prVar49 == (re_dfastate_t *)0x0) {\n              pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n              if ((re_dfastate_t *)auStack_168._0_4_ != (re_dfastate_t *)0x0) goto LAB_0004dbb4;\n              if (((re_dfastate_t **)auStack_144._100_4_ == (re_dfastate_t **)0x0) ||\n                 ((bVar5 && (!bVar30)))) break;\n              in_a3 = (re_dfa_t *)auStack_168;\n              do {\n                bVar3 = false;\n                pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + auStack_144._40_4_ * 4);\n                prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n                do {\n                  prVar49 = (re_dfastate_t *)((int)&prVar38->hash + 1);\n                  pprVar22 = pprVar22 + 1;\n                  if ((int)auStack_144._104_4_ < (int)prVar49) {\n                    if (bVar3) {\n                      auStack_144._40_4_ = prVar38;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar3 = true;\n                  prVar38 = prVar49;\n                } while (*pprVar22 == (re_dfastate_t *)0x0);\n                auStack_144._40_4_ = prVar49;\n                prVar49 = merge_state_with_log\n                                    ((reg_errcode_t *)in_a3,(re_match_context_t *)auStack_144,\n                                     (re_dfastate_t *)0x0);\n                prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n                if ((re_dfastate_t *)auStack_168._0_4_ != (re_dfastate_t *)0x0) {\n                  if (prVar49 == (re_dfastate_t *)0x0) goto LAB_0004e0cc;\n                  break;\n                }\n              } while (prVar49 == (re_dfastate_t *)0x0);\n            }" if (parenthesized_expression "(prVar49 == (re_dfastate_t *)0x0)" ( (binary_expression "prVar49 == (re_dfastate_t *)0x0" identifier == (cast_expression "(re_dfastate_t *)0x0" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n              if ((re_dfastate_t *)auStack_168._0_4_ != (re_dfastate_t *)0x0) goto LAB_0004dbb4;\n              if (((re_dfastate_t **)auStack_144._100_4_ == (re_dfastate_t **)0x0) ||\n                 ((bVar5 && (!bVar30)))) break;\n              in_a3 = (re_dfa_t *)auStack_168;\n              do {\n                bVar3 = false;\n                pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + auStack_144._40_4_ * 4);\n                prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n                do {\n                  prVar49 = (re_dfastate_t *)((int)&prVar38->hash + 1);\n                  pprVar22 = pprVar22 + 1;\n                  if ((int)auStack_144._104_4_ < (int)prVar49) {\n                    if (bVar3) {\n                      auStack_144._40_4_ = prVar38;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar3 = true;\n                  prVar38 = prVar49;\n                } while (*pprVar22 == (re_dfastate_t *)0x0);\n                auStack_144._40_4_ = prVar49;\n                prVar49 = merge_state_with_log\n                                    ((reg_errcode_t *)in_a3,(re_match_context_t *)auStack_144,\n                                     (re_dfastate_t *)0x0);\n                prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n                if ((re_dfastate_t *)auStack_168._0_4_ != (re_dfastate_t *)0x0) {\n                  if (prVar49 == (re_dfastate_t *)0x0) goto LAB_0004e0cc;\n                  break;\n                }\n              } while (prVar49 == (re_dfastate_t *)0x0);\n            }" { (expression_statement "pprVar22 = (re_dfastate_t **)auStack_144._100_4_;" (assignment_expression "pprVar22 = (re_dfastate_t **)auStack_144._100_4_" identifier = (cast_expression "(re_dfastate_t **)auStack_144._100_4_" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (field_expression "auStack_144._100_4_" identifier . field_identifier))) ;) (if_statement "if ((re_dfastate_t *)auStack_168._0_4_ != (re_dfastate_t *)0x0) goto LAB_0004dbb4;" if (parenthesized_expression "((re_dfastate_t *)auStack_168._0_4_ != (re_dfastate_t *)0x0)" ( (binary_expression "(re_dfastate_t *)auStack_168._0_4_ != (re_dfastate_t *)0x0" (cast_expression "(re_dfastate_t *)auStack_168._0_4_" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStack_168._0_4_" identifier . field_identifier)) != (cast_expression "(re_dfastate_t *)0x0" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004dbb4;" goto statement_identifier ;)) (if_statement "if (((re_dfastate_t **)auStack_144._100_4_ == (re_dfastate_t **)0x0) ||\n                 ((bVar5 && (!bVar30)))) break;" if (parenthesized_expression "(((re_dfastate_t **)auStack_144._100_4_ == (re_dfastate_t **)0x0) ||\n                 ((bVar5 && (!bVar30))))" ( (binary_expression "((re_dfastate_t **)auStack_144._100_4_ == (re_dfastate_t **)0x0) ||\n                 ((bVar5 && (!bVar30)))" (parenthesized_expression "((re_dfastate_t **)auStack_144._100_4_ == (re_dfastate_t **)0x0)" ( (binary_expression "(re_dfastate_t **)auStack_144._100_4_ == (re_dfastate_t **)0x0" (cast_expression "(re_dfastate_t **)auStack_144._100_4_" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (field_expression "auStack_144._100_4_" identifier . field_identifier)) == (cast_expression "(re_dfastate_t **)0x0" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) || (parenthesized_expression "((bVar5 && (!bVar30)))" ( (parenthesized_expression "(bVar5 && (!bVar30))" ( (binary_expression "bVar5 && (!bVar30)" identifier && (parenthesized_expression "(!bVar30)" ( (unary_expression "!bVar30" ! identifier) ))) )) ))) )) (break_statement "break;" break ;)) (expression_statement "in_a3 = (re_dfa_t *)auStack_168;" (assignment_expression "in_a3 = (re_dfa_t *)auStack_168" identifier = (cast_expression "(re_dfa_t *)auStack_168" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (do_statement "do {\n                bVar3 = false;\n                pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + auStack_144._40_4_ * 4);\n                prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n                do {\n                  prVar49 = (re_dfastate_t *)((int)&prVar38->hash + 1);\n                  pprVar22 = pprVar22 + 1;\n                  if ((int)auStack_144._104_4_ < (int)prVar49) {\n                    if (bVar3) {\n                      auStack_144._40_4_ = prVar38;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar3 = true;\n                  prVar38 = prVar49;\n                } while (*pprVar22 == (re_dfastate_t *)0x0);\n                auStack_144._40_4_ = prVar49;\n                prVar49 = merge_state_with_log\n                                    ((reg_errcode_t *)in_a3,(re_match_context_t *)auStack_144,\n                                     (re_dfastate_t *)0x0);\n                prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n                if ((re_dfastate_t *)auStack_168._0_4_ != (re_dfastate_t *)0x0) {\n                  if (prVar49 == (re_dfastate_t *)0x0) goto LAB_0004e0cc;\n                  break;\n                }\n              } while (prVar49 == (re_dfastate_t *)0x0);" do (compound_statement "{\n                bVar3 = false;\n                pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + auStack_144._40_4_ * 4);\n                prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n                do {\n                  prVar49 = (re_dfastate_t *)((int)&prVar38->hash + 1);\n                  pprVar22 = pprVar22 + 1;\n                  if ((int)auStack_144._104_4_ < (int)prVar49) {\n                    if (bVar3) {\n                      auStack_144._40_4_ = prVar38;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar3 = true;\n                  prVar38 = prVar49;\n                } while (*pprVar22 == (re_dfastate_t *)0x0);\n                auStack_144._40_4_ = prVar49;\n                prVar49 = merge_state_with_log\n                                    ((reg_errcode_t *)in_a3,(re_match_context_t *)auStack_144,\n                                     (re_dfastate_t *)0x0);\n                prVar38 = (re_dfastate_t *)auStack_144._40_4_;\n                if ((re_dfastate_t *)auStack_168._0_4_ != (re_dfastate_t *)0x0) {\n                  if (prVar49 == (re_dfastate_t *)0x0) goto LAB_0004e0cc;\n                  break;\n                }\n              }" { (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" identifier = false) ;) (expression_statement "pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + auStack_144._40_4_ * 4);" (assignment_expression "pprVar22 = (re_dfastate_t **)(auStack_144._100_4_ + auStack_144._40_4_ * 4)" identifier = (cast_expression "(re_dfastate_t **)(auStack_144._100_4_ + auStack_144._40_4_ * 4)" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(auStack_144._100_4_ + auStack_144._40_4_ * 4)" ( (binary_expression "auStack_144._100_4_ + auStack_144._40_4_ * 4" (field_expression "auStack_144._100_4_" identifier . field_identifier) + (binary_expression "auStack_144._40_4_ * 4" (field_expression "auStack_144._40_4_" identifier . field_identifier) * number_literal)) )))) ;) (expression_statement "prVar38 = (re_dfastate_t *)auStack_144._40_4_;" (assignment_expression "prVar38 = (re_dfastate_t *)auStack_144._40_4_" identifier = (cast_expression "(re_dfastate_t *)auStack_144._40_4_" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStack_144._40_4_" identifier . field_identifier))) ;) (do_statement "do {\n                  prVar49 = (re_dfastate_t *)((int)&prVar38->hash + 1);\n                  pprVar22 = pprVar22 + 1;\n                  if ((int)auStack_144._104_4_ < (int)prVar49) {\n                    if (bVar3) {\n                      auStack_144._40_4_ = prVar38;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar3 = true;\n                  prVar38 = prVar49;\n                } while (*pprVar22 == (re_dfastate_t *)0x0);" do (compound_statement "{\n                  prVar49 = (re_dfastate_t *)((int)&prVar38->hash + 1);\n                  pprVar22 = pprVar22 + 1;\n                  if ((int)auStack_144._104_4_ < (int)prVar49) {\n                    if (bVar3) {\n                      auStack_144._40_4_ = prVar38;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar3 = true;\n                  prVar38 = prVar49;\n                }" { (expression_statement "prVar49 = (re_dfastate_t *)((int)&prVar38->hash + 1);" (assignment_expression "prVar49 = (re_dfastate_t *)((int)&prVar38->hash + 1)" identifier = (cast_expression "(re_dfastate_t *)((int)&prVar38->hash + 1)" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&prVar38->hash + 1)" ( (binary_expression "(int)&prVar38->hash + 1" (cast_expression "(int)&prVar38->hash" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prVar38->hash" & (field_expression "prVar38->hash" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "pprVar22 = pprVar22 + 1;" (assignment_expression "pprVar22 = pprVar22 + 1" identifier = (binary_expression "pprVar22 + 1" identifier + number_literal)) ;) (if_statement "if ((int)auStack_144._104_4_ < (int)prVar49) {\n                    if (bVar3) {\n                      auStack_144._40_4_ = prVar38;\n                    }\n                    goto LAB_0004e0cc;\n                  }" if (parenthesized_expression "((int)auStack_144._104_4_ < (int)prVar49)" ( (binary_expression "(int)auStack_144._104_4_ < (int)prVar49" (cast_expression "(int)auStack_144._104_4_" ( (type_descriptor "int" primitive_type) ) (field_expression "auStack_144._104_4_" identifier . field_identifier)) < (cast_expression "(int)prVar49" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                    if (bVar3) {\n                      auStack_144._40_4_ = prVar38;\n                    }\n                    goto LAB_0004e0cc;\n                  }" { (if_statement "if (bVar3) {\n                      auStack_144._40_4_ = prVar38;\n                    }" if (parenthesized_expression "(bVar3)" ( identifier )) (compound_statement "{\n                      auStack_144._40_4_ = prVar38;\n                    }" { (expression_statement "auStack_144._40_4_ = prVar38;" (assignment_expression "auStack_144._40_4_ = prVar38" (field_expression "auStack_144._40_4_" identifier . field_identifier) = identifier) ;) })) (goto_statement "goto LAB_0004e0cc;" goto statement_identifier ;) })) (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" identifier = true) ;) (expression_statement "prVar38 = prVar49;" (assignment_expression "prVar38 = prVar49" identifier = identifier) ;) }) while (parenthesized_expression "(*pprVar22 == (re_dfastate_t *)0x0)" ( (binary_expression "*pprVar22 == (re_dfastate_t *)0x0" (pointer_expression "*pprVar22" * identifier) == (cast_expression "(re_dfastate_t *)0x0" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "auStack_144._40_4_ = prVar49;" (assignment_expression "auStack_144._40_4_ = prVar49" (field_expression "auStack_144._40_4_" identifier . field_identifier) = identifier) ;) (expression_statement "prVar49 = merge_state_with_log\n                                    ((reg_errcode_t *)in_a3,(re_match_context_t *)auStack_144,\n                                     (re_dfastate_t *)0x0);" (assignment_expression "prVar49 = merge_state_with_log\n                                    ((reg_errcode_t *)in_a3,(re_match_context_t *)auStack_144,\n                                     (re_dfastate_t *)0x0)" identifier = (call_expression "merge_state_with_log\n                                    ((reg_errcode_t *)in_a3,(re_match_context_t *)auStack_144,\n                                     (re_dfastate_t *)0x0)" identifier (argument_list "((reg_errcode_t *)in_a3,(re_match_context_t *)auStack_144,\n                                     (re_dfastate_t *)0x0)" ( (cast_expression "(reg_errcode_t *)in_a3" ( (type_descriptor "reg_errcode_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(re_match_context_t *)auStack_144" ( (type_descriptor "re_match_context_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(re_dfastate_t *)0x0" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (expression_statement "prVar38 = (re_dfastate_t *)auStack_144._40_4_;" (assignment_expression "prVar38 = (re_dfastate_t *)auStack_144._40_4_" identifier = (cast_expression "(re_dfastate_t *)auStack_144._40_4_" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStack_144._40_4_" identifier . field_identifier))) ;) (if_statement "if ((re_dfastate_t *)auStack_168._0_4_ != (re_dfastate_t *)0x0) {\n                  if (prVar49 == (re_dfastate_t *)0x0) goto LAB_0004e0cc;\n                  break;\n                }" if (parenthesized_expression "((re_dfastate_t *)auStack_168._0_4_ != (re_dfastate_t *)0x0)" ( (binary_expression "(re_dfastate_t *)auStack_168._0_4_ != (re_dfastate_t *)0x0" (cast_expression "(re_dfastate_t *)auStack_168._0_4_" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStack_168._0_4_" identifier . field_identifier)) != (cast_expression "(re_dfastate_t *)0x0" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  if (prVar49 == (re_dfastate_t *)0x0) goto LAB_0004e0cc;\n                  break;\n                }" { (if_statement "if (prVar49 == (re_dfastate_t *)0x0) goto LAB_0004e0cc;" if (parenthesized_expression "(prVar49 == (re_dfastate_t *)0x0)" ( (binary_expression "prVar49 == (re_dfastate_t *)0x0" identifier == (cast_expression "(re_dfastate_t *)0x0" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004e0cc;" goto statement_identifier ;)) (break_statement "break;" break ;) })) }) while (parenthesized_expression "(prVar49 == (re_dfastate_t *)0x0)" ( (binary_expression "prVar49 == (re_dfastate_t *)0x0" identifier == (cast_expression "(re_dfastate_t *)0x0" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (expression_statement "prVar6 = prStack_1d0;" (assignment_expression "prVar6 = prStack_1d0" identifier = identifier) ;) (if_statement "if ((bVar4) && (prVar6 = prVar51, prVar52 != prVar49)) {\n              bVar4 = false;\n              prVar6 = prStack_1d0;\n            }" if (parenthesized_expression "((bVar4) && (prVar6 = prVar51, prVar52 != prVar49))" ( (binary_expression "(bVar4) && (prVar6 = prVar51, prVar52 != prVar49)" (parenthesized_expression "(bVar4)" ( identifier )) && (parenthesized_expression "(prVar6 = prVar51, prVar52 != prVar49)" ( (comma_expression "prVar6 = prVar51, prVar52 != prVar49" (assignment_expression "prVar6 = prVar51" identifier = identifier) , (binary_expression "prVar52 != prVar49" identifier != identifier)) ))) )) (compound_statement "{\n              bVar4 = false;\n              prVar6 = prStack_1d0;\n            }" { (expression_statement "bVar4 = false;" (assignment_expression "bVar4 = false" identifier = false) ;) (expression_statement "prVar6 = prStack_1d0;" (assignment_expression "prVar6 = prStack_1d0" identifier = identifier) ;) })) (expression_statement "prStack_1d0 = prVar6;" (assignment_expression "prStack_1d0 = prVar6" identifier = identifier) ;) (expression_statement "prVar52 = prVar49;" (assignment_expression "prVar52 = prVar49" identifier = identifier) ;) (expression_statement "auStack_144._40_4_ = prVar38;" (assignment_expression "auStack_144._40_4_ = prVar38" (field_expression "auStack_144._40_4_" identifier . field_identifier) = identifier) ;) (if_statement "if (((prVar49->field_0x34 & 8) != 0) &&\n               (((prVar49->field_0x34 & 1) == 0 ||\n                (IVar21 = check_halt_state_context\n                                    ((re_match_context_t *)auStack_144,\n                                     (re_dfastate_t *)(prVar49->nodes).nelem,\n                                     (Idx)&(prVar49->nodes).elems,prVar38), IVar21 != 0)))) {\n              if (!bVar30) goto LAB_0004e0e4;\n              pprStack_1dc = (re_dfa_t **)0x0;\n              prVar39 = prVar38;\n              bVar5 = bVar30;\n            }" if (parenthesized_expression "(((prVar49->field_0x34 & 8) != 0) &&\n               (((prVar49->field_0x34 & 1) == 0 ||\n                (IVar21 = check_halt_state_context\n                                    ((re_match_context_t *)auStack_144,\n                                     (re_dfastate_t *)(prVar49->nodes).nelem,\n                                     (Idx)&(prVar49->nodes).elems,prVar38), IVar21 != 0))))" ( (binary_expression "((prVar49->field_0x34 & 8) != 0) &&\n               (((prVar49->field_0x34 & 1) == 0 ||\n                (IVar21 = check_halt_state_context\n                                    ((re_match_context_t *)auStack_144,\n                                     (re_dfastate_t *)(prVar49->nodes).nelem,\n                                     (Idx)&(prVar49->nodes).elems,prVar38), IVar21 != 0)))" (parenthesized_expression "((prVar49->field_0x34 & 8) != 0)" ( (binary_expression "(prVar49->field_0x34 & 8) != 0" (parenthesized_expression "(prVar49->field_0x34 & 8)" ( (binary_expression "prVar49->field_0x34 & 8" (field_expression "prVar49->field_0x34" identifier -> field_identifier) & number_literal) )) != number_literal) )) && (parenthesized_expression "(((prVar49->field_0x34 & 1) == 0 ||\n                (IVar21 = check_halt_state_context\n                                    ((re_match_context_t *)auStack_144,\n                                     (re_dfastate_t *)(prVar49->nodes).nelem,\n                                     (Idx)&(prVar49->nodes).elems,prVar38), IVar21 != 0)))" ( (parenthesized_expression "((prVar49->field_0x34 & 1) == 0 ||\n                (IVar21 = check_halt_state_context\n                                    ((re_match_context_t *)auStack_144,\n                                     (re_dfastate_t *)(prVar49->nodes).nelem,\n                                     (Idx)&(prVar49->nodes).elems,prVar38), IVar21 != 0))" ( (binary_expression "(prVar49->field_0x34 & 1) == 0 ||\n                (IVar21 = check_halt_state_context\n                                    ((re_match_context_t *)auStack_144,\n                                     (re_dfastate_t *)(prVar49->nodes).nelem,\n                                     (Idx)&(prVar49->nodes).elems,prVar38), IVar21 != 0)" (binary_expression "(prVar49->field_0x34 & 1) == 0" (parenthesized_expression "(prVar49->field_0x34 & 1)" ( (binary_expression "prVar49->field_0x34 & 1" (field_expression "prVar49->field_0x34" identifier -> field_identifier) & number_literal) )) == number_literal) || (parenthesized_expression "(IVar21 = check_halt_state_context\n                                    ((re_match_context_t *)auStack_144,\n                                     (re_dfastate_t *)(prVar49->nodes).nelem,\n                                     (Idx)&(prVar49->nodes).elems,prVar38), IVar21 != 0)" ( (comma_expression "IVar21 = check_halt_state_context\n                                    ((re_match_context_t *)auStack_144,\n                                     (re_dfastate_t *)(prVar49->nodes).nelem,\n                                     (Idx)&(prVar49->nodes).elems,prVar38), IVar21 != 0" (assignment_expression "IVar21 = check_halt_state_context\n                                    ((re_match_context_t *)auStack_144,\n                                     (re_dfastate_t *)(prVar49->nodes).nelem,\n                                     (Idx)&(prVar49->nodes).elems,prVar38)" identifier = (call_expression "check_halt_state_context\n                                    ((re_match_context_t *)auStack_144,\n                                     (re_dfastate_t *)(prVar49->nodes).nelem,\n                                     (Idx)&(prVar49->nodes).elems,prVar38)" identifier (argument_list "((re_match_context_t *)auStack_144,\n                                     (re_dfastate_t *)(prVar49->nodes).nelem,\n                                     (Idx)&(prVar49->nodes).elems,prVar38)" ( (cast_expression "(re_match_context_t *)auStack_144" ( (type_descriptor "re_match_context_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(re_dfastate_t *)(prVar49->nodes).nelem" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(prVar49->nodes).nelem" (parenthesized_expression "(prVar49->nodes)" ( (field_expression "prVar49->nodes" identifier -> field_identifier) )) . field_identifier)) , (binary_expression "(Idx)&(prVar49->nodes).elems" (parenthesized_expression "(Idx)" ( identifier )) & (field_expression "(prVar49->nodes).elems" (parenthesized_expression "(prVar49->nodes)" ( (field_expression "prVar49->nodes" identifier -> field_identifier) )) . field_identifier)) , identifier )))) , (binary_expression "IVar21 != 0" identifier != number_literal)) ))) )) ))) )) (compound_statement "{\n              if (!bVar30) goto LAB_0004e0e4;\n              pprStack_1dc = (re_dfa_t **)0x0;\n              prVar39 = prVar38;\n              bVar5 = bVar30;\n            }" { (if_statement "if (!bVar30) goto LAB_0004e0e4;" if (parenthesized_expression "(!bVar30)" ( (unary_expression "!bVar30" ! identifier) )) (goto_statement "goto LAB_0004e0e4;" goto statement_identifier ;)) (expression_statement "pprStack_1dc = (re_dfa_t **)0x0;" (assignment_expression "pprStack_1dc = (re_dfa_t **)0x0" identifier = (cast_expression "(re_dfa_t **)0x0" ( (type_descriptor "re_dfa_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "prVar39 = prVar38;" (assignment_expression "prVar39 = prVar38" identifier = identifier) ;) (expression_statement "bVar5 = bVar30;" (assignment_expression "bVar5 = bVar30" identifier = identifier) ;) })) })) (labeled_statement "LAB_0004e0cc:\n          prVar38 = prVar39;" statement_identifier : (expression_statement "prVar38 = prVar39;" (assignment_expression "prVar38 = prVar39" identifier = identifier) ;)) (if_statement "if (pprStack_1dc != (re_dfa_t **)0x0) {\n            *pprStack_1dc = (re_dfa_t *)((int)&prStack_1d0->hash + (int)*pprStack_1dc);\n          }" if (parenthesized_expression "(pprStack_1dc != (re_dfa_t **)0x0)" ( (binary_expression "pprStack_1dc != (re_dfa_t **)0x0" identifier != (cast_expression "(re_dfa_t **)0x0" ( (type_descriptor "re_dfa_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n            *pprStack_1dc = (re_dfa_t *)((int)&prStack_1d0->hash + (int)*pprStack_1dc);\n          }" { (expression_statement "*pprStack_1dc = (re_dfa_t *)((int)&prStack_1d0->hash + (int)*pprStack_1dc);" (assignment_expression "*pprStack_1dc = (re_dfa_t *)((int)&prStack_1d0->hash + (int)*pprStack_1dc)" (pointer_expression "*pprStack_1dc" * identifier) = (cast_expression "(re_dfa_t *)((int)&prStack_1d0->hash + (int)*pprStack_1dc)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&prStack_1d0->hash + (int)*pprStack_1dc)" ( (binary_expression "(int)&prStack_1d0->hash + (int)*pprStack_1dc" (cast_expression "(int)&prStack_1d0->hash" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prStack_1d0->hash" & (field_expression "prStack_1d0->hash" identifier -> field_identifier))) + (cast_expression "(int)*pprStack_1dc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pprStack_1dc" * identifier))) )))) ;) })) }) (else_clause "else {\n          pIVar23 = &(prVar52->nodes).nelem;\n          nodes_1 = &(prVar52->nodes).elems;\n          prVar38 = (re_dfastate_t *)\n                    check_subexp_matching_top\n                              ((re_match_context_t *)auStack_144,(re_node_set *)pIVar23,(Idx)nodes_1\n                               ,(re_node_set *)0x0);\n          auStack_168._0_4_ = prVar38;\n          if (prVar38 == (re_dfastate_t *)0x0) {\n            if ((prVar52->field_0x34 & 2) == 0) {\n              bVar4 = false;\n            }\n            else {\n              prVar38 = (re_dfastate_t *)\n                        transit_state_bkref((re_match_context_t *)auStack_144,(re_node_set *)pIVar23\n                                            ,(re_node_set *)nodes_1);\n              auStack_168._0_4_ = prVar38;\n              if (prVar38 != (re_dfastate_t *)0x0) goto LAB_0004e0e4;\n              bVar4 = false;\n            }\n            goto LAB_0004dd48;\n          }\n        }" else (compound_statement "{\n          pIVar23 = &(prVar52->nodes).nelem;\n          nodes_1 = &(prVar52->nodes).elems;\n          prVar38 = (re_dfastate_t *)\n                    check_subexp_matching_top\n                              ((re_match_context_t *)auStack_144,(re_node_set *)pIVar23,(Idx)nodes_1\n                               ,(re_node_set *)0x0);\n          auStack_168._0_4_ = prVar38;\n          if (prVar38 == (re_dfastate_t *)0x0) {\n            if ((prVar52->field_0x34 & 2) == 0) {\n              bVar4 = false;\n            }\n            else {\n              prVar38 = (re_dfastate_t *)\n                        transit_state_bkref((re_match_context_t *)auStack_144,(re_node_set *)pIVar23\n                                            ,(re_node_set *)nodes_1);\n              auStack_168._0_4_ = prVar38;\n              if (prVar38 != (re_dfastate_t *)0x0) goto LAB_0004e0e4;\n              bVar4 = false;\n            }\n            goto LAB_0004dd48;\n          }\n        }" { (expression_statement "pIVar23 = &(prVar52->nodes).nelem;" (assignment_expression "pIVar23 = &(prVar52->nodes).nelem" identifier = (pointer_expression "&(prVar52->nodes).nelem" & (field_expression "(prVar52->nodes).nelem" (parenthesized_expression "(prVar52->nodes)" ( (field_expression "prVar52->nodes" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "nodes_1 = &(prVar52->nodes).elems;" (assignment_expression "nodes_1 = &(prVar52->nodes).elems" identifier = (pointer_expression "&(prVar52->nodes).elems" & (field_expression "(prVar52->nodes).elems" (parenthesized_expression "(prVar52->nodes)" ( (field_expression "prVar52->nodes" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "prVar38 = (re_dfastate_t *)\n                    check_subexp_matching_top\n                              ((re_match_context_t *)auStack_144,(re_node_set *)pIVar23,(Idx)nodes_1\n                               ,(re_node_set *)0x0);" (assignment_expression "prVar38 = (re_dfastate_t *)\n                    check_subexp_matching_top\n                              ((re_match_context_t *)auStack_144,(re_node_set *)pIVar23,(Idx)nodes_1\n                               ,(re_node_set *)0x0)" identifier = (cast_expression "(re_dfastate_t *)\n                    check_subexp_matching_top\n                              ((re_match_context_t *)auStack_144,(re_node_set *)pIVar23,(Idx)nodes_1\n                               ,(re_node_set *)0x0)" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "check_subexp_matching_top\n                              ((re_match_context_t *)auStack_144,(re_node_set *)pIVar23,(Idx)nodes_1\n                               ,(re_node_set *)0x0)" identifier (argument_list "((re_match_context_t *)auStack_144,(re_node_set *)pIVar23,(Idx)nodes_1\n                               ,(re_node_set *)0x0)" ( (cast_expression "(re_match_context_t *)auStack_144" ( (type_descriptor "re_match_context_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(re_node_set *)pIVar23" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(Idx)nodes_1" ( (type_descriptor "Idx" type_identifier) ) identifier) , (cast_expression "(re_node_set *)0x0" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ))))) ;) (expression_statement "auStack_168._0_4_ = prVar38;" (assignment_expression "auStack_168._0_4_ = prVar38" (field_expression "auStack_168._0_4_" identifier . field_identifier) = identifier) ;) (if_statement "if (prVar38 == (re_dfastate_t *)0x0) {\n            if ((prVar52->field_0x34 & 2) == 0) {\n              bVar4 = false;\n            }\n            else {\n              prVar38 = (re_dfastate_t *)\n                        transit_state_bkref((re_match_context_t *)auStack_144,(re_node_set *)pIVar23\n                                            ,(re_node_set *)nodes_1);\n              auStack_168._0_4_ = prVar38;\n              if (prVar38 != (re_dfastate_t *)0x0) goto LAB_0004e0e4;\n              bVar4 = false;\n            }\n            goto LAB_0004dd48;\n          }" if (parenthesized_expression "(prVar38 == (re_dfastate_t *)0x0)" ( (binary_expression "prVar38 == (re_dfastate_t *)0x0" identifier == (cast_expression "(re_dfastate_t *)0x0" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            if ((prVar52->field_0x34 & 2) == 0) {\n              bVar4 = false;\n            }\n            else {\n              prVar38 = (re_dfastate_t *)\n                        transit_state_bkref((re_match_context_t *)auStack_144,(re_node_set *)pIVar23\n                                            ,(re_node_set *)nodes_1);\n              auStack_168._0_4_ = prVar38;\n              if (prVar38 != (re_dfastate_t *)0x0) goto LAB_0004e0e4;\n              bVar4 = false;\n            }\n            goto LAB_0004dd48;\n          }" { (if_statement "if ((prVar52->field_0x34 & 2) == 0) {\n              bVar4 = false;\n            }\n            else {\n              prVar38 = (re_dfastate_t *)\n                        transit_state_bkref((re_match_context_t *)auStack_144,(re_node_set *)pIVar23\n                                            ,(re_node_set *)nodes_1);\n              auStack_168._0_4_ = prVar38;\n              if (prVar38 != (re_dfastate_t *)0x0) goto LAB_0004e0e4;\n              bVar4 = false;\n            }" if (parenthesized_expression "((prVar52->field_0x34 & 2) == 0)" ( (binary_expression "(prVar52->field_0x34 & 2) == 0" (parenthesized_expression "(prVar52->field_0x34 & 2)" ( (binary_expression "prVar52->field_0x34 & 2" (field_expression "prVar52->field_0x34" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n              bVar4 = false;\n            }" { (expression_statement "bVar4 = false;" (assignment_expression "bVar4 = false" identifier = false) ;) }) (else_clause "else {\n              prVar38 = (re_dfastate_t *)\n                        transit_state_bkref((re_match_context_t *)auStack_144,(re_node_set *)pIVar23\n                                            ,(re_node_set *)nodes_1);\n              auStack_168._0_4_ = prVar38;\n              if (prVar38 != (re_dfastate_t *)0x0) goto LAB_0004e0e4;\n              bVar4 = false;\n            }" else (compound_statement "{\n              prVar38 = (re_dfastate_t *)\n                        transit_state_bkref((re_match_context_t *)auStack_144,(re_node_set *)pIVar23\n                                            ,(re_node_set *)nodes_1);\n              auStack_168._0_4_ = prVar38;\n              if (prVar38 != (re_dfastate_t *)0x0) goto LAB_0004e0e4;\n              bVar4 = false;\n            }" { (expression_statement "prVar38 = (re_dfastate_t *)\n                        transit_state_bkref((re_match_context_t *)auStack_144,(re_node_set *)pIVar23\n                                            ,(re_node_set *)nodes_1);" (assignment_expression "prVar38 = (re_dfastate_t *)\n                        transit_state_bkref((re_match_context_t *)auStack_144,(re_node_set *)pIVar23\n                                            ,(re_node_set *)nodes_1)" identifier = (cast_expression "(re_dfastate_t *)\n                        transit_state_bkref((re_match_context_t *)auStack_144,(re_node_set *)pIVar23\n                                            ,(re_node_set *)nodes_1)" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "transit_state_bkref((re_match_context_t *)auStack_144,(re_node_set *)pIVar23\n                                            ,(re_node_set *)nodes_1)" identifier (argument_list "((re_match_context_t *)auStack_144,(re_node_set *)pIVar23\n                                            ,(re_node_set *)nodes_1)" ( (cast_expression "(re_match_context_t *)auStack_144" ( (type_descriptor "re_match_context_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(re_node_set *)pIVar23" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(re_node_set *)nodes_1" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))))) ;) (expression_statement "auStack_168._0_4_ = prVar38;" (assignment_expression "auStack_168._0_4_ = prVar38" (field_expression "auStack_168._0_4_" identifier . field_identifier) = identifier) ;) (if_statement "if (prVar38 != (re_dfastate_t *)0x0) goto LAB_0004e0e4;" if (parenthesized_expression "(prVar38 != (re_dfastate_t *)0x0)" ( (binary_expression "prVar38 != (re_dfastate_t *)0x0" identifier != (cast_expression "(re_dfastate_t *)0x0" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004e0e4;" goto statement_identifier ;)) (expression_statement "bVar4 = false;" (assignment_expression "bVar4 = false" identifier = false) ;) }))) (goto_statement "goto LAB_0004dd48;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_0004e0e4:\n        pprVar22 = (re_dfastate_t **)auStack_144._100_4_;" statement_identifier : (expression_statement "pprVar22 = (re_dfastate_t **)auStack_144._100_4_;" (assignment_expression "pprVar22 = (re_dfastate_t **)auStack_144._100_4_" identifier = (cast_expression "(re_dfastate_t **)auStack_144._100_4_" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (field_expression "auStack_144._100_4_" identifier . field_identifier))) ;)) (if_statement "if (prVar38 != (re_dfastate_t *)0xffffffff) {\n          if (prVar38 == (re_dfastate_t *)&SUB_fffffffe) goto LAB_0004dbf8;\n          auStack_144._92_4_ = prVar38;\n          if (((preg->input).valid_len & 0x8000000) == 0) {\n            if (!bVar2) {\n              iVar35 = prVar53->nbackref;\n              goto joined_r0x0004e94c;\n            }\n            pcVar55 = (code *)(*(int *)(puVar56 + 0x28244) + 0x7d8c);\n            prVar39 = *(re_dfastate_t **)(auStack_144._100_4_ + (int)prVar38 * 4);\n            auStack_144._96_4_ =\n                 check_halt_state_context\n                           ((re_match_context_t *)auStack_144,\n                            (re_dfastate_t *)(prVar39->nodes).nelem,(Idx)&(prVar39->nodes).elems,\n                            prVar38);\n            if (((char)prVar53->field_0x58 < '\0') || (prVar53->nbackref != 0)) goto LAB_0004e170;\n          }\n          else {\n            iVar35 = prVar53->nbackref;\njoined_r0x0004e94c:\n            if (iVar35 != 0) {\n              pcVar55 = (code *)(*(int *)(puVar56 + 0x28244) + 0x7d8c);\n              prVar39 = *(re_dfastate_t **)(auStack_144._100_4_ + (int)prVar38 * 4);\n              auStack_144._96_4_ =\n                   check_halt_state_context\n                             ((re_match_context_t *)auStack_144,\n                              (re_dfastate_t *)(prVar39->nodes).nelem,(Idx)&(prVar39->nodes).elems,\n                              prVar38);\nLAB_0004e170:\n              pIVar23 = (Idx *)auStack_144._96_4_;\n              uVar44 = auStack_144._84_4_;\n              if (prVar38 < (re_dfastate_t *)0x3fffffff) {\n                prStack_1f0 = (re_dfastate_t *)((int)&prVar38->hash + 1);\n                pprVar22 = (re_dfastate_t **)(**(code **)(puVar56 + 0x28450))((int)prStack_1f0 * 4);\n                if (pprVar22 == (re_dfastate_t **)0x0) goto LAB_0004dbf8;\n                if (*(Idx *)(uVar44 + 0x4c) == 0) {\n                  rStack_160.limited_states = (re_dfastate_t **)0x0;\n                  rStack_160.limits.alloc = 0;\n                  rStack_160.limits.nelem = 0;\n                  rStack_160.limits.elems = (Idx *)0x0;\n                  rStack_160.sifted_states = pprVar22;\n                  rStack_160.last_node = (Idx)pIVar23;\n                  rStack_160.last_str_idx = (Idx)prVar38;\n                  prStack_1e4 = (re_dfastate_t *)\n                                sift_states_backward\n                                          ((re_match_context_t *)auStack_144,\n                                           (re_sift_context_t *)(auStack_168 + 8));\n                  (**(code **)(puVar56 + 0x28520))(rStack_160.limits.elems);\n                  if (prStack_1e4 == (re_dfastate_t *)0x0) {\n                    if (*pprVar22 == (re_dfastate_t *)0x0) {\n                      (**(code **)(puVar56 + 0x28520))(pprVar22);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar56 + 0x28520))(auStack_144._100_4_);\n                    auStack_144._92_4_ = prVar38;\n                    auStack_144._96_4_ = pIVar23;\n                    auStack_144._100_4_ = pprVar22;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  pprStack_1ec = (re_dfastate_t **)0x0;\n                }\n                else {\n                  pprStack_1ec = (re_dfastate_t **)\n                                 (**(code **)(puVar56 + 0x28450))((int)prStack_1f0 * 4);\n                  if (pprStack_1ec == (re_dfastate_t **)0x0) {\n                    (**(code **)(puVar56 + 0x28520))(pprVar22);\n                    prStack_1e4 = (re_dfastate_t *)0xc;\n                    pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar35 = *(int *)(puVar56 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar56 + 0x283f8))(pprStack_1ec,0,(int)prStack_1f0 * 4);\n                    rStack_160.limits.alloc = 0;\n                    rStack_160.limits.nelem = 0;\n                    rStack_160.limits.elems = (Idx *)0x0;\n                    rStack_160.sifted_states = pprVar22;\n                    rStack_160.limited_states = pprStack_1ec;\n                    rStack_160.last_node = (Idx)pIVar23;\n                    rStack_160.last_str_idx = (Idx)prVar38;\n                    prStack_1e4 = (re_dfastate_t *)\n                                  (*(code *)(iVar35 + -0x2cf4))\n                                            ((re_match_context_t *)auStack_144,auStack_168 + 8);\n                    (**(code **)(puVar56 + 0x28520))(rStack_160.limits.elems);\n                    if (prStack_1e4 != (re_dfastate_t *)0x0) break;\n                    if ((*pprVar22 != (re_dfastate_t *)0x0) ||\n                       (*pprStack_1ec != (re_dfastate_t *)0x0)) {\n                      prStack_1e4 = (re_dfastate_t *)\n                                    merge_state_array((re_dfa_t *)uVar44,pprVar22,pprStack_1ec,\n                                                      (Idx)prStack_1f0);\n                      (**(code **)(puVar56 + 0x28520))(pprStack_1ec);\n                      if (prStack_1e4 != (re_dfastate_t *)0x0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    iVar19 = auStack_144._100_4_ + (int)prStack_1f0 * 4 + -4;\n                    prStack_1f0 = prVar38;\n                    while( true ) {\n                      prVar38 = (re_dfastate_t *)&prStack_1f0[-1].field_0x37;\n                      if (prVar38 == (re_dfastate_t *)0xffffffff) {\n                        (**(code **)(puVar56 + 0x28520))(pprVar22);\n                        (**(code **)(puVar56 + 0x28520))(pprStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar20 = *(int *)(iVar19 + -4);\n                      if ((iVar20 != 0) && ((*(byte *)(iVar20 + 0x34) & 8) != 0)) break;\n                      iVar19 = iVar19 + -4;\n                      prStack_1f0 = prVar38;\n                    }\n                    pIVar23 = (Idx *)(*pcVar55)((re_match_context_t *)auStack_144,\n                                                *(undefined4 *)(iVar20 + 8),iVar20 + 0xc,prVar38);\n                  }\n                }\n                (**(code **)(puVar56 + 0x28520))(pprVar22);\n                (**(code **)(puVar56 + 0x28520))(pprStack_1ec);\n                pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n                if (prStack_1e4 == (re_dfastate_t *)0x1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }\n              prStack_1e4 = (re_dfastate_t *)0xc;\n              goto LAB_0004dbbc;\n            }\n          }\nLAB_0004e7e0:\n          pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n          prStack_1e4 = prVar18;\n          if (prStack_78 == (re_dfa_t *)0x0) goto LAB_0004dbbc;\n          IVar21 = (preg->input).valid_len;\n          if (bVar2) {\n            prVar27 = prStack_74 + 1;\n            do {\n              prVar27->rm_eo = -1;\n              prVar26 = prVar27 + 1;\n              prVar27->rm_so = -1;\n              prVar27 = prVar26;\n            } while (prStack_74 + (int)prStack_78 != prVar26);\n            prStack_74->rm_so = 0;\n            prStack_74->rm_eo = auStack_144._92_4_;\n            if ((IVar21 & 0x8000000) == 0) {\n              if ((char)prVar53->field_0x58 < '\0') {\n                bVar30 = 0 < prVar53->nbackref;\n              }\n              else {\n                bVar30 = false;\n              }\n              prStack_1e4 = (re_dfastate_t *)\n                            set_regs((regex_t *)preg,(re_match_context_t *)auStack_144,\n                                     (size_t)prStack_78,prStack_74,bVar30);\n              pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n              if (prStack_1e4 != (re_dfastate_t *)0x0) goto LAB_0004dbbc;\n              prVar46 = (re_dfa_t *)prStack_74->rm_so;\n            }\n            else {\nLAB_0004e838:\n              prVar46 = (re_dfa_t *)0x0;\n            }\n            prVar48 = (re_dfa_t *)0x0;\n            prVar27 = prStack_74;\n            while( true ) {\n              if (prVar46 != (re_dfa_t *)0xffffffff) {\n                prVar42 = (re_dfa_t *)prVar27->rm_eo;\n                prVar50 = prVar46;\n                prVar43 = prVar42;\n                if (auStack_144[0x4c] != '\0') {\n                  prVar50 = (re_dfa_t *)auStack_144._32_4_;\n                  if ((re_dfa_t *)auStack_144._28_4_ != prVar46) {\n                    prVar50 = (re_dfa_t *)((re_hashval_t *)auStack_144._12_4_)[(int)prVar46];\n                  }\n                  prVar27->rm_so = (regoff_t)prVar50;\n                  prVar43 = (re_dfa_t *)auStack_144._32_4_;\n                  if ((re_dfa_t *)auStack_144._28_4_ != prVar42) {\n                    prVar43 = (re_dfa_t *)((re_hashval_t *)auStack_144._12_4_)[(int)prVar42];\n                  }\n                }\n                prVar27->rm_so =\n                     (int)(((re_dfa_t *)\n                           (((re_dfa_t *)(prVar50->word_char + -0x18))->word_char + -0x18))->\n                           word_char + 0xffffffe8) +\n                     (int)((re_dfa_t *)\n                          (((re_dfa_t *)\n                           (((re_dfa_t *)(prStack_16c->word_char + -0x18))->word_char + -0x18))->\n                           word_char + -0x18))->word_char + 0xffffffa0U;\n                prVar27->rm_eo =\n                     (int)(((re_dfa_t *)\n                           (((re_dfa_t *)(prVar43->word_char + -0x18))->word_char + -0x18))->\n                           word_char + 0xffffffe8) +\n                     (int)((re_dfa_t *)\n                          (((re_dfa_t *)\n                           (((re_dfa_t *)(prStack_16c->word_char + -0x18))->word_char + -0x18))->\n                           word_char + -0x18))->word_char + 0xffffffa0U;\n              }\n              prVar48 = (re_dfa_t *)((int)&prVar48->nodes + 1);\n              prVar27 = prVar27 + 1;\n              if (prVar48 == prStack_78) break;\n              prVar46 = (re_dfa_t *)prVar27->rm_so;\n            }\n            if (0 < iStack_180) {\n              prVar27 = prStack_74 + (int)prStack_78;\n              do {\n                prVar27->rm_so = -1;\n                prVar26 = prVar27 + 1;\n                prVar27->rm_eo = -1;\n                prVar27 = prVar26;\n              } while (prStack_74 + (int)prStack_78->word_char + iStack_180 + -0x60 != prVar26);\n            }\n            pIVar23 = prVar53->subexp_map;\n            pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n            prStack_1e4 = prVar18;\n            if (pIVar23 != (Idx *)0x0) {\n              puVar45 = (undefined1 *)0x0;\n              prVar27 = prStack_74;\n              do {\n                pcVar55 = *(code **)(puVar56 + 0x28520);\n                if (puVar45 == (undefined1 *)((int)&prStack_78[-1].lock + 0x17)) goto LAB_0004dbc0;\n                if ((undefined1 *)*pIVar23 != puVar45) {\n                  prVar27[1].rm_so = prStack_74[(int)((undefined1 *)*pIVar23 + 1)].rm_so;\n                  prVar27[1].rm_eo = prStack_74[*pIVar23 + 1].rm_eo;\n                }\n                puVar45 = puVar45 + 1;\n                pIVar23 = pIVar23 + 1;\n                prVar27 = prVar27 + 1;\n              } while( true );\n            }\n            goto LAB_0004dbbc;\n          }\n          prStack_74->rm_so = 0;\n          prStack_74->rm_eo = auStack_144._92_4_;\n          goto LAB_0004e838;\n        }" if (parenthesized_expression "(prVar38 != (re_dfastate_t *)0xffffffff)" ( (binary_expression "prVar38 != (re_dfastate_t *)0xffffffff" identifier != (cast_expression "(re_dfastate_t *)0xffffffff" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          if (prVar38 == (re_dfastate_t *)&SUB_fffffffe) goto LAB_0004dbf8;\n          auStack_144._92_4_ = prVar38;\n          if (((preg->input).valid_len & 0x8000000) == 0) {\n            if (!bVar2) {\n              iVar35 = prVar53->nbackref;\n              goto joined_r0x0004e94c;\n            }\n            pcVar55 = (code *)(*(int *)(puVar56 + 0x28244) + 0x7d8c);\n            prVar39 = *(re_dfastate_t **)(auStack_144._100_4_ + (int)prVar38 * 4);\n            auStack_144._96_4_ =\n                 check_halt_state_context\n                           ((re_match_context_t *)auStack_144,\n                            (re_dfastate_t *)(prVar39->nodes).nelem,(Idx)&(prVar39->nodes).elems,\n                            prVar38);\n            if (((char)prVar53->field_0x58 < '\0') || (prVar53->nbackref != 0)) goto LAB_0004e170;\n          }\n          else {\n            iVar35 = prVar53->nbackref;\njoined_r0x0004e94c:\n            if (iVar35 != 0) {\n              pcVar55 = (code *)(*(int *)(puVar56 + 0x28244) + 0x7d8c);\n              prVar39 = *(re_dfastate_t **)(auStack_144._100_4_ + (int)prVar38 * 4);\n              auStack_144._96_4_ =\n                   check_halt_state_context\n                             ((re_match_context_t *)auStack_144,\n                              (re_dfastate_t *)(prVar39->nodes).nelem,(Idx)&(prVar39->nodes).elems,\n                              prVar38);\nLAB_0004e170:\n              pIVar23 = (Idx *)auStack_144._96_4_;\n              uVar44 = auStack_144._84_4_;\n              if (prVar38 < (re_dfastate_t *)0x3fffffff) {\n                prStack_1f0 = (re_dfastate_t *)((int)&prVar38->hash + 1);\n                pprVar22 = (re_dfastate_t **)(**(code **)(puVar56 + 0x28450))((int)prStack_1f0 * 4);\n                if (pprVar22 == (re_dfastate_t **)0x0) goto LAB_0004dbf8;\n                if (*(Idx *)(uVar44 + 0x4c) == 0) {\n                  rStack_160.limited_states = (re_dfastate_t **)0x0;\n                  rStack_160.limits.alloc = 0;\n                  rStack_160.limits.nelem = 0;\n                  rStack_160.limits.elems = (Idx *)0x0;\n                  rStack_160.sifted_states = pprVar22;\n                  rStack_160.last_node = (Idx)pIVar23;\n                  rStack_160.last_str_idx = (Idx)prVar38;\n                  prStack_1e4 = (re_dfastate_t *)\n                                sift_states_backward\n                                          ((re_match_context_t *)auStack_144,\n                                           (re_sift_context_t *)(auStack_168 + 8));\n                  (**(code **)(puVar56 + 0x28520))(rStack_160.limits.elems);\n                  if (prStack_1e4 == (re_dfastate_t *)0x0) {\n                    if (*pprVar22 == (re_dfastate_t *)0x0) {\n                      (**(code **)(puVar56 + 0x28520))(pprVar22);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar56 + 0x28520))(auStack_144._100_4_);\n                    auStack_144._92_4_ = prVar38;\n                    auStack_144._96_4_ = pIVar23;\n                    auStack_144._100_4_ = pprVar22;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  pprStack_1ec = (re_dfastate_t **)0x0;\n                }\n                else {\n                  pprStack_1ec = (re_dfastate_t **)\n                                 (**(code **)(puVar56 + 0x28450))((int)prStack_1f0 * 4);\n                  if (pprStack_1ec == (re_dfastate_t **)0x0) {\n                    (**(code **)(puVar56 + 0x28520))(pprVar22);\n                    prStack_1e4 = (re_dfastate_t *)0xc;\n                    pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar35 = *(int *)(puVar56 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar56 + 0x283f8))(pprStack_1ec,0,(int)prStack_1f0 * 4);\n                    rStack_160.limits.alloc = 0;\n                    rStack_160.limits.nelem = 0;\n                    rStack_160.limits.elems = (Idx *)0x0;\n                    rStack_160.sifted_states = pprVar22;\n                    rStack_160.limited_states = pprStack_1ec;\n                    rStack_160.last_node = (Idx)pIVar23;\n                    rStack_160.last_str_idx = (Idx)prVar38;\n                    prStack_1e4 = (re_dfastate_t *)\n                                  (*(code *)(iVar35 + -0x2cf4))\n                                            ((re_match_context_t *)auStack_144,auStack_168 + 8);\n                    (**(code **)(puVar56 + 0x28520))(rStack_160.limits.elems);\n                    if (prStack_1e4 != (re_dfastate_t *)0x0) break;\n                    if ((*pprVar22 != (re_dfastate_t *)0x0) ||\n                       (*pprStack_1ec != (re_dfastate_t *)0x0)) {\n                      prStack_1e4 = (re_dfastate_t *)\n                                    merge_state_array((re_dfa_t *)uVar44,pprVar22,pprStack_1ec,\n                                                      (Idx)prStack_1f0);\n                      (**(code **)(puVar56 + 0x28520))(pprStack_1ec);\n                      if (prStack_1e4 != (re_dfastate_t *)0x0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    iVar19 = auStack_144._100_4_ + (int)prStack_1f0 * 4 + -4;\n                    prStack_1f0 = prVar38;\n                    while( true ) {\n                      prVar38 = (re_dfastate_t *)&prStack_1f0[-1].field_0x37;\n                      if (prVar38 == (re_dfastate_t *)0xffffffff) {\n                        (**(code **)(puVar56 + 0x28520))(pprVar22);\n                        (**(code **)(puVar56 + 0x28520))(pprStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar20 = *(int *)(iVar19 + -4);\n                      if ((iVar20 != 0) && ((*(byte *)(iVar20 + 0x34) & 8) != 0)) break;\n                      iVar19 = iVar19 + -4;\n                      prStack_1f0 = prVar38;\n                    }\n                    pIVar23 = (Idx *)(*pcVar55)((re_match_context_t *)auStack_144,\n                                                *(undefined4 *)(iVar20 + 8),iVar20 + 0xc,prVar38);\n                  }\n                }\n                (**(code **)(puVar56 + 0x28520))(pprVar22);\n                (**(code **)(puVar56 + 0x28520))(pprStack_1ec);\n                pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n                if (prStack_1e4 == (re_dfastate_t *)0x1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }\n              prStack_1e4 = (re_dfastate_t *)0xc;\n              goto LAB_0004dbbc;\n            }\n          }\nLAB_0004e7e0:\n          pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n          prStack_1e4 = prVar18;\n          if (prStack_78 == (re_dfa_t *)0x0) goto LAB_0004dbbc;\n          IVar21 = (preg->input).valid_len;\n          if (bVar2) {\n            prVar27 = prStack_74 + 1;\n            do {\n              prVar27->rm_eo = -1;\n              prVar26 = prVar27 + 1;\n              prVar27->rm_so = -1;\n              prVar27 = prVar26;\n            } while (prStack_74 + (int)prStack_78 != prVar26);\n            prStack_74->rm_so = 0;\n            prStack_74->rm_eo = auStack_144._92_4_;\n            if ((IVar21 & 0x8000000) == 0) {\n              if ((char)prVar53->field_0x58 < '\0') {\n                bVar30 = 0 < prVar53->nbackref;\n              }\n              else {\n                bVar30 = false;\n              }\n              prStack_1e4 = (re_dfastate_t *)\n                            set_regs((regex_t *)preg,(re_match_context_t *)auStack_144,\n                                     (size_t)prStack_78,prStack_74,bVar30);\n              pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n              if (prStack_1e4 != (re_dfastate_t *)0x0) goto LAB_0004dbbc;\n              prVar46 = (re_dfa_t *)prStack_74->rm_so;\n            }\n            else {\nLAB_0004e838:\n              prVar46 = (re_dfa_t *)0x0;\n            }\n            prVar48 = (re_dfa_t *)0x0;\n            prVar27 = prStack_74;\n            while( true ) {\n              if (prVar46 != (re_dfa_t *)0xffffffff) {\n                prVar42 = (re_dfa_t *)prVar27->rm_eo;\n                prVar50 = prVar46;\n                prVar43 = prVar42;\n                if (auStack_144[0x4c] != '\0') {\n                  prVar50 = (re_dfa_t *)auStack_144._32_4_;\n                  if ((re_dfa_t *)auStack_144._28_4_ != prVar46) {\n                    prVar50 = (re_dfa_t *)((re_hashval_t *)auStack_144._12_4_)[(int)prVar46];\n                  }\n                  prVar27->rm_so = (regoff_t)prVar50;\n                  prVar43 = (re_dfa_t *)auStack_144._32_4_;\n                  if ((re_dfa_t *)auStack_144._28_4_ != prVar42) {\n                    prVar43 = (re_dfa_t *)((re_hashval_t *)auStack_144._12_4_)[(int)prVar42];\n                  }\n                }\n                prVar27->rm_so =\n                     (int)(((re_dfa_t *)\n                           (((re_dfa_t *)(prVar50->word_char + -0x18))->word_char + -0x18))->\n                           word_char + 0xffffffe8) +\n                     (int)((re_dfa_t *)\n                          (((re_dfa_t *)\n                           (((re_dfa_t *)(prStack_16c->word_char + -0x18))->word_char + -0x18))->\n                           word_char + -0x18))->word_char + 0xffffffa0U;\n                prVar27->rm_eo =\n                     (int)(((re_dfa_t *)\n                           (((re_dfa_t *)(prVar43->word_char + -0x18))->word_char + -0x18))->\n                           word_char + 0xffffffe8) +\n                     (int)((re_dfa_t *)\n                          (((re_dfa_t *)\n                           (((re_dfa_t *)(prStack_16c->word_char + -0x18))->word_char + -0x18))->\n                           word_char + -0x18))->word_char + 0xffffffa0U;\n              }\n              prVar48 = (re_dfa_t *)((int)&prVar48->nodes + 1);\n              prVar27 = prVar27 + 1;\n              if (prVar48 == prStack_78) break;\n              prVar46 = (re_dfa_t *)prVar27->rm_so;\n            }\n            if (0 < iStack_180) {\n              prVar27 = prStack_74 + (int)prStack_78;\n              do {\n                prVar27->rm_so = -1;\n                prVar26 = prVar27 + 1;\n                prVar27->rm_eo = -1;\n                prVar27 = prVar26;\n              } while (prStack_74 + (int)prStack_78->word_char + iStack_180 + -0x60 != prVar26);\n            }\n            pIVar23 = prVar53->subexp_map;\n            pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n            prStack_1e4 = prVar18;\n            if (pIVar23 != (Idx *)0x0) {\n              puVar45 = (undefined1 *)0x0;\n              prVar27 = prStack_74;\n              do {\n                pcVar55 = *(code **)(puVar56 + 0x28520);\n                if (puVar45 == (undefined1 *)((int)&prStack_78[-1].lock + 0x17)) goto LAB_0004dbc0;\n                if ((undefined1 *)*pIVar23 != puVar45) {\n                  prVar27[1].rm_so = prStack_74[(int)((undefined1 *)*pIVar23 + 1)].rm_so;\n                  prVar27[1].rm_eo = prStack_74[*pIVar23 + 1].rm_eo;\n                }\n                puVar45 = puVar45 + 1;\n                pIVar23 = pIVar23 + 1;\n                prVar27 = prVar27 + 1;\n              } while( true );\n            }\n            goto LAB_0004dbbc;\n          }\n          prStack_74->rm_so = 0;\n          prStack_74->rm_eo = auStack_144._92_4_;\n          goto LAB_0004e838;\n        }" { (if_statement "if (prVar38 == (re_dfastate_t *)&SUB_fffffffe) goto LAB_0004dbf8;" if (parenthesized_expression "(prVar38 == (re_dfastate_t *)&SUB_fffffffe)" ( (binary_expression "prVar38 == (re_dfastate_t *)&SUB_fffffffe" identifier == (cast_expression "(re_dfastate_t *)&SUB_fffffffe" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&SUB_fffffffe" & identifier))) )) (goto_statement "goto LAB_0004dbf8;" goto statement_identifier ;)) (expression_statement "auStack_144._92_4_ = prVar38;" (assignment_expression "auStack_144._92_4_ = prVar38" (field_expression "auStack_144._92_4_" identifier . field_identifier) = identifier) ;) (if_statement "if (((preg->input).valid_len & 0x8000000) == 0) {\n            if (!bVar2) {\n              iVar35 = prVar53->nbackref;\n              goto joined_r0x0004e94c;\n            }\n            pcVar55 = (code *)(*(int *)(puVar56 + 0x28244) + 0x7d8c);\n            prVar39 = *(re_dfastate_t **)(auStack_144._100_4_ + (int)prVar38 * 4);\n            auStack_144._96_4_ =\n                 check_halt_state_context\n                           ((re_match_context_t *)auStack_144,\n                            (re_dfastate_t *)(prVar39->nodes).nelem,(Idx)&(prVar39->nodes).elems,\n                            prVar38);\n            if (((char)prVar53->field_0x58 < '\0') || (prVar53->nbackref != 0)) goto LAB_0004e170;\n          }\n          else {\n            iVar35 = prVar53->nbackref;\njoined_r0x0004e94c:\n            if (iVar35 != 0) {\n              pcVar55 = (code *)(*(int *)(puVar56 + 0x28244) + 0x7d8c);\n              prVar39 = *(re_dfastate_t **)(auStack_144._100_4_ + (int)prVar38 * 4);\n              auStack_144._96_4_ =\n                   check_halt_state_context\n                             ((re_match_context_t *)auStack_144,\n                              (re_dfastate_t *)(prVar39->nodes).nelem,(Idx)&(prVar39->nodes).elems,\n                              prVar38);\nLAB_0004e170:\n              pIVar23 = (Idx *)auStack_144._96_4_;\n              uVar44 = auStack_144._84_4_;\n              if (prVar38 < (re_dfastate_t *)0x3fffffff) {\n                prStack_1f0 = (re_dfastate_t *)((int)&prVar38->hash + 1);\n                pprVar22 = (re_dfastate_t **)(**(code **)(puVar56 + 0x28450))((int)prStack_1f0 * 4);\n                if (pprVar22 == (re_dfastate_t **)0x0) goto LAB_0004dbf8;\n                if (*(Idx *)(uVar44 + 0x4c) == 0) {\n                  rStack_160.limited_states = (re_dfastate_t **)0x0;\n                  rStack_160.limits.alloc = 0;\n                  rStack_160.limits.nelem = 0;\n                  rStack_160.limits.elems = (Idx *)0x0;\n                  rStack_160.sifted_states = pprVar22;\n                  rStack_160.last_node = (Idx)pIVar23;\n                  rStack_160.last_str_idx = (Idx)prVar38;\n                  prStack_1e4 = (re_dfastate_t *)\n                                sift_states_backward\n                                          ((re_match_context_t *)auStack_144,\n                                           (re_sift_context_t *)(auStack_168 + 8));\n                  (**(code **)(puVar56 + 0x28520))(rStack_160.limits.elems);\n                  if (prStack_1e4 == (re_dfastate_t *)0x0) {\n                    if (*pprVar22 == (re_dfastate_t *)0x0) {\n                      (**(code **)(puVar56 + 0x28520))(pprVar22);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar56 + 0x28520))(auStack_144._100_4_);\n                    auStack_144._92_4_ = prVar38;\n                    auStack_144._96_4_ = pIVar23;\n                    auStack_144._100_4_ = pprVar22;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  pprStack_1ec = (re_dfastate_t **)0x0;\n                }\n                else {\n                  pprStack_1ec = (re_dfastate_t **)\n                                 (**(code **)(puVar56 + 0x28450))((int)prStack_1f0 * 4);\n                  if (pprStack_1ec == (re_dfastate_t **)0x0) {\n                    (**(code **)(puVar56 + 0x28520))(pprVar22);\n                    prStack_1e4 = (re_dfastate_t *)0xc;\n                    pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar35 = *(int *)(puVar56 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar56 + 0x283f8))(pprStack_1ec,0,(int)prStack_1f0 * 4);\n                    rStack_160.limits.alloc = 0;\n                    rStack_160.limits.nelem = 0;\n                    rStack_160.limits.elems = (Idx *)0x0;\n                    rStack_160.sifted_states = pprVar22;\n                    rStack_160.limited_states = pprStack_1ec;\n                    rStack_160.last_node = (Idx)pIVar23;\n                    rStack_160.last_str_idx = (Idx)prVar38;\n                    prStack_1e4 = (re_dfastate_t *)\n                                  (*(code *)(iVar35 + -0x2cf4))\n                                            ((re_match_context_t *)auStack_144,auStack_168 + 8);\n                    (**(code **)(puVar56 + 0x28520))(rStack_160.limits.elems);\n                    if (prStack_1e4 != (re_dfastate_t *)0x0) break;\n                    if ((*pprVar22 != (re_dfastate_t *)0x0) ||\n                       (*pprStack_1ec != (re_dfastate_t *)0x0)) {\n                      prStack_1e4 = (re_dfastate_t *)\n                                    merge_state_array((re_dfa_t *)uVar44,pprVar22,pprStack_1ec,\n                                                      (Idx)prStack_1f0);\n                      (**(code **)(puVar56 + 0x28520))(pprStack_1ec);\n                      if (prStack_1e4 != (re_dfastate_t *)0x0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    iVar19 = auStack_144._100_4_ + (int)prStack_1f0 * 4 + -4;\n                    prStack_1f0 = prVar38;\n                    while( true ) {\n                      prVar38 = (re_dfastate_t *)&prStack_1f0[-1].field_0x37;\n                      if (prVar38 == (re_dfastate_t *)0xffffffff) {\n                        (**(code **)(puVar56 + 0x28520))(pprVar22);\n                        (**(code **)(puVar56 + 0x28520))(pprStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar20 = *(int *)(iVar19 + -4);\n                      if ((iVar20 != 0) && ((*(byte *)(iVar20 + 0x34) & 8) != 0)) break;\n                      iVar19 = iVar19 + -4;\n                      prStack_1f0 = prVar38;\n                    }\n                    pIVar23 = (Idx *)(*pcVar55)((re_match_context_t *)auStack_144,\n                                                *(undefined4 *)(iVar20 + 8),iVar20 + 0xc,prVar38);\n                  }\n                }\n                (**(code **)(puVar56 + 0x28520))(pprVar22);\n                (**(code **)(puVar56 + 0x28520))(pprStack_1ec);\n                pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n                if (prStack_1e4 == (re_dfastate_t *)0x1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }\n              prStack_1e4 = (re_dfastate_t *)0xc;\n              goto LAB_0004dbbc;\n            }\n          }" if (parenthesized_expression "(((preg->input).valid_len & 0x8000000) == 0)" ( (binary_expression "((preg->input).valid_len & 0x8000000) == 0" (parenthesized_expression "((preg->input).valid_len & 0x8000000)" ( (binary_expression "(preg->input).valid_len & 0x8000000" (field_expression "(preg->input).valid_len" (parenthesized_expression "(preg->input)" ( (field_expression "preg->input" identifier -> field_identifier) )) . field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n            if (!bVar2) {\n              iVar35 = prVar53->nbackref;\n              goto joined_r0x0004e94c;\n            }\n            pcVar55 = (code *)(*(int *)(puVar56 + 0x28244) + 0x7d8c);\n            prVar39 = *(re_dfastate_t **)(auStack_144._100_4_ + (int)prVar38 * 4);\n            auStack_144._96_4_ =\n                 check_halt_state_context\n                           ((re_match_context_t *)auStack_144,\n                            (re_dfastate_t *)(prVar39->nodes).nelem,(Idx)&(prVar39->nodes).elems,\n                            prVar38);\n            if (((char)prVar53->field_0x58 < '\0') || (prVar53->nbackref != 0)) goto LAB_0004e170;\n          }" { (if_statement "if (!bVar2) {\n              iVar35 = prVar53->nbackref;\n              goto joined_r0x0004e94c;\n            }" if (parenthesized_expression "(!bVar2)" ( (unary_expression "!bVar2" ! identifier) )) (compound_statement "{\n              iVar35 = prVar53->nbackref;\n              goto joined_r0x0004e94c;\n            }" { (expression_statement "iVar35 = prVar53->nbackref;" (assignment_expression "iVar35 = prVar53->nbackref" identifier = (field_expression "prVar53->nbackref" identifier -> field_identifier)) ;) (goto_statement "goto joined_r0x0004e94c;" goto statement_identifier ;) })) (expression_statement "pcVar55 = (code *)(*(int *)(puVar56 + 0x28244) + 0x7d8c);" (assignment_expression "pcVar55 = (code *)(*(int *)(puVar56 + 0x28244) + 0x7d8c)" identifier = (cast_expression "(code *)(*(int *)(puVar56 + 0x28244) + 0x7d8c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar56 + 0x28244) + 0x7d8c)" ( (binary_expression "*(int *)(puVar56 + 0x28244) + 0x7d8c" (pointer_expression "*(int *)(puVar56 + 0x28244)" * (cast_expression "(int *)(puVar56 + 0x28244)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x28244)" ( (binary_expression "puVar56 + 0x28244" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "prVar39 = *(re_dfastate_t **)(auStack_144._100_4_ + (int)prVar38 * 4);" (assignment_expression "prVar39 = *(re_dfastate_t **)(auStack_144._100_4_ + (int)prVar38 * 4)" identifier = (pointer_expression "*(re_dfastate_t **)(auStack_144._100_4_ + (int)prVar38 * 4)" * (cast_expression "(re_dfastate_t **)(auStack_144._100_4_ + (int)prVar38 * 4)" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(auStack_144._100_4_ + (int)prVar38 * 4)" ( (binary_expression "auStack_144._100_4_ + (int)prVar38 * 4" (field_expression "auStack_144._100_4_" identifier . field_identifier) + (binary_expression "(int)prVar38 * 4" (cast_expression "(int)prVar38" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))))) ;) (expression_statement "auStack_144._96_4_ =\n                 check_halt_state_context\n                           ((re_match_context_t *)auStack_144,\n                            (re_dfastate_t *)(prVar39->nodes).nelem,(Idx)&(prVar39->nodes).elems,\n                            prVar38);" (assignment_expression "auStack_144._96_4_ =\n                 check_halt_state_context\n                           ((re_match_context_t *)auStack_144,\n                            (re_dfastate_t *)(prVar39->nodes).nelem,(Idx)&(prVar39->nodes).elems,\n                            prVar38)" (field_expression "auStack_144._96_4_" identifier . field_identifier) = (call_expression "check_halt_state_context\n                           ((re_match_context_t *)auStack_144,\n                            (re_dfastate_t *)(prVar39->nodes).nelem,(Idx)&(prVar39->nodes).elems,\n                            prVar38)" identifier (argument_list "((re_match_context_t *)auStack_144,\n                            (re_dfastate_t *)(prVar39->nodes).nelem,(Idx)&(prVar39->nodes).elems,\n                            prVar38)" ( (cast_expression "(re_match_context_t *)auStack_144" ( (type_descriptor "re_match_context_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(re_dfastate_t *)(prVar39->nodes).nelem" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(prVar39->nodes).nelem" (parenthesized_expression "(prVar39->nodes)" ( (field_expression "prVar39->nodes" identifier -> field_identifier) )) . field_identifier)) , (binary_expression "(Idx)&(prVar39->nodes).elems" (parenthesized_expression "(Idx)" ( identifier )) & (field_expression "(prVar39->nodes).elems" (parenthesized_expression "(prVar39->nodes)" ( (field_expression "prVar39->nodes" identifier -> field_identifier) )) . field_identifier)) , identifier )))) ;) (if_statement "if (((char)prVar53->field_0x58 < '\0') || (prVar53->nbackref != 0)) goto LAB_0004e170;" if (parenthesized_expression "(((char)prVar53->field_0x58 < '\0') || (prVar53->nbackref != 0))" ( (binary_expression "((char)prVar53->field_0x58 < '\0') || (prVar53->nbackref != 0)" (parenthesized_expression "((char)prVar53->field_0x58 < '\0')" ( (binary_expression "(char)prVar53->field_0x58 < '\0'" (cast_expression "(char)prVar53->field_0x58" ( (type_descriptor "char" primitive_type) ) (field_expression "prVar53->field_0x58" identifier -> field_identifier)) < (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(prVar53->nbackref != 0)" ( (binary_expression "prVar53->nbackref != 0" (field_expression "prVar53->nbackref" identifier -> field_identifier) != number_literal) ))) )) (goto_statement "goto LAB_0004e170;" goto statement_identifier ;)) }) (else_clause "else {\n            iVar35 = prVar53->nbackref;\njoined_r0x0004e94c:\n            if (iVar35 != 0) {\n              pcVar55 = (code *)(*(int *)(puVar56 + 0x28244) + 0x7d8c);\n              prVar39 = *(re_dfastate_t **)(auStack_144._100_4_ + (int)prVar38 * 4);\n              auStack_144._96_4_ =\n                   check_halt_state_context\n                             ((re_match_context_t *)auStack_144,\n                              (re_dfastate_t *)(prVar39->nodes).nelem,(Idx)&(prVar39->nodes).elems,\n                              prVar38);\nLAB_0004e170:\n              pIVar23 = (Idx *)auStack_144._96_4_;\n              uVar44 = auStack_144._84_4_;\n              if (prVar38 < (re_dfastate_t *)0x3fffffff) {\n                prStack_1f0 = (re_dfastate_t *)((int)&prVar38->hash + 1);\n                pprVar22 = (re_dfastate_t **)(**(code **)(puVar56 + 0x28450))((int)prStack_1f0 * 4);\n                if (pprVar22 == (re_dfastate_t **)0x0) goto LAB_0004dbf8;\n                if (*(Idx *)(uVar44 + 0x4c) == 0) {\n                  rStack_160.limited_states = (re_dfastate_t **)0x0;\n                  rStack_160.limits.alloc = 0;\n                  rStack_160.limits.nelem = 0;\n                  rStack_160.limits.elems = (Idx *)0x0;\n                  rStack_160.sifted_states = pprVar22;\n                  rStack_160.last_node = (Idx)pIVar23;\n                  rStack_160.last_str_idx = (Idx)prVar38;\n                  prStack_1e4 = (re_dfastate_t *)\n                                sift_states_backward\n                                          ((re_match_context_t *)auStack_144,\n                                           (re_sift_context_t *)(auStack_168 + 8));\n                  (**(code **)(puVar56 + 0x28520))(rStack_160.limits.elems);\n                  if (prStack_1e4 == (re_dfastate_t *)0x0) {\n                    if (*pprVar22 == (re_dfastate_t *)0x0) {\n                      (**(code **)(puVar56 + 0x28520))(pprVar22);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar56 + 0x28520))(auStack_144._100_4_);\n                    auStack_144._92_4_ = prVar38;\n                    auStack_144._96_4_ = pIVar23;\n                    auStack_144._100_4_ = pprVar22;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  pprStack_1ec = (re_dfastate_t **)0x0;\n                }\n                else {\n                  pprStack_1ec = (re_dfastate_t **)\n                                 (**(code **)(puVar56 + 0x28450))((int)prStack_1f0 * 4);\n                  if (pprStack_1ec == (re_dfastate_t **)0x0) {\n                    (**(code **)(puVar56 + 0x28520))(pprVar22);\n                    prStack_1e4 = (re_dfastate_t *)0xc;\n                    pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar35 = *(int *)(puVar56 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar56 + 0x283f8))(pprStack_1ec,0,(int)prStack_1f0 * 4);\n                    rStack_160.limits.alloc = 0;\n                    rStack_160.limits.nelem = 0;\n                    rStack_160.limits.elems = (Idx *)0x0;\n                    rStack_160.sifted_states = pprVar22;\n                    rStack_160.limited_states = pprStack_1ec;\n                    rStack_160.last_node = (Idx)pIVar23;\n                    rStack_160.last_str_idx = (Idx)prVar38;\n                    prStack_1e4 = (re_dfastate_t *)\n                                  (*(code *)(iVar35 + -0x2cf4))\n                                            ((re_match_context_t *)auStack_144,auStack_168 + 8);\n                    (**(code **)(puVar56 + 0x28520))(rStack_160.limits.elems);\n                    if (prStack_1e4 != (re_dfastate_t *)0x0) break;\n                    if ((*pprVar22 != (re_dfastate_t *)0x0) ||\n                       (*pprStack_1ec != (re_dfastate_t *)0x0)) {\n                      prStack_1e4 = (re_dfastate_t *)\n                                    merge_state_array((re_dfa_t *)uVar44,pprVar22,pprStack_1ec,\n                                                      (Idx)prStack_1f0);\n                      (**(code **)(puVar56 + 0x28520))(pprStack_1ec);\n                      if (prStack_1e4 != (re_dfastate_t *)0x0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    iVar19 = auStack_144._100_4_ + (int)prStack_1f0 * 4 + -4;\n                    prStack_1f0 = prVar38;\n                    while( true ) {\n                      prVar38 = (re_dfastate_t *)&prStack_1f0[-1].field_0x37;\n                      if (prVar38 == (re_dfastate_t *)0xffffffff) {\n                        (**(code **)(puVar56 + 0x28520))(pprVar22);\n                        (**(code **)(puVar56 + 0x28520))(pprStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar20 = *(int *)(iVar19 + -4);\n                      if ((iVar20 != 0) && ((*(byte *)(iVar20 + 0x34) & 8) != 0)) break;\n                      iVar19 = iVar19 + -4;\n                      prStack_1f0 = prVar38;\n                    }\n                    pIVar23 = (Idx *)(*pcVar55)((re_match_context_t *)auStack_144,\n                                                *(undefined4 *)(iVar20 + 8),iVar20 + 0xc,prVar38);\n                  }\n                }\n                (**(code **)(puVar56 + 0x28520))(pprVar22);\n                (**(code **)(puVar56 + 0x28520))(pprStack_1ec);\n                pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n                if (prStack_1e4 == (re_dfastate_t *)0x1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }\n              prStack_1e4 = (re_dfastate_t *)0xc;\n              goto LAB_0004dbbc;\n            }\n          }" else (compound_statement "{\n            iVar35 = prVar53->nbackref;\njoined_r0x0004e94c:\n            if (iVar35 != 0) {\n              pcVar55 = (code *)(*(int *)(puVar56 + 0x28244) + 0x7d8c);\n              prVar39 = *(re_dfastate_t **)(auStack_144._100_4_ + (int)prVar38 * 4);\n              auStack_144._96_4_ =\n                   check_halt_state_context\n                             ((re_match_context_t *)auStack_144,\n                              (re_dfastate_t *)(prVar39->nodes).nelem,(Idx)&(prVar39->nodes).elems,\n                              prVar38);\nLAB_0004e170:\n              pIVar23 = (Idx *)auStack_144._96_4_;\n              uVar44 = auStack_144._84_4_;\n              if (prVar38 < (re_dfastate_t *)0x3fffffff) {\n                prStack_1f0 = (re_dfastate_t *)((int)&prVar38->hash + 1);\n                pprVar22 = (re_dfastate_t **)(**(code **)(puVar56 + 0x28450))((int)prStack_1f0 * 4);\n                if (pprVar22 == (re_dfastate_t **)0x0) goto LAB_0004dbf8;\n                if (*(Idx *)(uVar44 + 0x4c) == 0) {\n                  rStack_160.limited_states = (re_dfastate_t **)0x0;\n                  rStack_160.limits.alloc = 0;\n                  rStack_160.limits.nelem = 0;\n                  rStack_160.limits.elems = (Idx *)0x0;\n                  rStack_160.sifted_states = pprVar22;\n                  rStack_160.last_node = (Idx)pIVar23;\n                  rStack_160.last_str_idx = (Idx)prVar38;\n                  prStack_1e4 = (re_dfastate_t *)\n                                sift_states_backward\n                                          ((re_match_context_t *)auStack_144,\n                                           (re_sift_context_t *)(auStack_168 + 8));\n                  (**(code **)(puVar56 + 0x28520))(rStack_160.limits.elems);\n                  if (prStack_1e4 == (re_dfastate_t *)0x0) {\n                    if (*pprVar22 == (re_dfastate_t *)0x0) {\n                      (**(code **)(puVar56 + 0x28520))(pprVar22);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar56 + 0x28520))(auStack_144._100_4_);\n                    auStack_144._92_4_ = prVar38;\n                    auStack_144._96_4_ = pIVar23;\n                    auStack_144._100_4_ = pprVar22;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  pprStack_1ec = (re_dfastate_t **)0x0;\n                }\n                else {\n                  pprStack_1ec = (re_dfastate_t **)\n                                 (**(code **)(puVar56 + 0x28450))((int)prStack_1f0 * 4);\n                  if (pprStack_1ec == (re_dfastate_t **)0x0) {\n                    (**(code **)(puVar56 + 0x28520))(pprVar22);\n                    prStack_1e4 = (re_dfastate_t *)0xc;\n                    pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar35 = *(int *)(puVar56 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar56 + 0x283f8))(pprStack_1ec,0,(int)prStack_1f0 * 4);\n                    rStack_160.limits.alloc = 0;\n                    rStack_160.limits.nelem = 0;\n                    rStack_160.limits.elems = (Idx *)0x0;\n                    rStack_160.sifted_states = pprVar22;\n                    rStack_160.limited_states = pprStack_1ec;\n                    rStack_160.last_node = (Idx)pIVar23;\n                    rStack_160.last_str_idx = (Idx)prVar38;\n                    prStack_1e4 = (re_dfastate_t *)\n                                  (*(code *)(iVar35 + -0x2cf4))\n                                            ((re_match_context_t *)auStack_144,auStack_168 + 8);\n                    (**(code **)(puVar56 + 0x28520))(rStack_160.limits.elems);\n                    if (prStack_1e4 != (re_dfastate_t *)0x0) break;\n                    if ((*pprVar22 != (re_dfastate_t *)0x0) ||\n                       (*pprStack_1ec != (re_dfastate_t *)0x0)) {\n                      prStack_1e4 = (re_dfastate_t *)\n                                    merge_state_array((re_dfa_t *)uVar44,pprVar22,pprStack_1ec,\n                                                      (Idx)prStack_1f0);\n                      (**(code **)(puVar56 + 0x28520))(pprStack_1ec);\n                      if (prStack_1e4 != (re_dfastate_t *)0x0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    iVar19 = auStack_144._100_4_ + (int)prStack_1f0 * 4 + -4;\n                    prStack_1f0 = prVar38;\n                    while( true ) {\n                      prVar38 = (re_dfastate_t *)&prStack_1f0[-1].field_0x37;\n                      if (prVar38 == (re_dfastate_t *)0xffffffff) {\n                        (**(code **)(puVar56 + 0x28520))(pprVar22);\n                        (**(code **)(puVar56 + 0x28520))(pprStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar20 = *(int *)(iVar19 + -4);\n                      if ((iVar20 != 0) && ((*(byte *)(iVar20 + 0x34) & 8) != 0)) break;\n                      iVar19 = iVar19 + -4;\n                      prStack_1f0 = prVar38;\n                    }\n                    pIVar23 = (Idx *)(*pcVar55)((re_match_context_t *)auStack_144,\n                                                *(undefined4 *)(iVar20 + 8),iVar20 + 0xc,prVar38);\n                  }\n                }\n                (**(code **)(puVar56 + 0x28520))(pprVar22);\n                (**(code **)(puVar56 + 0x28520))(pprStack_1ec);\n                pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n                if (prStack_1e4 == (re_dfastate_t *)0x1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }\n              prStack_1e4 = (re_dfastate_t *)0xc;\n              goto LAB_0004dbbc;\n            }\n          }" { (expression_statement "iVar35 = prVar53->nbackref;" (assignment_expression "iVar35 = prVar53->nbackref" identifier = (field_expression "prVar53->nbackref" identifier -> field_identifier)) ;) (labeled_statement "joined_r0x0004e94c:\n            if (iVar35 != 0) {\n              pcVar55 = (code *)(*(int *)(puVar56 + 0x28244) + 0x7d8c);\n              prVar39 = *(re_dfastate_t **)(auStack_144._100_4_ + (int)prVar38 * 4);\n              auStack_144._96_4_ =\n                   check_halt_state_context\n                             ((re_match_context_t *)auStack_144,\n                              (re_dfastate_t *)(prVar39->nodes).nelem,(Idx)&(prVar39->nodes).elems,\n                              prVar38);\nLAB_0004e170:\n              pIVar23 = (Idx *)auStack_144._96_4_;\n              uVar44 = auStack_144._84_4_;\n              if (prVar38 < (re_dfastate_t *)0x3fffffff) {\n                prStack_1f0 = (re_dfastate_t *)((int)&prVar38->hash + 1);\n                pprVar22 = (re_dfastate_t **)(**(code **)(puVar56 + 0x28450))((int)prStack_1f0 * 4);\n                if (pprVar22 == (re_dfastate_t **)0x0) goto LAB_0004dbf8;\n                if (*(Idx *)(uVar44 + 0x4c) == 0) {\n                  rStack_160.limited_states = (re_dfastate_t **)0x0;\n                  rStack_160.limits.alloc = 0;\n                  rStack_160.limits.nelem = 0;\n                  rStack_160.limits.elems = (Idx *)0x0;\n                  rStack_160.sifted_states = pprVar22;\n                  rStack_160.last_node = (Idx)pIVar23;\n                  rStack_160.last_str_idx = (Idx)prVar38;\n                  prStack_1e4 = (re_dfastate_t *)\n                                sift_states_backward\n                                          ((re_match_context_t *)auStack_144,\n                                           (re_sift_context_t *)(auStack_168 + 8));\n                  (**(code **)(puVar56 + 0x28520))(rStack_160.limits.elems);\n                  if (prStack_1e4 == (re_dfastate_t *)0x0) {\n                    if (*pprVar22 == (re_dfastate_t *)0x0) {\n                      (**(code **)(puVar56 + 0x28520))(pprVar22);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar56 + 0x28520))(auStack_144._100_4_);\n                    auStack_144._92_4_ = prVar38;\n                    auStack_144._96_4_ = pIVar23;\n                    auStack_144._100_4_ = pprVar22;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  pprStack_1ec = (re_dfastate_t **)0x0;\n                }\n                else {\n                  pprStack_1ec = (re_dfastate_t **)\n                                 (**(code **)(puVar56 + 0x28450))((int)prStack_1f0 * 4);\n                  if (pprStack_1ec == (re_dfastate_t **)0x0) {\n                    (**(code **)(puVar56 + 0x28520))(pprVar22);\n                    prStack_1e4 = (re_dfastate_t *)0xc;\n                    pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar35 = *(int *)(puVar56 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar56 + 0x283f8))(pprStack_1ec,0,(int)prStack_1f0 * 4);\n                    rStack_160.limits.alloc = 0;\n                    rStack_160.limits.nelem = 0;\n                    rStack_160.limits.elems = (Idx *)0x0;\n                    rStack_160.sifted_states = pprVar22;\n                    rStack_160.limited_states = pprStack_1ec;\n                    rStack_160.last_node = (Idx)pIVar23;\n                    rStack_160.last_str_idx = (Idx)prVar38;\n                    prStack_1e4 = (re_dfastate_t *)\n                                  (*(code *)(iVar35 + -0x2cf4))\n                                            ((re_match_context_t *)auStack_144,auStack_168 + 8);\n                    (**(code **)(puVar56 + 0x28520))(rStack_160.limits.elems);\n                    if (prStack_1e4 != (re_dfastate_t *)0x0) break;\n                    if ((*pprVar22 != (re_dfastate_t *)0x0) ||\n                       (*pprStack_1ec != (re_dfastate_t *)0x0)) {\n                      prStack_1e4 = (re_dfastate_t *)\n                                    merge_state_array((re_dfa_t *)uVar44,pprVar22,pprStack_1ec,\n                                                      (Idx)prStack_1f0);\n                      (**(code **)(puVar56 + 0x28520))(pprStack_1ec);\n                      if (prStack_1e4 != (re_dfastate_t *)0x0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    iVar19 = auStack_144._100_4_ + (int)prStack_1f0 * 4 + -4;\n                    prStack_1f0 = prVar38;\n                    while( true ) {\n                      prVar38 = (re_dfastate_t *)&prStack_1f0[-1].field_0x37;\n                      if (prVar38 == (re_dfastate_t *)0xffffffff) {\n                        (**(code **)(puVar56 + 0x28520))(pprVar22);\n                        (**(code **)(puVar56 + 0x28520))(pprStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar20 = *(int *)(iVar19 + -4);\n                      if ((iVar20 != 0) && ((*(byte *)(iVar20 + 0x34) & 8) != 0)) break;\n                      iVar19 = iVar19 + -4;\n                      prStack_1f0 = prVar38;\n                    }\n                    pIVar23 = (Idx *)(*pcVar55)((re_match_context_t *)auStack_144,\n                                                *(undefined4 *)(iVar20 + 8),iVar20 + 0xc,prVar38);\n                  }\n                }\n                (**(code **)(puVar56 + 0x28520))(pprVar22);\n                (**(code **)(puVar56 + 0x28520))(pprStack_1ec);\n                pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n                if (prStack_1e4 == (re_dfastate_t *)0x1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }\n              prStack_1e4 = (re_dfastate_t *)0xc;\n              goto LAB_0004dbbc;\n            }" statement_identifier : (if_statement "if (iVar35 != 0) {\n              pcVar55 = (code *)(*(int *)(puVar56 + 0x28244) + 0x7d8c);\n              prVar39 = *(re_dfastate_t **)(auStack_144._100_4_ + (int)prVar38 * 4);\n              auStack_144._96_4_ =\n                   check_halt_state_context\n                             ((re_match_context_t *)auStack_144,\n                              (re_dfastate_t *)(prVar39->nodes).nelem,(Idx)&(prVar39->nodes).elems,\n                              prVar38);\nLAB_0004e170:\n              pIVar23 = (Idx *)auStack_144._96_4_;\n              uVar44 = auStack_144._84_4_;\n              if (prVar38 < (re_dfastate_t *)0x3fffffff) {\n                prStack_1f0 = (re_dfastate_t *)((int)&prVar38->hash + 1);\n                pprVar22 = (re_dfastate_t **)(**(code **)(puVar56 + 0x28450))((int)prStack_1f0 * 4);\n                if (pprVar22 == (re_dfastate_t **)0x0) goto LAB_0004dbf8;\n                if (*(Idx *)(uVar44 + 0x4c) == 0) {\n                  rStack_160.limited_states = (re_dfastate_t **)0x0;\n                  rStack_160.limits.alloc = 0;\n                  rStack_160.limits.nelem = 0;\n                  rStack_160.limits.elems = (Idx *)0x0;\n                  rStack_160.sifted_states = pprVar22;\n                  rStack_160.last_node = (Idx)pIVar23;\n                  rStack_160.last_str_idx = (Idx)prVar38;\n                  prStack_1e4 = (re_dfastate_t *)\n                                sift_states_backward\n                                          ((re_match_context_t *)auStack_144,\n                                           (re_sift_context_t *)(auStack_168 + 8));\n                  (**(code **)(puVar56 + 0x28520))(rStack_160.limits.elems);\n                  if (prStack_1e4 == (re_dfastate_t *)0x0) {\n                    if (*pprVar22 == (re_dfastate_t *)0x0) {\n                      (**(code **)(puVar56 + 0x28520))(pprVar22);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar56 + 0x28520))(auStack_144._100_4_);\n                    auStack_144._92_4_ = prVar38;\n                    auStack_144._96_4_ = pIVar23;\n                    auStack_144._100_4_ = pprVar22;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  pprStack_1ec = (re_dfastate_t **)0x0;\n                }\n                else {\n                  pprStack_1ec = (re_dfastate_t **)\n                                 (**(code **)(puVar56 + 0x28450))((int)prStack_1f0 * 4);\n                  if (pprStack_1ec == (re_dfastate_t **)0x0) {\n                    (**(code **)(puVar56 + 0x28520))(pprVar22);\n                    prStack_1e4 = (re_dfastate_t *)0xc;\n                    pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar35 = *(int *)(puVar56 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar56 + 0x283f8))(pprStack_1ec,0,(int)prStack_1f0 * 4);\n                    rStack_160.limits.alloc = 0;\n                    rStack_160.limits.nelem = 0;\n                    rStack_160.limits.elems = (Idx *)0x0;\n                    rStack_160.sifted_states = pprVar22;\n                    rStack_160.limited_states = pprStack_1ec;\n                    rStack_160.last_node = (Idx)pIVar23;\n                    rStack_160.last_str_idx = (Idx)prVar38;\n                    prStack_1e4 = (re_dfastate_t *)\n                                  (*(code *)(iVar35 + -0x2cf4))\n                                            ((re_match_context_t *)auStack_144,auStack_168 + 8);\n                    (**(code **)(puVar56 + 0x28520))(rStack_160.limits.elems);\n                    if (prStack_1e4 != (re_dfastate_t *)0x0) break;\n                    if ((*pprVar22 != (re_dfastate_t *)0x0) ||\n                       (*pprStack_1ec != (re_dfastate_t *)0x0)) {\n                      prStack_1e4 = (re_dfastate_t *)\n                                    merge_state_array((re_dfa_t *)uVar44,pprVar22,pprStack_1ec,\n                                                      (Idx)prStack_1f0);\n                      (**(code **)(puVar56 + 0x28520))(pprStack_1ec);\n                      if (prStack_1e4 != (re_dfastate_t *)0x0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    iVar19 = auStack_144._100_4_ + (int)prStack_1f0 * 4 + -4;\n                    prStack_1f0 = prVar38;\n                    while( true ) {\n                      prVar38 = (re_dfastate_t *)&prStack_1f0[-1].field_0x37;\n                      if (prVar38 == (re_dfastate_t *)0xffffffff) {\n                        (**(code **)(puVar56 + 0x28520))(pprVar22);\n                        (**(code **)(puVar56 + 0x28520))(pprStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar20 = *(int *)(iVar19 + -4);\n                      if ((iVar20 != 0) && ((*(byte *)(iVar20 + 0x34) & 8) != 0)) break;\n                      iVar19 = iVar19 + -4;\n                      prStack_1f0 = prVar38;\n                    }\n                    pIVar23 = (Idx *)(*pcVar55)((re_match_context_t *)auStack_144,\n                                                *(undefined4 *)(iVar20 + 8),iVar20 + 0xc,prVar38);\n                  }\n                }\n                (**(code **)(puVar56 + 0x28520))(pprVar22);\n                (**(code **)(puVar56 + 0x28520))(pprStack_1ec);\n                pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n                if (prStack_1e4 == (re_dfastate_t *)0x1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }\n              prStack_1e4 = (re_dfastate_t *)0xc;\n              goto LAB_0004dbbc;\n            }" if (parenthesized_expression "(iVar35 != 0)" ( (binary_expression "iVar35 != 0" identifier != number_literal) )) (compound_statement "{\n              pcVar55 = (code *)(*(int *)(puVar56 + 0x28244) + 0x7d8c);\n              prVar39 = *(re_dfastate_t **)(auStack_144._100_4_ + (int)prVar38 * 4);\n              auStack_144._96_4_ =\n                   check_halt_state_context\n                             ((re_match_context_t *)auStack_144,\n                              (re_dfastate_t *)(prVar39->nodes).nelem,(Idx)&(prVar39->nodes).elems,\n                              prVar38);\nLAB_0004e170:\n              pIVar23 = (Idx *)auStack_144._96_4_;\n              uVar44 = auStack_144._84_4_;\n              if (prVar38 < (re_dfastate_t *)0x3fffffff) {\n                prStack_1f0 = (re_dfastate_t *)((int)&prVar38->hash + 1);\n                pprVar22 = (re_dfastate_t **)(**(code **)(puVar56 + 0x28450))((int)prStack_1f0 * 4);\n                if (pprVar22 == (re_dfastate_t **)0x0) goto LAB_0004dbf8;\n                if (*(Idx *)(uVar44 + 0x4c) == 0) {\n                  rStack_160.limited_states = (re_dfastate_t **)0x0;\n                  rStack_160.limits.alloc = 0;\n                  rStack_160.limits.nelem = 0;\n                  rStack_160.limits.elems = (Idx *)0x0;\n                  rStack_160.sifted_states = pprVar22;\n                  rStack_160.last_node = (Idx)pIVar23;\n                  rStack_160.last_str_idx = (Idx)prVar38;\n                  prStack_1e4 = (re_dfastate_t *)\n                                sift_states_backward\n                                          ((re_match_context_t *)auStack_144,\n                                           (re_sift_context_t *)(auStack_168 + 8));\n                  (**(code **)(puVar56 + 0x28520))(rStack_160.limits.elems);\n                  if (prStack_1e4 == (re_dfastate_t *)0x0) {\n                    if (*pprVar22 == (re_dfastate_t *)0x0) {\n                      (**(code **)(puVar56 + 0x28520))(pprVar22);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar56 + 0x28520))(auStack_144._100_4_);\n                    auStack_144._92_4_ = prVar38;\n                    auStack_144._96_4_ = pIVar23;\n                    auStack_144._100_4_ = pprVar22;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  pprStack_1ec = (re_dfastate_t **)0x0;\n                }\n                else {\n                  pprStack_1ec = (re_dfastate_t **)\n                                 (**(code **)(puVar56 + 0x28450))((int)prStack_1f0 * 4);\n                  if (pprStack_1ec == (re_dfastate_t **)0x0) {\n                    (**(code **)(puVar56 + 0x28520))(pprVar22);\n                    prStack_1e4 = (re_dfastate_t *)0xc;\n                    pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar35 = *(int *)(puVar56 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar56 + 0x283f8))(pprStack_1ec,0,(int)prStack_1f0 * 4);\n                    rStack_160.limits.alloc = 0;\n                    rStack_160.limits.nelem = 0;\n                    rStack_160.limits.elems = (Idx *)0x0;\n                    rStack_160.sifted_states = pprVar22;\n                    rStack_160.limited_states = pprStack_1ec;\n                    rStack_160.last_node = (Idx)pIVar23;\n                    rStack_160.last_str_idx = (Idx)prVar38;\n                    prStack_1e4 = (re_dfastate_t *)\n                                  (*(code *)(iVar35 + -0x2cf4))\n                                            ((re_match_context_t *)auStack_144,auStack_168 + 8);\n                    (**(code **)(puVar56 + 0x28520))(rStack_160.limits.elems);\n                    if (prStack_1e4 != (re_dfastate_t *)0x0) break;\n                    if ((*pprVar22 != (re_dfastate_t *)0x0) ||\n                       (*pprStack_1ec != (re_dfastate_t *)0x0)) {\n                      prStack_1e4 = (re_dfastate_t *)\n                                    merge_state_array((re_dfa_t *)uVar44,pprVar22,pprStack_1ec,\n                                                      (Idx)prStack_1f0);\n                      (**(code **)(puVar56 + 0x28520))(pprStack_1ec);\n                      if (prStack_1e4 != (re_dfastate_t *)0x0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    iVar19 = auStack_144._100_4_ + (int)prStack_1f0 * 4 + -4;\n                    prStack_1f0 = prVar38;\n                    while( true ) {\n                      prVar38 = (re_dfastate_t *)&prStack_1f0[-1].field_0x37;\n                      if (prVar38 == (re_dfastate_t *)0xffffffff) {\n                        (**(code **)(puVar56 + 0x28520))(pprVar22);\n                        (**(code **)(puVar56 + 0x28520))(pprStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar20 = *(int *)(iVar19 + -4);\n                      if ((iVar20 != 0) && ((*(byte *)(iVar20 + 0x34) & 8) != 0)) break;\n                      iVar19 = iVar19 + -4;\n                      prStack_1f0 = prVar38;\n                    }\n                    pIVar23 = (Idx *)(*pcVar55)((re_match_context_t *)auStack_144,\n                                                *(undefined4 *)(iVar20 + 8),iVar20 + 0xc,prVar38);\n                  }\n                }\n                (**(code **)(puVar56 + 0x28520))(pprVar22);\n                (**(code **)(puVar56 + 0x28520))(pprStack_1ec);\n                pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n                if (prStack_1e4 == (re_dfastate_t *)0x1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }\n              prStack_1e4 = (re_dfastate_t *)0xc;\n              goto LAB_0004dbbc;\n            }" { (expression_statement "pcVar55 = (code *)(*(int *)(puVar56 + 0x28244) + 0x7d8c);" (assignment_expression "pcVar55 = (code *)(*(int *)(puVar56 + 0x28244) + 0x7d8c)" identifier = (cast_expression "(code *)(*(int *)(puVar56 + 0x28244) + 0x7d8c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar56 + 0x28244) + 0x7d8c)" ( (binary_expression "*(int *)(puVar56 + 0x28244) + 0x7d8c" (pointer_expression "*(int *)(puVar56 + 0x28244)" * (cast_expression "(int *)(puVar56 + 0x28244)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x28244)" ( (binary_expression "puVar56 + 0x28244" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "prVar39 = *(re_dfastate_t **)(auStack_144._100_4_ + (int)prVar38 * 4);" (assignment_expression "prVar39 = *(re_dfastate_t **)(auStack_144._100_4_ + (int)prVar38 * 4)" identifier = (pointer_expression "*(re_dfastate_t **)(auStack_144._100_4_ + (int)prVar38 * 4)" * (cast_expression "(re_dfastate_t **)(auStack_144._100_4_ + (int)prVar38 * 4)" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(auStack_144._100_4_ + (int)prVar38 * 4)" ( (binary_expression "auStack_144._100_4_ + (int)prVar38 * 4" (field_expression "auStack_144._100_4_" identifier . field_identifier) + (binary_expression "(int)prVar38 * 4" (cast_expression "(int)prVar38" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))))) ;) (expression_statement "auStack_144._96_4_ =\n                   check_halt_state_context\n                             ((re_match_context_t *)auStack_144,\n                              (re_dfastate_t *)(prVar39->nodes).nelem,(Idx)&(prVar39->nodes).elems,\n                              prVar38);" (assignment_expression "auStack_144._96_4_ =\n                   check_halt_state_context\n                             ((re_match_context_t *)auStack_144,\n                              (re_dfastate_t *)(prVar39->nodes).nelem,(Idx)&(prVar39->nodes).elems,\n                              prVar38)" (field_expression "auStack_144._96_4_" identifier . field_identifier) = (call_expression "check_halt_state_context\n                             ((re_match_context_t *)auStack_144,\n                              (re_dfastate_t *)(prVar39->nodes).nelem,(Idx)&(prVar39->nodes).elems,\n                              prVar38)" identifier (argument_list "((re_match_context_t *)auStack_144,\n                              (re_dfastate_t *)(prVar39->nodes).nelem,(Idx)&(prVar39->nodes).elems,\n                              prVar38)" ( (cast_expression "(re_match_context_t *)auStack_144" ( (type_descriptor "re_match_context_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(re_dfastate_t *)(prVar39->nodes).nelem" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(prVar39->nodes).nelem" (parenthesized_expression "(prVar39->nodes)" ( (field_expression "prVar39->nodes" identifier -> field_identifier) )) . field_identifier)) , (binary_expression "(Idx)&(prVar39->nodes).elems" (parenthesized_expression "(Idx)" ( identifier )) & (field_expression "(prVar39->nodes).elems" (parenthesized_expression "(prVar39->nodes)" ( (field_expression "prVar39->nodes" identifier -> field_identifier) )) . field_identifier)) , identifier )))) ;) (labeled_statement "LAB_0004e170:\n              pIVar23 = (Idx *)auStack_144._96_4_;" statement_identifier : (expression_statement "pIVar23 = (Idx *)auStack_144._96_4_;" (assignment_expression "pIVar23 = (Idx *)auStack_144._96_4_" identifier = (cast_expression "(Idx *)auStack_144._96_4_" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStack_144._96_4_" identifier . field_identifier))) ;)) (expression_statement "uVar44 = auStack_144._84_4_;" (assignment_expression "uVar44 = auStack_144._84_4_" identifier = (field_expression "auStack_144._84_4_" identifier . field_identifier)) ;) (if_statement "if (prVar38 < (re_dfastate_t *)0x3fffffff) {\n                prStack_1f0 = (re_dfastate_t *)((int)&prVar38->hash + 1);\n                pprVar22 = (re_dfastate_t **)(**(code **)(puVar56 + 0x28450))((int)prStack_1f0 * 4);\n                if (pprVar22 == (re_dfastate_t **)0x0) goto LAB_0004dbf8;\n                if (*(Idx *)(uVar44 + 0x4c) == 0) {\n                  rStack_160.limited_states = (re_dfastate_t **)0x0;\n                  rStack_160.limits.alloc = 0;\n                  rStack_160.limits.nelem = 0;\n                  rStack_160.limits.elems = (Idx *)0x0;\n                  rStack_160.sifted_states = pprVar22;\n                  rStack_160.last_node = (Idx)pIVar23;\n                  rStack_160.last_str_idx = (Idx)prVar38;\n                  prStack_1e4 = (re_dfastate_t *)\n                                sift_states_backward\n                                          ((re_match_context_t *)auStack_144,\n                                           (re_sift_context_t *)(auStack_168 + 8));\n                  (**(code **)(puVar56 + 0x28520))(rStack_160.limits.elems);\n                  if (prStack_1e4 == (re_dfastate_t *)0x0) {\n                    if (*pprVar22 == (re_dfastate_t *)0x0) {\n                      (**(code **)(puVar56 + 0x28520))(pprVar22);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar56 + 0x28520))(auStack_144._100_4_);\n                    auStack_144._92_4_ = prVar38;\n                    auStack_144._96_4_ = pIVar23;\n                    auStack_144._100_4_ = pprVar22;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  pprStack_1ec = (re_dfastate_t **)0x0;\n                }\n                else {\n                  pprStack_1ec = (re_dfastate_t **)\n                                 (**(code **)(puVar56 + 0x28450))((int)prStack_1f0 * 4);\n                  if (pprStack_1ec == (re_dfastate_t **)0x0) {\n                    (**(code **)(puVar56 + 0x28520))(pprVar22);\n                    prStack_1e4 = (re_dfastate_t *)0xc;\n                    pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar35 = *(int *)(puVar56 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar56 + 0x283f8))(pprStack_1ec,0,(int)prStack_1f0 * 4);\n                    rStack_160.limits.alloc = 0;\n                    rStack_160.limits.nelem = 0;\n                    rStack_160.limits.elems = (Idx *)0x0;\n                    rStack_160.sifted_states = pprVar22;\n                    rStack_160.limited_states = pprStack_1ec;\n                    rStack_160.last_node = (Idx)pIVar23;\n                    rStack_160.last_str_idx = (Idx)prVar38;\n                    prStack_1e4 = (re_dfastate_t *)\n                                  (*(code *)(iVar35 + -0x2cf4))\n                                            ((re_match_context_t *)auStack_144,auStack_168 + 8);\n                    (**(code **)(puVar56 + 0x28520))(rStack_160.limits.elems);\n                    if (prStack_1e4 != (re_dfastate_t *)0x0) break;\n                    if ((*pprVar22 != (re_dfastate_t *)0x0) ||\n                       (*pprStack_1ec != (re_dfastate_t *)0x0)) {\n                      prStack_1e4 = (re_dfastate_t *)\n                                    merge_state_array((re_dfa_t *)uVar44,pprVar22,pprStack_1ec,\n                                                      (Idx)prStack_1f0);\n                      (**(code **)(puVar56 + 0x28520))(pprStack_1ec);\n                      if (prStack_1e4 != (re_dfastate_t *)0x0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    iVar19 = auStack_144._100_4_ + (int)prStack_1f0 * 4 + -4;\n                    prStack_1f0 = prVar38;\n                    while( true ) {\n                      prVar38 = (re_dfastate_t *)&prStack_1f0[-1].field_0x37;\n                      if (prVar38 == (re_dfastate_t *)0xffffffff) {\n                        (**(code **)(puVar56 + 0x28520))(pprVar22);\n                        (**(code **)(puVar56 + 0x28520))(pprStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar20 = *(int *)(iVar19 + -4);\n                      if ((iVar20 != 0) && ((*(byte *)(iVar20 + 0x34) & 8) != 0)) break;\n                      iVar19 = iVar19 + -4;\n                      prStack_1f0 = prVar38;\n                    }\n                    pIVar23 = (Idx *)(*pcVar55)((re_match_context_t *)auStack_144,\n                                                *(undefined4 *)(iVar20 + 8),iVar20 + 0xc,prVar38);\n                  }\n                }\n                (**(code **)(puVar56 + 0x28520))(pprVar22);\n                (**(code **)(puVar56 + 0x28520))(pprStack_1ec);\n                pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n                if (prStack_1e4 == (re_dfastate_t *)0x1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }" if (parenthesized_expression "(prVar38 < (re_dfastate_t *)0x3fffffff)" ( (binary_expression "prVar38 < (re_dfastate_t *)0x3fffffff" identifier < (cast_expression "(re_dfastate_t *)0x3fffffff" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                prStack_1f0 = (re_dfastate_t *)((int)&prVar38->hash + 1);\n                pprVar22 = (re_dfastate_t **)(**(code **)(puVar56 + 0x28450))((int)prStack_1f0 * 4);\n                if (pprVar22 == (re_dfastate_t **)0x0) goto LAB_0004dbf8;\n                if (*(Idx *)(uVar44 + 0x4c) == 0) {\n                  rStack_160.limited_states = (re_dfastate_t **)0x0;\n                  rStack_160.limits.alloc = 0;\n                  rStack_160.limits.nelem = 0;\n                  rStack_160.limits.elems = (Idx *)0x0;\n                  rStack_160.sifted_states = pprVar22;\n                  rStack_160.last_node = (Idx)pIVar23;\n                  rStack_160.last_str_idx = (Idx)prVar38;\n                  prStack_1e4 = (re_dfastate_t *)\n                                sift_states_backward\n                                          ((re_match_context_t *)auStack_144,\n                                           (re_sift_context_t *)(auStack_168 + 8));\n                  (**(code **)(puVar56 + 0x28520))(rStack_160.limits.elems);\n                  if (prStack_1e4 == (re_dfastate_t *)0x0) {\n                    if (*pprVar22 == (re_dfastate_t *)0x0) {\n                      (**(code **)(puVar56 + 0x28520))(pprVar22);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar56 + 0x28520))(auStack_144._100_4_);\n                    auStack_144._92_4_ = prVar38;\n                    auStack_144._96_4_ = pIVar23;\n                    auStack_144._100_4_ = pprVar22;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  pprStack_1ec = (re_dfastate_t **)0x0;\n                }\n                else {\n                  pprStack_1ec = (re_dfastate_t **)\n                                 (**(code **)(puVar56 + 0x28450))((int)prStack_1f0 * 4);\n                  if (pprStack_1ec == (re_dfastate_t **)0x0) {\n                    (**(code **)(puVar56 + 0x28520))(pprVar22);\n                    prStack_1e4 = (re_dfastate_t *)0xc;\n                    pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar35 = *(int *)(puVar56 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar56 + 0x283f8))(pprStack_1ec,0,(int)prStack_1f0 * 4);\n                    rStack_160.limits.alloc = 0;\n                    rStack_160.limits.nelem = 0;\n                    rStack_160.limits.elems = (Idx *)0x0;\n                    rStack_160.sifted_states = pprVar22;\n                    rStack_160.limited_states = pprStack_1ec;\n                    rStack_160.last_node = (Idx)pIVar23;\n                    rStack_160.last_str_idx = (Idx)prVar38;\n                    prStack_1e4 = (re_dfastate_t *)\n                                  (*(code *)(iVar35 + -0x2cf4))\n                                            ((re_match_context_t *)auStack_144,auStack_168 + 8);\n                    (**(code **)(puVar56 + 0x28520))(rStack_160.limits.elems);\n                    if (prStack_1e4 != (re_dfastate_t *)0x0) break;\n                    if ((*pprVar22 != (re_dfastate_t *)0x0) ||\n                       (*pprStack_1ec != (re_dfastate_t *)0x0)) {\n                      prStack_1e4 = (re_dfastate_t *)\n                                    merge_state_array((re_dfa_t *)uVar44,pprVar22,pprStack_1ec,\n                                                      (Idx)prStack_1f0);\n                      (**(code **)(puVar56 + 0x28520))(pprStack_1ec);\n                      if (prStack_1e4 != (re_dfastate_t *)0x0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    iVar19 = auStack_144._100_4_ + (int)prStack_1f0 * 4 + -4;\n                    prStack_1f0 = prVar38;\n                    while( true ) {\n                      prVar38 = (re_dfastate_t *)&prStack_1f0[-1].field_0x37;\n                      if (prVar38 == (re_dfastate_t *)0xffffffff) {\n                        (**(code **)(puVar56 + 0x28520))(pprVar22);\n                        (**(code **)(puVar56 + 0x28520))(pprStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar20 = *(int *)(iVar19 + -4);\n                      if ((iVar20 != 0) && ((*(byte *)(iVar20 + 0x34) & 8) != 0)) break;\n                      iVar19 = iVar19 + -4;\n                      prStack_1f0 = prVar38;\n                    }\n                    pIVar23 = (Idx *)(*pcVar55)((re_match_context_t *)auStack_144,\n                                                *(undefined4 *)(iVar20 + 8),iVar20 + 0xc,prVar38);\n                  }\n                }\n                (**(code **)(puVar56 + 0x28520))(pprVar22);\n                (**(code **)(puVar56 + 0x28520))(pprStack_1ec);\n                pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n                if (prStack_1e4 == (re_dfastate_t *)0x1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }" { (expression_statement "prStack_1f0 = (re_dfastate_t *)((int)&prVar38->hash + 1);" (assignment_expression "prStack_1f0 = (re_dfastate_t *)((int)&prVar38->hash + 1)" identifier = (cast_expression "(re_dfastate_t *)((int)&prVar38->hash + 1)" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&prVar38->hash + 1)" ( (binary_expression "(int)&prVar38->hash + 1" (cast_expression "(int)&prVar38->hash" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prVar38->hash" & (field_expression "prVar38->hash" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "pprVar22 = (re_dfastate_t **)(**(code **)(puVar56 + 0x28450))((int)prStack_1f0 * 4);" (assignment_expression "pprVar22 = (re_dfastate_t **)(**(code **)(puVar56 + 0x28450))((int)prStack_1f0 * 4)" identifier = (cast_expression "(re_dfastate_t **)(**(code **)(puVar56 + 0x28450))((int)prStack_1f0 * 4)" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "(**(code **)(puVar56 + 0x28450))((int)prStack_1f0 * 4)" (parenthesized_expression "(**(code **)(puVar56 + 0x28450))" ( (pointer_expression "**(code **)(puVar56 + 0x28450)" * (pointer_expression "*(code **)(puVar56 + 0x28450)" * (cast_expression "(code **)(puVar56 + 0x28450)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x28450)" ( (binary_expression "puVar56 + 0x28450" identifier + number_literal) ))))) )) (argument_list "((int)prStack_1f0 * 4)" ( (binary_expression "(int)prStack_1f0 * 4" (cast_expression "(int)prStack_1f0" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ))))) ;) (if_statement "if (pprVar22 == (re_dfastate_t **)0x0) goto LAB_0004dbf8;" if (parenthesized_expression "(pprVar22 == (re_dfastate_t **)0x0)" ( (binary_expression "pprVar22 == (re_dfastate_t **)0x0" identifier == (cast_expression "(re_dfastate_t **)0x0" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (goto_statement "goto LAB_0004dbf8;" goto statement_identifier ;)) (if_statement "if (*(Idx *)(uVar44 + 0x4c) == 0) {\n                  rStack_160.limited_states = (re_dfastate_t **)0x0;\n                  rStack_160.limits.alloc = 0;\n                  rStack_160.limits.nelem = 0;\n                  rStack_160.limits.elems = (Idx *)0x0;\n                  rStack_160.sifted_states = pprVar22;\n                  rStack_160.last_node = (Idx)pIVar23;\n                  rStack_160.last_str_idx = (Idx)prVar38;\n                  prStack_1e4 = (re_dfastate_t *)\n                                sift_states_backward\n                                          ((re_match_context_t *)auStack_144,\n                                           (re_sift_context_t *)(auStack_168 + 8));\n                  (**(code **)(puVar56 + 0x28520))(rStack_160.limits.elems);\n                  if (prStack_1e4 == (re_dfastate_t *)0x0) {\n                    if (*pprVar22 == (re_dfastate_t *)0x0) {\n                      (**(code **)(puVar56 + 0x28520))(pprVar22);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar56 + 0x28520))(auStack_144._100_4_);\n                    auStack_144._92_4_ = prVar38;\n                    auStack_144._96_4_ = pIVar23;\n                    auStack_144._100_4_ = pprVar22;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  pprStack_1ec = (re_dfastate_t **)0x0;\n                }\n                else {\n                  pprStack_1ec = (re_dfastate_t **)\n                                 (**(code **)(puVar56 + 0x28450))((int)prStack_1f0 * 4);\n                  if (pprStack_1ec == (re_dfastate_t **)0x0) {\n                    (**(code **)(puVar56 + 0x28520))(pprVar22);\n                    prStack_1e4 = (re_dfastate_t *)0xc;\n                    pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar35 = *(int *)(puVar56 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar56 + 0x283f8))(pprStack_1ec,0,(int)prStack_1f0 * 4);\n                    rStack_160.limits.alloc = 0;\n                    rStack_160.limits.nelem = 0;\n                    rStack_160.limits.elems = (Idx *)0x0;\n                    rStack_160.sifted_states = pprVar22;\n                    rStack_160.limited_states = pprStack_1ec;\n                    rStack_160.last_node = (Idx)pIVar23;\n                    rStack_160.last_str_idx = (Idx)prVar38;\n                    prStack_1e4 = (re_dfastate_t *)\n                                  (*(code *)(iVar35 + -0x2cf4))\n                                            ((re_match_context_t *)auStack_144,auStack_168 + 8);\n                    (**(code **)(puVar56 + 0x28520))(rStack_160.limits.elems);\n                    if (prStack_1e4 != (re_dfastate_t *)0x0) break;\n                    if ((*pprVar22 != (re_dfastate_t *)0x0) ||\n                       (*pprStack_1ec != (re_dfastate_t *)0x0)) {\n                      prStack_1e4 = (re_dfastate_t *)\n                                    merge_state_array((re_dfa_t *)uVar44,pprVar22,pprStack_1ec,\n                                                      (Idx)prStack_1f0);\n                      (**(code **)(puVar56 + 0x28520))(pprStack_1ec);\n                      if (prStack_1e4 != (re_dfastate_t *)0x0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    iVar19 = auStack_144._100_4_ + (int)prStack_1f0 * 4 + -4;\n                    prStack_1f0 = prVar38;\n                    while( true ) {\n                      prVar38 = (re_dfastate_t *)&prStack_1f0[-1].field_0x37;\n                      if (prVar38 == (re_dfastate_t *)0xffffffff) {\n                        (**(code **)(puVar56 + 0x28520))(pprVar22);\n                        (**(code **)(puVar56 + 0x28520))(pprStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar20 = *(int *)(iVar19 + -4);\n                      if ((iVar20 != 0) && ((*(byte *)(iVar20 + 0x34) & 8) != 0)) break;\n                      iVar19 = iVar19 + -4;\n                      prStack_1f0 = prVar38;\n                    }\n                    pIVar23 = (Idx *)(*pcVar55)((re_match_context_t *)auStack_144,\n                                                *(undefined4 *)(iVar20 + 8),iVar20 + 0xc,prVar38);\n                  }\n                }" if (parenthesized_expression "(*(Idx *)(uVar44 + 0x4c) == 0)" ( (binary_expression "*(Idx *)(uVar44 + 0x4c) == 0" (pointer_expression "*(Idx *)(uVar44 + 0x4c)" * (cast_expression "(Idx *)(uVar44 + 0x4c)" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar44 + 0x4c)" ( (binary_expression "uVar44 + 0x4c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                  rStack_160.limited_states = (re_dfastate_t **)0x0;\n                  rStack_160.limits.alloc = 0;\n                  rStack_160.limits.nelem = 0;\n                  rStack_160.limits.elems = (Idx *)0x0;\n                  rStack_160.sifted_states = pprVar22;\n                  rStack_160.last_node = (Idx)pIVar23;\n                  rStack_160.last_str_idx = (Idx)prVar38;\n                  prStack_1e4 = (re_dfastate_t *)\n                                sift_states_backward\n                                          ((re_match_context_t *)auStack_144,\n                                           (re_sift_context_t *)(auStack_168 + 8));\n                  (**(code **)(puVar56 + 0x28520))(rStack_160.limits.elems);\n                  if (prStack_1e4 == (re_dfastate_t *)0x0) {\n                    if (*pprVar22 == (re_dfastate_t *)0x0) {\n                      (**(code **)(puVar56 + 0x28520))(pprVar22);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar56 + 0x28520))(auStack_144._100_4_);\n                    auStack_144._92_4_ = prVar38;\n                    auStack_144._96_4_ = pIVar23;\n                    auStack_144._100_4_ = pprVar22;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  pprStack_1ec = (re_dfastate_t **)0x0;\n                }" { (expression_statement "rStack_160.limited_states = (re_dfastate_t **)0x0;" (assignment_expression "rStack_160.limited_states = (re_dfastate_t **)0x0" (field_expression "rStack_160.limited_states" identifier . field_identifier) = (cast_expression "(re_dfastate_t **)0x0" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "rStack_160.limits.alloc = 0;" (assignment_expression "rStack_160.limits.alloc = 0" (field_expression "rStack_160.limits.alloc" (field_expression "rStack_160.limits" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "rStack_160.limits.nelem = 0;" (assignment_expression "rStack_160.limits.nelem = 0" (field_expression "rStack_160.limits.nelem" (field_expression "rStack_160.limits" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "rStack_160.limits.elems = (Idx *)0x0;" (assignment_expression "rStack_160.limits.elems = (Idx *)0x0" (field_expression "rStack_160.limits.elems" (field_expression "rStack_160.limits" identifier . field_identifier) . field_identifier) = (cast_expression "(Idx *)0x0" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "rStack_160.sifted_states = pprVar22;" (assignment_expression "rStack_160.sifted_states = pprVar22" (field_expression "rStack_160.sifted_states" identifier . field_identifier) = identifier) ;) (expression_statement "rStack_160.last_node = (Idx)pIVar23;" (assignment_expression "rStack_160.last_node = (Idx)pIVar23" (field_expression "rStack_160.last_node" identifier . field_identifier) = (cast_expression "(Idx)pIVar23" ( (type_descriptor "Idx" type_identifier) ) identifier)) ;) (expression_statement "rStack_160.last_str_idx = (Idx)prVar38;" (assignment_expression "rStack_160.last_str_idx = (Idx)prVar38" (field_expression "rStack_160.last_str_idx" identifier . field_identifier) = (cast_expression "(Idx)prVar38" ( (type_descriptor "Idx" type_identifier) ) identifier)) ;) (expression_statement "prStack_1e4 = (re_dfastate_t *)\n                                sift_states_backward\n                                          ((re_match_context_t *)auStack_144,\n                                           (re_sift_context_t *)(auStack_168 + 8));" (assignment_expression "prStack_1e4 = (re_dfastate_t *)\n                                sift_states_backward\n                                          ((re_match_context_t *)auStack_144,\n                                           (re_sift_context_t *)(auStack_168 + 8))" identifier = (cast_expression "(re_dfastate_t *)\n                                sift_states_backward\n                                          ((re_match_context_t *)auStack_144,\n                                           (re_sift_context_t *)(auStack_168 + 8))" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "sift_states_backward\n                                          ((re_match_context_t *)auStack_144,\n                                           (re_sift_context_t *)(auStack_168 + 8))" identifier (argument_list "((re_match_context_t *)auStack_144,\n                                           (re_sift_context_t *)(auStack_168 + 8))" ( (cast_expression "(re_match_context_t *)auStack_144" ( (type_descriptor "re_match_context_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(re_sift_context_t *)(auStack_168 + 8)" ( (type_descriptor "re_sift_context_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(auStack_168 + 8)" ( (binary_expression "auStack_168 + 8" identifier + number_literal) ))) ))))) ;) (expression_statement "(**(code **)(puVar56 + 0x28520))(rStack_160.limits.elems);" (call_expression "(**(code **)(puVar56 + 0x28520))(rStack_160.limits.elems)" (parenthesized_expression "(**(code **)(puVar56 + 0x28520))" ( (pointer_expression "**(code **)(puVar56 + 0x28520)" * (pointer_expression "*(code **)(puVar56 + 0x28520)" * (cast_expression "(code **)(puVar56 + 0x28520)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x28520)" ( (binary_expression "puVar56 + 0x28520" identifier + number_literal) ))))) )) (argument_list "(rStack_160.limits.elems)" ( (field_expression "rStack_160.limits.elems" (field_expression "rStack_160.limits" identifier . field_identifier) . field_identifier) ))) ;) (if_statement "if (prStack_1e4 == (re_dfastate_t *)0x0) {\n                    if (*pprVar22 == (re_dfastate_t *)0x0) {\n                      (**(code **)(puVar56 + 0x28520))(pprVar22);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar56 + 0x28520))(auStack_144._100_4_);\n                    auStack_144._92_4_ = prVar38;\n                    auStack_144._96_4_ = pIVar23;\n                    auStack_144._100_4_ = pprVar22;\n                    goto LAB_0004e7e0;\n                  }" if (parenthesized_expression "(prStack_1e4 == (re_dfastate_t *)0x0)" ( (binary_expression "prStack_1e4 == (re_dfastate_t *)0x0" identifier == (cast_expression "(re_dfastate_t *)0x0" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    if (*pprVar22 == (re_dfastate_t *)0x0) {\n                      (**(code **)(puVar56 + 0x28520))(pprVar22);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar56 + 0x28520))(auStack_144._100_4_);\n                    auStack_144._92_4_ = prVar38;\n                    auStack_144._96_4_ = pIVar23;\n                    auStack_144._100_4_ = pprVar22;\n                    goto LAB_0004e7e0;\n                  }" { (if_statement "if (*pprVar22 == (re_dfastate_t *)0x0) {\n                      (**(code **)(puVar56 + 0x28520))(pprVar22);\n                      goto LAB_0004e2d4;\n                    }" if (parenthesized_expression "(*pprVar22 == (re_dfastate_t *)0x0)" ( (binary_expression "*pprVar22 == (re_dfastate_t *)0x0" (pointer_expression "*pprVar22" * identifier) == (cast_expression "(re_dfastate_t *)0x0" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                      (**(code **)(puVar56 + 0x28520))(pprVar22);\n                      goto LAB_0004e2d4;\n                    }" { (expression_statement "(**(code **)(puVar56 + 0x28520))(pprVar22);" (call_expression "(**(code **)(puVar56 + 0x28520))(pprVar22)" (parenthesized_expression "(**(code **)(puVar56 + 0x28520))" ( (pointer_expression "**(code **)(puVar56 + 0x28520)" * (pointer_expression "*(code **)(puVar56 + 0x28520)" * (cast_expression "(code **)(puVar56 + 0x28520)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x28520)" ( (binary_expression "puVar56 + 0x28520" identifier + number_literal) ))))) )) (argument_list "(pprVar22)" ( identifier ))) ;) (goto_statement "goto LAB_0004e2d4;" goto statement_identifier ;) })) (labeled_statement "LAB_0004e9f8:\n                    (**(code **)(puVar56 + 0x28520))(auStack_144._100_4_);" statement_identifier : (expression_statement "(**(code **)(puVar56 + 0x28520))(auStack_144._100_4_);" (call_expression "(**(code **)(puVar56 + 0x28520))(auStack_144._100_4_)" (parenthesized_expression "(**(code **)(puVar56 + 0x28520))" ( (pointer_expression "**(code **)(puVar56 + 0x28520)" * (pointer_expression "*(code **)(puVar56 + 0x28520)" * (cast_expression "(code **)(puVar56 + 0x28520)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x28520)" ( (binary_expression "puVar56 + 0x28520" identifier + number_literal) ))))) )) (argument_list "(auStack_144._100_4_)" ( (field_expression "auStack_144._100_4_" identifier . field_identifier) ))) ;)) (expression_statement "auStack_144._92_4_ = prVar38;" (assignment_expression "auStack_144._92_4_ = prVar38" (field_expression "auStack_144._92_4_" identifier . field_identifier) = identifier) ;) (expression_statement "auStack_144._96_4_ = pIVar23;" (assignment_expression "auStack_144._96_4_ = pIVar23" (field_expression "auStack_144._96_4_" identifier . field_identifier) = identifier) ;) (expression_statement "auStack_144._100_4_ = pprVar22;" (assignment_expression "auStack_144._100_4_ = pprVar22" (field_expression "auStack_144._100_4_" identifier . field_identifier) = identifier) ;) (goto_statement "goto LAB_0004e7e0;" goto statement_identifier ;) })) (labeled_statement "LAB_0004ed18:\n                  pprStack_1ec = (re_dfastate_t **)0x0;" statement_identifier : (expression_statement "pprStack_1ec = (re_dfastate_t **)0x0;" (assignment_expression "pprStack_1ec = (re_dfastate_t **)0x0" identifier = (cast_expression "(re_dfastate_t **)0x0" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;)) }) (else_clause "else {\n                  pprStack_1ec = (re_dfastate_t **)\n                                 (**(code **)(puVar56 + 0x28450))((int)prStack_1f0 * 4);\n                  if (pprStack_1ec == (re_dfastate_t **)0x0) {\n                    (**(code **)(puVar56 + 0x28520))(pprVar22);\n                    prStack_1e4 = (re_dfastate_t *)0xc;\n                    pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar35 = *(int *)(puVar56 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar56 + 0x283f8))(pprStack_1ec,0,(int)prStack_1f0 * 4);\n                    rStack_160.limits.alloc = 0;\n                    rStack_160.limits.nelem = 0;\n                    rStack_160.limits.elems = (Idx *)0x0;\n                    rStack_160.sifted_states = pprVar22;\n                    rStack_160.limited_states = pprStack_1ec;\n                    rStack_160.last_node = (Idx)pIVar23;\n                    rStack_160.last_str_idx = (Idx)prVar38;\n                    prStack_1e4 = (re_dfastate_t *)\n                                  (*(code *)(iVar35 + -0x2cf4))\n                                            ((re_match_context_t *)auStack_144,auStack_168 + 8);\n                    (**(code **)(puVar56 + 0x28520))(rStack_160.limits.elems);\n                    if (prStack_1e4 != (re_dfastate_t *)0x0) break;\n                    if ((*pprVar22 != (re_dfastate_t *)0x0) ||\n                       (*pprStack_1ec != (re_dfastate_t *)0x0)) {\n                      prStack_1e4 = (re_dfastate_t *)\n                                    merge_state_array((re_dfa_t *)uVar44,pprVar22,pprStack_1ec,\n                                                      (Idx)prStack_1f0);\n                      (**(code **)(puVar56 + 0x28520))(pprStack_1ec);\n                      if (prStack_1e4 != (re_dfastate_t *)0x0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    iVar19 = auStack_144._100_4_ + (int)prStack_1f0 * 4 + -4;\n                    prStack_1f0 = prVar38;\n                    while( true ) {\n                      prVar38 = (re_dfastate_t *)&prStack_1f0[-1].field_0x37;\n                      if (prVar38 == (re_dfastate_t *)0xffffffff) {\n                        (**(code **)(puVar56 + 0x28520))(pprVar22);\n                        (**(code **)(puVar56 + 0x28520))(pprStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar20 = *(int *)(iVar19 + -4);\n                      if ((iVar20 != 0) && ((*(byte *)(iVar20 + 0x34) & 8) != 0)) break;\n                      iVar19 = iVar19 + -4;\n                      prStack_1f0 = prVar38;\n                    }\n                    pIVar23 = (Idx *)(*pcVar55)((re_match_context_t *)auStack_144,\n                                                *(undefined4 *)(iVar20 + 8),iVar20 + 0xc,prVar38);\n                  }\n                }" else (compound_statement "{\n                  pprStack_1ec = (re_dfastate_t **)\n                                 (**(code **)(puVar56 + 0x28450))((int)prStack_1f0 * 4);\n                  if (pprStack_1ec == (re_dfastate_t **)0x0) {\n                    (**(code **)(puVar56 + 0x28520))(pprVar22);\n                    prStack_1e4 = (re_dfastate_t *)0xc;\n                    pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar35 = *(int *)(puVar56 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar56 + 0x283f8))(pprStack_1ec,0,(int)prStack_1f0 * 4);\n                    rStack_160.limits.alloc = 0;\n                    rStack_160.limits.nelem = 0;\n                    rStack_160.limits.elems = (Idx *)0x0;\n                    rStack_160.sifted_states = pprVar22;\n                    rStack_160.limited_states = pprStack_1ec;\n                    rStack_160.last_node = (Idx)pIVar23;\n                    rStack_160.last_str_idx = (Idx)prVar38;\n                    prStack_1e4 = (re_dfastate_t *)\n                                  (*(code *)(iVar35 + -0x2cf4))\n                                            ((re_match_context_t *)auStack_144,auStack_168 + 8);\n                    (**(code **)(puVar56 + 0x28520))(rStack_160.limits.elems);\n                    if (prStack_1e4 != (re_dfastate_t *)0x0) break;\n                    if ((*pprVar22 != (re_dfastate_t *)0x0) ||\n                       (*pprStack_1ec != (re_dfastate_t *)0x0)) {\n                      prStack_1e4 = (re_dfastate_t *)\n                                    merge_state_array((re_dfa_t *)uVar44,pprVar22,pprStack_1ec,\n                                                      (Idx)prStack_1f0);\n                      (**(code **)(puVar56 + 0x28520))(pprStack_1ec);\n                      if (prStack_1e4 != (re_dfastate_t *)0x0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    iVar19 = auStack_144._100_4_ + (int)prStack_1f0 * 4 + -4;\n                    prStack_1f0 = prVar38;\n                    while( true ) {\n                      prVar38 = (re_dfastate_t *)&prStack_1f0[-1].field_0x37;\n                      if (prVar38 == (re_dfastate_t *)0xffffffff) {\n                        (**(code **)(puVar56 + 0x28520))(pprVar22);\n                        (**(code **)(puVar56 + 0x28520))(pprStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar20 = *(int *)(iVar19 + -4);\n                      if ((iVar20 != 0) && ((*(byte *)(iVar20 + 0x34) & 8) != 0)) break;\n                      iVar19 = iVar19 + -4;\n                      prStack_1f0 = prVar38;\n                    }\n                    pIVar23 = (Idx *)(*pcVar55)((re_match_context_t *)auStack_144,\n                                                *(undefined4 *)(iVar20 + 8),iVar20 + 0xc,prVar38);\n                  }\n                }" { (expression_statement "pprStack_1ec = (re_dfastate_t **)\n                                 (**(code **)(puVar56 + 0x28450))((int)prStack_1f0 * 4);" (assignment_expression "pprStack_1ec = (re_dfastate_t **)\n                                 (**(code **)(puVar56 + 0x28450))((int)prStack_1f0 * 4)" identifier = (cast_expression "(re_dfastate_t **)\n                                 (**(code **)(puVar56 + 0x28450))((int)prStack_1f0 * 4)" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "(**(code **)(puVar56 + 0x28450))((int)prStack_1f0 * 4)" (parenthesized_expression "(**(code **)(puVar56 + 0x28450))" ( (pointer_expression "**(code **)(puVar56 + 0x28450)" * (pointer_expression "*(code **)(puVar56 + 0x28450)" * (cast_expression "(code **)(puVar56 + 0x28450)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x28450)" ( (binary_expression "puVar56 + 0x28450" identifier + number_literal) ))))) )) (argument_list "((int)prStack_1f0 * 4)" ( (binary_expression "(int)prStack_1f0 * 4" (cast_expression "(int)prStack_1f0" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ))))) ;) (if_statement "if (pprStack_1ec == (re_dfastate_t **)0x0) {\n                    (**(code **)(puVar56 + 0x28520))(pprVar22);\n                    prStack_1e4 = (re_dfastate_t *)0xc;\n                    pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n                    goto LAB_0004dbbc;\n                  }" if (parenthesized_expression "(pprStack_1ec == (re_dfastate_t **)0x0)" ( (binary_expression "pprStack_1ec == (re_dfastate_t **)0x0" identifier == (cast_expression "(re_dfastate_t **)0x0" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n                    (**(code **)(puVar56 + 0x28520))(pprVar22);\n                    prStack_1e4 = (re_dfastate_t *)0xc;\n                    pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n                    goto LAB_0004dbbc;\n                  }" { (expression_statement "(**(code **)(puVar56 + 0x28520))(pprVar22);" (call_expression "(**(code **)(puVar56 + 0x28520))(pprVar22)" (parenthesized_expression "(**(code **)(puVar56 + 0x28520))" ( (pointer_expression "**(code **)(puVar56 + 0x28520)" * (pointer_expression "*(code **)(puVar56 + 0x28520)" * (cast_expression "(code **)(puVar56 + 0x28520)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x28520)" ( (binary_expression "puVar56 + 0x28520" identifier + number_literal) ))))) )) (argument_list "(pprVar22)" ( identifier ))) ;) (expression_statement "prStack_1e4 = (re_dfastate_t *)0xc;" (assignment_expression "prStack_1e4 = (re_dfastate_t *)0xc" identifier = (cast_expression "(re_dfastate_t *)0xc" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pprVar22 = (re_dfastate_t **)auStack_144._100_4_;" (assignment_expression "pprVar22 = (re_dfastate_t **)auStack_144._100_4_" identifier = (cast_expression "(re_dfastate_t **)auStack_144._100_4_" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (field_expression "auStack_144._100_4_" identifier . field_identifier))) ;) (goto_statement "goto LAB_0004dbbc;" goto statement_identifier ;) })) (expression_statement "iVar35 = *(int *)(puVar56 + 0x2829c);" (assignment_expression "iVar35 = *(int *)(puVar56 + 0x2829c)" identifier = (pointer_expression "*(int *)(puVar56 + 0x2829c)" * (cast_expression "(int *)(puVar56 + 0x2829c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x2829c)" ( (binary_expression "puVar56 + 0x2829c" identifier + number_literal) ))))) ;) (while_statement "while( true ) {\n                    (**(code **)(puVar56 + 0x283f8))(pprStack_1ec,0,(int)prStack_1f0 * 4);\n                    rStack_160.limits.alloc = 0;\n                    rStack_160.limits.nelem = 0;\n                    rStack_160.limits.elems = (Idx *)0x0;\n                    rStack_160.sifted_states = pprVar22;\n                    rStack_160.limited_states = pprStack_1ec;\n                    rStack_160.last_node = (Idx)pIVar23;\n                    rStack_160.last_str_idx = (Idx)prVar38;\n                    prStack_1e4 = (re_dfastate_t *)\n                                  (*(code *)(iVar35 + -0x2cf4))\n                                            ((re_match_context_t *)auStack_144,auStack_168 + 8);\n                    (**(code **)(puVar56 + 0x28520))(rStack_160.limits.elems);\n                    if (prStack_1e4 != (re_dfastate_t *)0x0) break;\n                    if ((*pprVar22 != (re_dfastate_t *)0x0) ||\n                       (*pprStack_1ec != (re_dfastate_t *)0x0)) {\n                      prStack_1e4 = (re_dfastate_t *)\n                                    merge_state_array((re_dfa_t *)uVar44,pprVar22,pprStack_1ec,\n                                                      (Idx)prStack_1f0);\n                      (**(code **)(puVar56 + 0x28520))(pprStack_1ec);\n                      if (prStack_1e4 != (re_dfastate_t *)0x0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    iVar19 = auStack_144._100_4_ + (int)prStack_1f0 * 4 + -4;\n                    prStack_1f0 = prVar38;\n                    while( true ) {\n                      prVar38 = (re_dfastate_t *)&prStack_1f0[-1].field_0x37;\n                      if (prVar38 == (re_dfastate_t *)0xffffffff) {\n                        (**(code **)(puVar56 + 0x28520))(pprVar22);\n                        (**(code **)(puVar56 + 0x28520))(pprStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar20 = *(int *)(iVar19 + -4);\n                      if ((iVar20 != 0) && ((*(byte *)(iVar20 + 0x34) & 8) != 0)) break;\n                      iVar19 = iVar19 + -4;\n                      prStack_1f0 = prVar38;\n                    }\n                    pIVar23 = (Idx *)(*pcVar55)((re_match_context_t *)auStack_144,\n                                                *(undefined4 *)(iVar20 + 8),iVar20 + 0xc,prVar38);\n                  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                    (**(code **)(puVar56 + 0x283f8))(pprStack_1ec,0,(int)prStack_1f0 * 4);\n                    rStack_160.limits.alloc = 0;\n                    rStack_160.limits.nelem = 0;\n                    rStack_160.limits.elems = (Idx *)0x0;\n                    rStack_160.sifted_states = pprVar22;\n                    rStack_160.limited_states = pprStack_1ec;\n                    rStack_160.last_node = (Idx)pIVar23;\n                    rStack_160.last_str_idx = (Idx)prVar38;\n                    prStack_1e4 = (re_dfastate_t *)\n                                  (*(code *)(iVar35 + -0x2cf4))\n                                            ((re_match_context_t *)auStack_144,auStack_168 + 8);\n                    (**(code **)(puVar56 + 0x28520))(rStack_160.limits.elems);\n                    if (prStack_1e4 != (re_dfastate_t *)0x0) break;\n                    if ((*pprVar22 != (re_dfastate_t *)0x0) ||\n                       (*pprStack_1ec != (re_dfastate_t *)0x0)) {\n                      prStack_1e4 = (re_dfastate_t *)\n                                    merge_state_array((re_dfa_t *)uVar44,pprVar22,pprStack_1ec,\n                                                      (Idx)prStack_1f0);\n                      (**(code **)(puVar56 + 0x28520))(pprStack_1ec);\n                      if (prStack_1e4 != (re_dfastate_t *)0x0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    iVar19 = auStack_144._100_4_ + (int)prStack_1f0 * 4 + -4;\n                    prStack_1f0 = prVar38;\n                    while( true ) {\n                      prVar38 = (re_dfastate_t *)&prStack_1f0[-1].field_0x37;\n                      if (prVar38 == (re_dfastate_t *)0xffffffff) {\n                        (**(code **)(puVar56 + 0x28520))(pprVar22);\n                        (**(code **)(puVar56 + 0x28520))(pprStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar20 = *(int *)(iVar19 + -4);\n                      if ((iVar20 != 0) && ((*(byte *)(iVar20 + 0x34) & 8) != 0)) break;\n                      iVar19 = iVar19 + -4;\n                      prStack_1f0 = prVar38;\n                    }\n                    pIVar23 = (Idx *)(*pcVar55)((re_match_context_t *)auStack_144,\n                                                *(undefined4 *)(iVar20 + 8),iVar20 + 0xc,prVar38);\n                  }" { (expression_statement "(**(code **)(puVar56 + 0x283f8))(pprStack_1ec,0,(int)prStack_1f0 * 4);" (call_expression "(**(code **)(puVar56 + 0x283f8))(pprStack_1ec,0,(int)prStack_1f0 * 4)" (parenthesized_expression "(**(code **)(puVar56 + 0x283f8))" ( (pointer_expression "**(code **)(puVar56 + 0x283f8)" * (pointer_expression "*(code **)(puVar56 + 0x283f8)" * (cast_expression "(code **)(puVar56 + 0x283f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x283f8)" ( (binary_expression "puVar56 + 0x283f8" identifier + number_literal) ))))) )) (argument_list "(pprStack_1ec,0,(int)prStack_1f0 * 4)" ( identifier , number_literal , (binary_expression "(int)prStack_1f0 * 4" (cast_expression "(int)prStack_1f0" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ))) ;) (expression_statement "rStack_160.limits.alloc = 0;" (assignment_expression "rStack_160.limits.alloc = 0" (field_expression "rStack_160.limits.alloc" (field_expression "rStack_160.limits" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "rStack_160.limits.nelem = 0;" (assignment_expression "rStack_160.limits.nelem = 0" (field_expression "rStack_160.limits.nelem" (field_expression "rStack_160.limits" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "rStack_160.limits.elems = (Idx *)0x0;" (assignment_expression "rStack_160.limits.elems = (Idx *)0x0" (field_expression "rStack_160.limits.elems" (field_expression "rStack_160.limits" identifier . field_identifier) . field_identifier) = (cast_expression "(Idx *)0x0" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "rStack_160.sifted_states = pprVar22;" (assignment_expression "rStack_160.sifted_states = pprVar22" (field_expression "rStack_160.sifted_states" identifier . field_identifier) = identifier) ;) (expression_statement "rStack_160.limited_states = pprStack_1ec;" (assignment_expression "rStack_160.limited_states = pprStack_1ec" (field_expression "rStack_160.limited_states" identifier . field_identifier) = identifier) ;) (expression_statement "rStack_160.last_node = (Idx)pIVar23;" (assignment_expression "rStack_160.last_node = (Idx)pIVar23" (field_expression "rStack_160.last_node" identifier . field_identifier) = (cast_expression "(Idx)pIVar23" ( (type_descriptor "Idx" type_identifier) ) identifier)) ;) (expression_statement "rStack_160.last_str_idx = (Idx)prVar38;" (assignment_expression "rStack_160.last_str_idx = (Idx)prVar38" (field_expression "rStack_160.last_str_idx" identifier . field_identifier) = (cast_expression "(Idx)prVar38" ( (type_descriptor "Idx" type_identifier) ) identifier)) ;) (expression_statement "prStack_1e4 = (re_dfastate_t *)\n                                  (*(code *)(iVar35 + -0x2cf4))\n                                            ((re_match_context_t *)auStack_144,auStack_168 + 8);" (assignment_expression "prStack_1e4 = (re_dfastate_t *)\n                                  (*(code *)(iVar35 + -0x2cf4))\n                                            ((re_match_context_t *)auStack_144,auStack_168 + 8)" identifier = (cast_expression "(re_dfastate_t *)\n                                  (*(code *)(iVar35 + -0x2cf4))\n                                            ((re_match_context_t *)auStack_144,auStack_168 + 8)" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(iVar35 + -0x2cf4))\n                                            ((re_match_context_t *)auStack_144,auStack_168 + 8)" (parenthesized_expression "(*(code *)(iVar35 + -0x2cf4))" ( (pointer_expression "*(code *)(iVar35 + -0x2cf4)" * (cast_expression "(code *)(iVar35 + -0x2cf4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar35 + -0x2cf4)" ( (binary_expression "iVar35 + -0x2cf4" identifier + number_literal) )))) )) (argument_list "((re_match_context_t *)auStack_144,auStack_168 + 8)" ( (cast_expression "(re_match_context_t *)auStack_144" ( (type_descriptor "re_match_context_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (binary_expression "auStack_168 + 8" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(puVar56 + 0x28520))(rStack_160.limits.elems);" (call_expression "(**(code **)(puVar56 + 0x28520))(rStack_160.limits.elems)" (parenthesized_expression "(**(code **)(puVar56 + 0x28520))" ( (pointer_expression "**(code **)(puVar56 + 0x28520)" * (pointer_expression "*(code **)(puVar56 + 0x28520)" * (cast_expression "(code **)(puVar56 + 0x28520)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x28520)" ( (binary_expression "puVar56 + 0x28520" identifier + number_literal) ))))) )) (argument_list "(rStack_160.limits.elems)" ( (field_expression "rStack_160.limits.elems" (field_expression "rStack_160.limits" identifier . field_identifier) . field_identifier) ))) ;) (if_statement "if (prStack_1e4 != (re_dfastate_t *)0x0) break;" if (parenthesized_expression "(prStack_1e4 != (re_dfastate_t *)0x0)" ( (binary_expression "prStack_1e4 != (re_dfastate_t *)0x0" identifier != (cast_expression "(re_dfastate_t *)0x0" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (if_statement "if ((*pprVar22 != (re_dfastate_t *)0x0) ||\n                       (*pprStack_1ec != (re_dfastate_t *)0x0)) {\n                      prStack_1e4 = (re_dfastate_t *)\n                                    merge_state_array((re_dfa_t *)uVar44,pprVar22,pprStack_1ec,\n                                                      (Idx)prStack_1f0);\n                      (**(code **)(puVar56 + 0x28520))(pprStack_1ec);\n                      if (prStack_1e4 != (re_dfastate_t *)0x0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }" if (parenthesized_expression "((*pprVar22 != (re_dfastate_t *)0x0) ||\n                       (*pprStack_1ec != (re_dfastate_t *)0x0))" ( (binary_expression "(*pprVar22 != (re_dfastate_t *)0x0) ||\n                       (*pprStack_1ec != (re_dfastate_t *)0x0)" (parenthesized_expression "(*pprVar22 != (re_dfastate_t *)0x0)" ( (binary_expression "*pprVar22 != (re_dfastate_t *)0x0" (pointer_expression "*pprVar22" * identifier) != (cast_expression "(re_dfastate_t *)0x0" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(*pprStack_1ec != (re_dfastate_t *)0x0)" ( (binary_expression "*pprStack_1ec != (re_dfastate_t *)0x0" (pointer_expression "*pprStack_1ec" * identifier) != (cast_expression "(re_dfastate_t *)0x0" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n                      prStack_1e4 = (re_dfastate_t *)\n                                    merge_state_array((re_dfa_t *)uVar44,pprVar22,pprStack_1ec,\n                                                      (Idx)prStack_1f0);\n                      (**(code **)(puVar56 + 0x28520))(pprStack_1ec);\n                      if (prStack_1e4 != (re_dfastate_t *)0x0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }" { (expression_statement "prStack_1e4 = (re_dfastate_t *)\n                                    merge_state_array((re_dfa_t *)uVar44,pprVar22,pprStack_1ec,\n                                                      (Idx)prStack_1f0);" (assignment_expression "prStack_1e4 = (re_dfastate_t *)\n                                    merge_state_array((re_dfa_t *)uVar44,pprVar22,pprStack_1ec,\n                                                      (Idx)prStack_1f0)" identifier = (cast_expression "(re_dfastate_t *)\n                                    merge_state_array((re_dfa_t *)uVar44,pprVar22,pprStack_1ec,\n                                                      (Idx)prStack_1f0)" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "merge_state_array((re_dfa_t *)uVar44,pprVar22,pprStack_1ec,\n                                                      (Idx)prStack_1f0)" identifier (argument_list "((re_dfa_t *)uVar44,pprVar22,pprStack_1ec,\n                                                      (Idx)prStack_1f0)" ( (cast_expression "(re_dfa_t *)uVar44" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , identifier , (cast_expression "(Idx)prStack_1f0" ( (type_descriptor "Idx" type_identifier) ) identifier) ))))) ;) (expression_statement "(**(code **)(puVar56 + 0x28520))(pprStack_1ec);" (call_expression "(**(code **)(puVar56 + 0x28520))(pprStack_1ec)" (parenthesized_expression "(**(code **)(puVar56 + 0x28520))" ( (pointer_expression "**(code **)(puVar56 + 0x28520)" * (pointer_expression "*(code **)(puVar56 + 0x28520)" * (cast_expression "(code **)(puVar56 + 0x28520)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x28520)" ( (binary_expression "puVar56 + 0x28520" identifier + number_literal) ))))) )) (argument_list "(pprStack_1ec)" ( identifier ))) ;) (if_statement "if (prStack_1e4 != (re_dfastate_t *)0x0) goto LAB_0004ed18;" if (parenthesized_expression "(prStack_1e4 != (re_dfastate_t *)0x0)" ( (binary_expression "prStack_1e4 != (re_dfastate_t *)0x0" identifier != (cast_expression "(re_dfastate_t *)0x0" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004ed18;" goto statement_identifier ;)) (goto_statement "goto LAB_0004e9f8;" goto statement_identifier ;) })) (expression_statement "iVar19 = auStack_144._100_4_ + (int)prStack_1f0 * 4 + -4;" (assignment_expression "iVar19 = auStack_144._100_4_ + (int)prStack_1f0 * 4 + -4" identifier = (binary_expression "auStack_144._100_4_ + (int)prStack_1f0 * 4 + -4" (binary_expression "auStack_144._100_4_ + (int)prStack_1f0 * 4" (field_expression "auStack_144._100_4_" identifier . field_identifier) + (binary_expression "(int)prStack_1f0 * 4" (cast_expression "(int)prStack_1f0" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "prStack_1f0 = prVar38;" (assignment_expression "prStack_1f0 = prVar38" identifier = identifier) ;) (while_statement "while( true ) {\n                      prVar38 = (re_dfastate_t *)&prStack_1f0[-1].field_0x37;\n                      if (prVar38 == (re_dfastate_t *)0xffffffff) {\n                        (**(code **)(puVar56 + 0x28520))(pprVar22);\n                        (**(code **)(puVar56 + 0x28520))(pprStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar20 = *(int *)(iVar19 + -4);\n                      if ((iVar20 != 0) && ((*(byte *)(iVar20 + 0x34) & 8) != 0)) break;\n                      iVar19 = iVar19 + -4;\n                      prStack_1f0 = prVar38;\n                    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                      prVar38 = (re_dfastate_t *)&prStack_1f0[-1].field_0x37;\n                      if (prVar38 == (re_dfastate_t *)0xffffffff) {\n                        (**(code **)(puVar56 + 0x28520))(pprVar22);\n                        (**(code **)(puVar56 + 0x28520))(pprStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar20 = *(int *)(iVar19 + -4);\n                      if ((iVar20 != 0) && ((*(byte *)(iVar20 + 0x34) & 8) != 0)) break;\n                      iVar19 = iVar19 + -4;\n                      prStack_1f0 = prVar38;\n                    }" { (expression_statement "prVar38 = (re_dfastate_t *)&prStack_1f0[-1].field_0x37;" (assignment_expression "prVar38 = (re_dfastate_t *)&prStack_1f0[-1].field_0x37" identifier = (cast_expression "(re_dfastate_t *)&prStack_1f0[-1].field_0x37" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&prStack_1f0[-1].field_0x37" & (field_expression "prStack_1f0[-1].field_0x37" (subscript_expression "prStack_1f0[-1]" identifier [ number_literal ]) . field_identifier)))) ;) (if_statement "if (prVar38 == (re_dfastate_t *)0xffffffff) {\n                        (**(code **)(puVar56 + 0x28520))(pprVar22);\n                        (**(code **)(puVar56 + 0x28520))(pprStack_1ec);\n                        goto LAB_0004e2d4;\n                      }" if (parenthesized_expression "(prVar38 == (re_dfastate_t *)0xffffffff)" ( (binary_expression "prVar38 == (re_dfastate_t *)0xffffffff" identifier == (cast_expression "(re_dfastate_t *)0xffffffff" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                        (**(code **)(puVar56 + 0x28520))(pprVar22);\n                        (**(code **)(puVar56 + 0x28520))(pprStack_1ec);\n                        goto LAB_0004e2d4;\n                      }" { (expression_statement "(**(code **)(puVar56 + 0x28520))(pprVar22);" (call_expression "(**(code **)(puVar56 + 0x28520))(pprVar22)" (parenthesized_expression "(**(code **)(puVar56 + 0x28520))" ( (pointer_expression "**(code **)(puVar56 + 0x28520)" * (pointer_expression "*(code **)(puVar56 + 0x28520)" * (cast_expression "(code **)(puVar56 + 0x28520)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x28520)" ( (binary_expression "puVar56 + 0x28520" identifier + number_literal) ))))) )) (argument_list "(pprVar22)" ( identifier ))) ;) (expression_statement "(**(code **)(puVar56 + 0x28520))(pprStack_1ec);" (call_expression "(**(code **)(puVar56 + 0x28520))(pprStack_1ec)" (parenthesized_expression "(**(code **)(puVar56 + 0x28520))" ( (pointer_expression "**(code **)(puVar56 + 0x28520)" * (pointer_expression "*(code **)(puVar56 + 0x28520)" * (cast_expression "(code **)(puVar56 + 0x28520)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x28520)" ( (binary_expression "puVar56 + 0x28520" identifier + number_literal) ))))) )) (argument_list "(pprStack_1ec)" ( identifier ))) ;) (goto_statement "goto LAB_0004e2d4;" goto statement_identifier ;) })) (expression_statement "iVar20 = *(int *)(iVar19 + -4);" (assignment_expression "iVar20 = *(int *)(iVar19 + -4)" identifier = (pointer_expression "*(int *)(iVar19 + -4)" * (cast_expression "(int *)(iVar19 + -4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + -4)" ( (binary_expression "iVar19 + -4" identifier + number_literal) ))))) ;) (if_statement "if ((iVar20 != 0) && ((*(byte *)(iVar20 + 0x34) & 8) != 0)) break;" if (parenthesized_expression "((iVar20 != 0) && ((*(byte *)(iVar20 + 0x34) & 8) != 0))" ( (binary_expression "(iVar20 != 0) && ((*(byte *)(iVar20 + 0x34) & 8) != 0)" (parenthesized_expression "(iVar20 != 0)" ( (binary_expression "iVar20 != 0" identifier != number_literal) )) && (parenthesized_expression "((*(byte *)(iVar20 + 0x34) & 8) != 0)" ( (binary_expression "(*(byte *)(iVar20 + 0x34) & 8) != 0" (parenthesized_expression "(*(byte *)(iVar20 + 0x34) & 8)" ( (binary_expression "*(byte *)(iVar20 + 0x34) & 8" (pointer_expression "*(byte *)(iVar20 + 0x34)" * (cast_expression "(byte *)(iVar20 + 0x34)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x34)" ( (binary_expression "iVar20 + 0x34" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) (break_statement "break;" break ;)) (expression_statement "iVar19 = iVar19 + -4;" (assignment_expression "iVar19 = iVar19 + -4" identifier = (binary_expression "iVar19 + -4" identifier + number_literal)) ;) (expression_statement "prStack_1f0 = prVar38;" (assignment_expression "prStack_1f0 = prVar38" identifier = identifier) ;) })) (expression_statement "pIVar23 = (Idx *)(*pcVar55)((re_match_context_t *)auStack_144,\n                                                *(undefined4 *)(iVar20 + 8),iVar20 + 0xc,prVar38);" (assignment_expression "pIVar23 = (Idx *)(*pcVar55)((re_match_context_t *)auStack_144,\n                                                *(undefined4 *)(iVar20 + 8),iVar20 + 0xc,prVar38)" identifier = (cast_expression "(Idx *)(*pcVar55)((re_match_context_t *)auStack_144,\n                                                *(undefined4 *)(iVar20 + 8),iVar20 + 0xc,prVar38)" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar55)((re_match_context_t *)auStack_144,\n                                                *(undefined4 *)(iVar20 + 8),iVar20 + 0xc,prVar38)" (parenthesized_expression "(*pcVar55)" ( (pointer_expression "*pcVar55" * identifier) )) (argument_list "((re_match_context_t *)auStack_144,\n                                                *(undefined4 *)(iVar20 + 8),iVar20 + 0xc,prVar38)" ( (cast_expression "(re_match_context_t *)auStack_144" ( (type_descriptor "re_match_context_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (pointer_expression "*(undefined4 *)(iVar20 + 8)" * (cast_expression "(undefined4 *)(iVar20 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 8)" ( (binary_expression "iVar20 + 8" identifier + number_literal) )))) , (binary_expression "iVar20 + 0xc" identifier + number_literal) , identifier ))))) ;) })) }))) (expression_statement "(**(code **)(puVar56 + 0x28520))(pprVar22);" (call_expression "(**(code **)(puVar56 + 0x28520))(pprVar22)" (parenthesized_expression "(**(code **)(puVar56 + 0x28520))" ( (pointer_expression "**(code **)(puVar56 + 0x28520)" * (pointer_expression "*(code **)(puVar56 + 0x28520)" * (cast_expression "(code **)(puVar56 + 0x28520)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x28520)" ( (binary_expression "puVar56 + 0x28520" identifier + number_literal) ))))) )) (argument_list "(pprVar22)" ( identifier ))) ;) (expression_statement "(**(code **)(puVar56 + 0x28520))(pprStack_1ec);" (call_expression "(**(code **)(puVar56 + 0x28520))(pprStack_1ec)" (parenthesized_expression "(**(code **)(puVar56 + 0x28520))" ( (pointer_expression "**(code **)(puVar56 + 0x28520)" * (pointer_expression "*(code **)(puVar56 + 0x28520)" * (cast_expression "(code **)(puVar56 + 0x28520)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x28520)" ( (binary_expression "puVar56 + 0x28520" identifier + number_literal) ))))) )) (argument_list "(pprStack_1ec)" ( identifier ))) ;) (expression_statement "pprVar22 = (re_dfastate_t **)auStack_144._100_4_;" (assignment_expression "pprVar22 = (re_dfastate_t **)auStack_144._100_4_" identifier = (cast_expression "(re_dfastate_t **)auStack_144._100_4_" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (field_expression "auStack_144._100_4_" identifier . field_identifier))) ;) (if_statement "if (prStack_1e4 == (re_dfastate_t *)0x1) goto LAB_0004e2d4;" if (parenthesized_expression "(prStack_1e4 == (re_dfastate_t *)0x1)" ( (binary_expression "prStack_1e4 == (re_dfastate_t *)0x1" identifier == (cast_expression "(re_dfastate_t *)0x1" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004e2d4;" goto statement_identifier ;)) (goto_statement "goto LAB_0004dbbc;" goto statement_identifier ;) })) (expression_statement "prStack_1e4 = (re_dfastate_t *)0xc;" (assignment_expression "prStack_1e4 = (re_dfastate_t *)0xc" identifier = (cast_expression "(re_dfastate_t *)0xc" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0004dbbc;" goto statement_identifier ;) }))) }))) (labeled_statement "LAB_0004e7e0:\n          pprVar22 = (re_dfastate_t **)auStack_144._100_4_;" statement_identifier : (expression_statement "pprVar22 = (re_dfastate_t **)auStack_144._100_4_;" (assignment_expression "pprVar22 = (re_dfastate_t **)auStack_144._100_4_" identifier = (cast_expression "(re_dfastate_t **)auStack_144._100_4_" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (field_expression "auStack_144._100_4_" identifier . field_identifier))) ;)) (expression_statement "prStack_1e4 = prVar18;" (assignment_expression "prStack_1e4 = prVar18" identifier = identifier) ;) (if_statement "if (prStack_78 == (re_dfa_t *)0x0) goto LAB_0004dbbc;" if (parenthesized_expression "(prStack_78 == (re_dfa_t *)0x0)" ( (binary_expression "prStack_78 == (re_dfa_t *)0x0" identifier == (cast_expression "(re_dfa_t *)0x0" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004dbbc;" goto statement_identifier ;)) (expression_statement "IVar21 = (preg->input).valid_len;" (assignment_expression "IVar21 = (preg->input).valid_len" identifier = (field_expression "(preg->input).valid_len" (parenthesized_expression "(preg->input)" ( (field_expression "preg->input" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (bVar2) {\n            prVar27 = prStack_74 + 1;\n            do {\n              prVar27->rm_eo = -1;\n              prVar26 = prVar27 + 1;\n              prVar27->rm_so = -1;\n              prVar27 = prVar26;\n            } while (prStack_74 + (int)prStack_78 != prVar26);\n            prStack_74->rm_so = 0;\n            prStack_74->rm_eo = auStack_144._92_4_;\n            if ((IVar21 & 0x8000000) == 0) {\n              if ((char)prVar53->field_0x58 < '\0') {\n                bVar30 = 0 < prVar53->nbackref;\n              }\n              else {\n                bVar30 = false;\n              }\n              prStack_1e4 = (re_dfastate_t *)\n                            set_regs((regex_t *)preg,(re_match_context_t *)auStack_144,\n                                     (size_t)prStack_78,prStack_74,bVar30);\n              pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n              if (prStack_1e4 != (re_dfastate_t *)0x0) goto LAB_0004dbbc;\n              prVar46 = (re_dfa_t *)prStack_74->rm_so;\n            }\n            else {\nLAB_0004e838:\n              prVar46 = (re_dfa_t *)0x0;\n            }\n            prVar48 = (re_dfa_t *)0x0;\n            prVar27 = prStack_74;\n            while( true ) {\n              if (prVar46 != (re_dfa_t *)0xffffffff) {\n                prVar42 = (re_dfa_t *)prVar27->rm_eo;\n                prVar50 = prVar46;\n                prVar43 = prVar42;\n                if (auStack_144[0x4c] != '\0') {\n                  prVar50 = (re_dfa_t *)auStack_144._32_4_;\n                  if ((re_dfa_t *)auStack_144._28_4_ != prVar46) {\n                    prVar50 = (re_dfa_t *)((re_hashval_t *)auStack_144._12_4_)[(int)prVar46];\n                  }\n                  prVar27->rm_so = (regoff_t)prVar50;\n                  prVar43 = (re_dfa_t *)auStack_144._32_4_;\n                  if ((re_dfa_t *)auStack_144._28_4_ != prVar42) {\n                    prVar43 = (re_dfa_t *)((re_hashval_t *)auStack_144._12_4_)[(int)prVar42];\n                  }\n                }\n                prVar27->rm_so =\n                     (int)(((re_dfa_t *)\n                           (((re_dfa_t *)(prVar50->word_char + -0x18))->word_char + -0x18))->\n                           word_char + 0xffffffe8) +\n                     (int)((re_dfa_t *)\n                          (((re_dfa_t *)\n                           (((re_dfa_t *)(prStack_16c->word_char + -0x18))->word_char + -0x18))->\n                           word_char + -0x18))->word_char + 0xffffffa0U;\n                prVar27->rm_eo =\n                     (int)(((re_dfa_t *)\n                           (((re_dfa_t *)(prVar43->word_char + -0x18))->word_char + -0x18))->\n                           word_char + 0xffffffe8) +\n                     (int)((re_dfa_t *)\n                          (((re_dfa_t *)\n                           (((re_dfa_t *)(prStack_16c->word_char + -0x18))->word_char + -0x18))->\n                           word_char + -0x18))->word_char + 0xffffffa0U;\n              }\n              prVar48 = (re_dfa_t *)((int)&prVar48->nodes + 1);\n              prVar27 = prVar27 + 1;\n              if (prVar48 == prStack_78) break;\n              prVar46 = (re_dfa_t *)prVar27->rm_so;\n            }\n            if (0 < iStack_180) {\n              prVar27 = prStack_74 + (int)prStack_78;\n              do {\n                prVar27->rm_so = -1;\n                prVar26 = prVar27 + 1;\n                prVar27->rm_eo = -1;\n                prVar27 = prVar26;\n              } while (prStack_74 + (int)prStack_78->word_char + iStack_180 + -0x60 != prVar26);\n            }\n            pIVar23 = prVar53->subexp_map;\n            pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n            prStack_1e4 = prVar18;\n            if (pIVar23 != (Idx *)0x0) {\n              puVar45 = (undefined1 *)0x0;\n              prVar27 = prStack_74;\n              do {\n                pcVar55 = *(code **)(puVar56 + 0x28520);\n                if (puVar45 == (undefined1 *)((int)&prStack_78[-1].lock + 0x17)) goto LAB_0004dbc0;\n                if ((undefined1 *)*pIVar23 != puVar45) {\n                  prVar27[1].rm_so = prStack_74[(int)((undefined1 *)*pIVar23 + 1)].rm_so;\n                  prVar27[1].rm_eo = prStack_74[*pIVar23 + 1].rm_eo;\n                }\n                puVar45 = puVar45 + 1;\n                pIVar23 = pIVar23 + 1;\n                prVar27 = prVar27 + 1;\n              } while( true );\n            }\n            goto LAB_0004dbbc;\n          }" if (parenthesized_expression "(bVar2)" ( identifier )) (compound_statement "{\n            prVar27 = prStack_74 + 1;\n            do {\n              prVar27->rm_eo = -1;\n              prVar26 = prVar27 + 1;\n              prVar27->rm_so = -1;\n              prVar27 = prVar26;\n            } while (prStack_74 + (int)prStack_78 != prVar26);\n            prStack_74->rm_so = 0;\n            prStack_74->rm_eo = auStack_144._92_4_;\n            if ((IVar21 & 0x8000000) == 0) {\n              if ((char)prVar53->field_0x58 < '\0') {\n                bVar30 = 0 < prVar53->nbackref;\n              }\n              else {\n                bVar30 = false;\n              }\n              prStack_1e4 = (re_dfastate_t *)\n                            set_regs((regex_t *)preg,(re_match_context_t *)auStack_144,\n                                     (size_t)prStack_78,prStack_74,bVar30);\n              pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n              if (prStack_1e4 != (re_dfastate_t *)0x0) goto LAB_0004dbbc;\n              prVar46 = (re_dfa_t *)prStack_74->rm_so;\n            }\n            else {\nLAB_0004e838:\n              prVar46 = (re_dfa_t *)0x0;\n            }\n            prVar48 = (re_dfa_t *)0x0;\n            prVar27 = prStack_74;\n            while( true ) {\n              if (prVar46 != (re_dfa_t *)0xffffffff) {\n                prVar42 = (re_dfa_t *)prVar27->rm_eo;\n                prVar50 = prVar46;\n                prVar43 = prVar42;\n                if (auStack_144[0x4c] != '\0') {\n                  prVar50 = (re_dfa_t *)auStack_144._32_4_;\n                  if ((re_dfa_t *)auStack_144._28_4_ != prVar46) {\n                    prVar50 = (re_dfa_t *)((re_hashval_t *)auStack_144._12_4_)[(int)prVar46];\n                  }\n                  prVar27->rm_so = (regoff_t)prVar50;\n                  prVar43 = (re_dfa_t *)auStack_144._32_4_;\n                  if ((re_dfa_t *)auStack_144._28_4_ != prVar42) {\n                    prVar43 = (re_dfa_t *)((re_hashval_t *)auStack_144._12_4_)[(int)prVar42];\n                  }\n                }\n                prVar27->rm_so =\n                     (int)(((re_dfa_t *)\n                           (((re_dfa_t *)(prVar50->word_char + -0x18))->word_char + -0x18))->\n                           word_char + 0xffffffe8) +\n                     (int)((re_dfa_t *)\n                          (((re_dfa_t *)\n                           (((re_dfa_t *)(prStack_16c->word_char + -0x18))->word_char + -0x18))->\n                           word_char + -0x18))->word_char + 0xffffffa0U;\n                prVar27->rm_eo =\n                     (int)(((re_dfa_t *)\n                           (((re_dfa_t *)(prVar43->word_char + -0x18))->word_char + -0x18))->\n                           word_char + 0xffffffe8) +\n                     (int)((re_dfa_t *)\n                          (((re_dfa_t *)\n                           (((re_dfa_t *)(prStack_16c->word_char + -0x18))->word_char + -0x18))->\n                           word_char + -0x18))->word_char + 0xffffffa0U;\n              }\n              prVar48 = (re_dfa_t *)((int)&prVar48->nodes + 1);\n              prVar27 = prVar27 + 1;\n              if (prVar48 == prStack_78) break;\n              prVar46 = (re_dfa_t *)prVar27->rm_so;\n            }\n            if (0 < iStack_180) {\n              prVar27 = prStack_74 + (int)prStack_78;\n              do {\n                prVar27->rm_so = -1;\n                prVar26 = prVar27 + 1;\n                prVar27->rm_eo = -1;\n                prVar27 = prVar26;\n              } while (prStack_74 + (int)prStack_78->word_char + iStack_180 + -0x60 != prVar26);\n            }\n            pIVar23 = prVar53->subexp_map;\n            pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n            prStack_1e4 = prVar18;\n            if (pIVar23 != (Idx *)0x0) {\n              puVar45 = (undefined1 *)0x0;\n              prVar27 = prStack_74;\n              do {\n                pcVar55 = *(code **)(puVar56 + 0x28520);\n                if (puVar45 == (undefined1 *)((int)&prStack_78[-1].lock + 0x17)) goto LAB_0004dbc0;\n                if ((undefined1 *)*pIVar23 != puVar45) {\n                  prVar27[1].rm_so = prStack_74[(int)((undefined1 *)*pIVar23 + 1)].rm_so;\n                  prVar27[1].rm_eo = prStack_74[*pIVar23 + 1].rm_eo;\n                }\n                puVar45 = puVar45 + 1;\n                pIVar23 = pIVar23 + 1;\n                prVar27 = prVar27 + 1;\n              } while( true );\n            }\n            goto LAB_0004dbbc;\n          }" { (expression_statement "prVar27 = prStack_74 + 1;" (assignment_expression "prVar27 = prStack_74 + 1" identifier = (binary_expression "prStack_74 + 1" identifier + number_literal)) ;) (do_statement "do {\n              prVar27->rm_eo = -1;\n              prVar26 = prVar27 + 1;\n              prVar27->rm_so = -1;\n              prVar27 = prVar26;\n            } while (prStack_74 + (int)prStack_78 != prVar26);" do (compound_statement "{\n              prVar27->rm_eo = -1;\n              prVar26 = prVar27 + 1;\n              prVar27->rm_so = -1;\n              prVar27 = prVar26;\n            }" { (expression_statement "prVar27->rm_eo = -1;" (assignment_expression "prVar27->rm_eo = -1" (field_expression "prVar27->rm_eo" identifier -> field_identifier) = number_literal) ;) (expression_statement "prVar26 = prVar27 + 1;" (assignment_expression "prVar26 = prVar27 + 1" identifier = (binary_expression "prVar27 + 1" identifier + number_literal)) ;) (expression_statement "prVar27->rm_so = -1;" (assignment_expression "prVar27->rm_so = -1" (field_expression "prVar27->rm_so" identifier -> field_identifier) = number_literal) ;) (expression_statement "prVar27 = prVar26;" (assignment_expression "prVar27 = prVar26" identifier = identifier) ;) }) while (parenthesized_expression "(prStack_74 + (int)prStack_78 != prVar26)" ( (binary_expression "prStack_74 + (int)prStack_78 != prVar26" (binary_expression "prStack_74 + (int)prStack_78" identifier + (cast_expression "(int)prStack_78" ( (type_descriptor "int" primitive_type) ) identifier)) != identifier) )) ;) (expression_statement "prStack_74->rm_so = 0;" (assignment_expression "prStack_74->rm_so = 0" (field_expression "prStack_74->rm_so" identifier -> field_identifier) = number_literal) ;) (expression_statement "prStack_74->rm_eo = auStack_144._92_4_;" (assignment_expression "prStack_74->rm_eo = auStack_144._92_4_" (field_expression "prStack_74->rm_eo" identifier -> field_identifier) = (field_expression "auStack_144._92_4_" identifier . field_identifier)) ;) (if_statement "if ((IVar21 & 0x8000000) == 0) {\n              if ((char)prVar53->field_0x58 < '\0') {\n                bVar30 = 0 < prVar53->nbackref;\n              }\n              else {\n                bVar30 = false;\n              }\n              prStack_1e4 = (re_dfastate_t *)\n                            set_regs((regex_t *)preg,(re_match_context_t *)auStack_144,\n                                     (size_t)prStack_78,prStack_74,bVar30);\n              pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n              if (prStack_1e4 != (re_dfastate_t *)0x0) goto LAB_0004dbbc;\n              prVar46 = (re_dfa_t *)prStack_74->rm_so;\n            }\n            else {\nLAB_0004e838:\n              prVar46 = (re_dfa_t *)0x0;\n            }" if (parenthesized_expression "((IVar21 & 0x8000000) == 0)" ( (binary_expression "(IVar21 & 0x8000000) == 0" (parenthesized_expression "(IVar21 & 0x8000000)" ( (binary_expression "IVar21 & 0x8000000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n              if ((char)prVar53->field_0x58 < '\0') {\n                bVar30 = 0 < prVar53->nbackref;\n              }\n              else {\n                bVar30 = false;\n              }\n              prStack_1e4 = (re_dfastate_t *)\n                            set_regs((regex_t *)preg,(re_match_context_t *)auStack_144,\n                                     (size_t)prStack_78,prStack_74,bVar30);\n              pprVar22 = (re_dfastate_t **)auStack_144._100_4_;\n              if (prStack_1e4 != (re_dfastate_t *)0x0) goto LAB_0004dbbc;\n              prVar46 = (re_dfa_t *)prStack_74->rm_so;\n            }" { (if_statement "if ((char)prVar53->field_0x58 < '\0') {\n                bVar30 = 0 < prVar53->nbackref;\n              }\n              else {\n                bVar30 = false;\n              }" if (parenthesized_expression "((char)prVar53->field_0x58 < '\0')" ( (binary_expression "(char)prVar53->field_0x58 < '\0'" (cast_expression "(char)prVar53->field_0x58" ( (type_descriptor "char" primitive_type) ) (field_expression "prVar53->field_0x58" identifier -> field_identifier)) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                bVar30 = 0 < prVar53->nbackref;\n              }" { (expression_statement "bVar30 = 0 < prVar53->nbackref;" (assignment_expression "bVar30 = 0 < prVar53->nbackref" identifier = (binary_expression "0 < prVar53->nbackref" number_literal < (field_expression "prVar53->nbackref" identifier -> field_identifier))) ;) }) (else_clause "else {\n                bVar30 = false;\n              }" else (compound_statement "{\n                bVar30 = false;\n              }" { (expression_statement "bVar30 = false;" (assignment_expression "bVar30 = false" identifier = false) ;) }))) (expression_statement "prStack_1e4 = (re_dfastate_t *)\n                            set_regs((regex_t *)preg,(re_match_context_t *)auStack_144,\n                                     (size_t)prStack_78,prStack_74,bVar30);" (assignment_expression "prStack_1e4 = (re_dfastate_t *)\n                            set_regs((regex_t *)preg,(re_match_context_t *)auStack_144,\n                                     (size_t)prStack_78,prStack_74,bVar30)" identifier = (cast_expression "(re_dfastate_t *)\n                            set_regs((regex_t *)preg,(re_match_context_t *)auStack_144,\n                                     (size_t)prStack_78,prStack_74,bVar30)" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "set_regs((regex_t *)preg,(re_match_context_t *)auStack_144,\n                                     (size_t)prStack_78,prStack_74,bVar30)" identifier (argument_list "((regex_t *)preg,(re_match_context_t *)auStack_144,\n                                     (size_t)prStack_78,prStack_74,bVar30)" ( (cast_expression "(regex_t *)preg" ( (type_descriptor "regex_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(re_match_context_t *)auStack_144" ( (type_descriptor "re_match_context_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(size_t)prStack_78" ( (type_descriptor "size_t" primitive_type) ) identifier) , identifier , identifier ))))) ;) (expression_statement "pprVar22 = (re_dfastate_t **)auStack_144._100_4_;" (assignment_expression "pprVar22 = (re_dfastate_t **)auStack_144._100_4_" identifier = (cast_expression "(re_dfastate_t **)auStack_144._100_4_" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (field_expression "auStack_144._100_4_" identifier . field_identifier))) ;) (if_statement "if (prStack_1e4 != (re_dfastate_t *)0x0) goto LAB_0004dbbc;" if (parenthesized_expression "(prStack_1e4 != (re_dfastate_t *)0x0)" ( (binary_expression "prStack_1e4 != (re_dfastate_t *)0x0" identifier != (cast_expression "(re_dfastate_t *)0x0" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004dbbc;" goto statement_identifier ;)) (expression_statement "prVar46 = (re_dfa_t *)prStack_74->rm_so;" (assignment_expression "prVar46 = (re_dfa_t *)prStack_74->rm_so" identifier = (cast_expression "(re_dfa_t *)prStack_74->rm_so" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "prStack_74->rm_so" identifier -> field_identifier))) ;) }) (else_clause "else {\nLAB_0004e838:\n              prVar46 = (re_dfa_t *)0x0;\n            }" else (compound_statement "{\nLAB_0004e838:\n              prVar46 = (re_dfa_t *)0x0;\n            }" { (labeled_statement "LAB_0004e838:\n              prVar46 = (re_dfa_t *)0x0;" statement_identifier : (expression_statement "prVar46 = (re_dfa_t *)0x0;" (assignment_expression "prVar46 = (re_dfa_t *)0x0" identifier = (cast_expression "(re_dfa_t *)0x0" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) }))) (expression_statement "prVar48 = (re_dfa_t *)0x0;" (assignment_expression "prVar48 = (re_dfa_t *)0x0" identifier = (cast_expression "(re_dfa_t *)0x0" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "prVar27 = prStack_74;" (assignment_expression "prVar27 = prStack_74" identifier = identifier) ;) (while_statement "while( true ) {\n              if (prVar46 != (re_dfa_t *)0xffffffff) {\n                prVar42 = (re_dfa_t *)prVar27->rm_eo;\n                prVar50 = prVar46;\n                prVar43 = prVar42;\n                if (auStack_144[0x4c] != '\0') {\n                  prVar50 = (re_dfa_t *)auStack_144._32_4_;\n                  if ((re_dfa_t *)auStack_144._28_4_ != prVar46) {\n                    prVar50 = (re_dfa_t *)((re_hashval_t *)auStack_144._12_4_)[(int)prVar46];\n                  }\n                  prVar27->rm_so = (regoff_t)prVar50;\n                  prVar43 = (re_dfa_t *)auStack_144._32_4_;\n                  if ((re_dfa_t *)auStack_144._28_4_ != prVar42) {\n                    prVar43 = (re_dfa_t *)((re_hashval_t *)auStack_144._12_4_)[(int)prVar42];\n                  }\n                }\n                prVar27->rm_so =\n                     (int)(((re_dfa_t *)\n                           (((re_dfa_t *)(prVar50->word_char + -0x18))->word_char + -0x18))->\n                           word_char + 0xffffffe8) +\n                     (int)((re_dfa_t *)\n                          (((re_dfa_t *)\n                           (((re_dfa_t *)(prStack_16c->word_char + -0x18))->word_char + -0x18))->\n                           word_char + -0x18))->word_char + 0xffffffa0U;\n                prVar27->rm_eo =\n                     (int)(((re_dfa_t *)\n                           (((re_dfa_t *)(prVar43->word_char + -0x18))->word_char + -0x18))->\n                           word_char + 0xffffffe8) +\n                     (int)((re_dfa_t *)\n                          (((re_dfa_t *)\n                           (((re_dfa_t *)(prStack_16c->word_char + -0x18))->word_char + -0x18))->\n                           word_char + -0x18))->word_char + 0xffffffa0U;\n              }\n              prVar48 = (re_dfa_t *)((int)&prVar48->nodes + 1);\n              prVar27 = prVar27 + 1;\n              if (prVar48 == prStack_78) break;\n              prVar46 = (re_dfa_t *)prVar27->rm_so;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              if (prVar46 != (re_dfa_t *)0xffffffff) {\n                prVar42 = (re_dfa_t *)prVar27->rm_eo;\n                prVar50 = prVar46;\n                prVar43 = prVar42;\n                if (auStack_144[0x4c] != '\0') {\n                  prVar50 = (re_dfa_t *)auStack_144._32_4_;\n                  if ((re_dfa_t *)auStack_144._28_4_ != prVar46) {\n                    prVar50 = (re_dfa_t *)((re_hashval_t *)auStack_144._12_4_)[(int)prVar46];\n                  }\n                  prVar27->rm_so = (regoff_t)prVar50;\n                  prVar43 = (re_dfa_t *)auStack_144._32_4_;\n                  if ((re_dfa_t *)auStack_144._28_4_ != prVar42) {\n                    prVar43 = (re_dfa_t *)((re_hashval_t *)auStack_144._12_4_)[(int)prVar42];\n                  }\n                }\n                prVar27->rm_so =\n                     (int)(((re_dfa_t *)\n                           (((re_dfa_t *)(prVar50->word_char + -0x18))->word_char + -0x18))->\n                           word_char + 0xffffffe8) +\n                     (int)((re_dfa_t *)\n                          (((re_dfa_t *)\n                           (((re_dfa_t *)(prStack_16c->word_char + -0x18))->word_char + -0x18))->\n                           word_char + -0x18))->word_char + 0xffffffa0U;\n                prVar27->rm_eo =\n                     (int)(((re_dfa_t *)\n                           (((re_dfa_t *)(prVar43->word_char + -0x18))->word_char + -0x18))->\n                           word_char + 0xffffffe8) +\n                     (int)((re_dfa_t *)\n                          (((re_dfa_t *)\n                           (((re_dfa_t *)(prStack_16c->word_char + -0x18))->word_char + -0x18))->\n                           word_char + -0x18))->word_char + 0xffffffa0U;\n              }\n              prVar48 = (re_dfa_t *)((int)&prVar48->nodes + 1);\n              prVar27 = prVar27 + 1;\n              if (prVar48 == prStack_78) break;\n              prVar46 = (re_dfa_t *)prVar27->rm_so;\n            }" { (if_statement "if (prVar46 != (re_dfa_t *)0xffffffff) {\n                prVar42 = (re_dfa_t *)prVar27->rm_eo;\n                prVar50 = prVar46;\n                prVar43 = prVar42;\n                if (auStack_144[0x4c] != '\0') {\n                  prVar50 = (re_dfa_t *)auStack_144._32_4_;\n                  if ((re_dfa_t *)auStack_144._28_4_ != prVar46) {\n                    prVar50 = (re_dfa_t *)((re_hashval_t *)auStack_144._12_4_)[(int)prVar46];\n                  }\n                  prVar27->rm_so = (regoff_t)prVar50;\n                  prVar43 = (re_dfa_t *)auStack_144._32_4_;\n                  if ((re_dfa_t *)auStack_144._28_4_ != prVar42) {\n                    prVar43 = (re_dfa_t *)((re_hashval_t *)auStack_144._12_4_)[(int)prVar42];\n                  }\n                }\n                prVar27->rm_so =\n                     (int)(((re_dfa_t *)\n                           (((re_dfa_t *)(prVar50->word_char + -0x18))->word_char + -0x18))->\n                           word_char + 0xffffffe8) +\n                     (int)((re_dfa_t *)\n                          (((re_dfa_t *)\n                           (((re_dfa_t *)(prStack_16c->word_char + -0x18))->word_char + -0x18))->\n                           word_char + -0x18))->word_char + 0xffffffa0U;\n                prVar27->rm_eo =\n                     (int)(((re_dfa_t *)\n                           (((re_dfa_t *)(prVar43->word_char + -0x18))->word_char + -0x18))->\n                           word_char + 0xffffffe8) +\n                     (int)((re_dfa_t *)\n                          (((re_dfa_t *)\n                           (((re_dfa_t *)(prStack_16c->word_char + -0x18))->word_char + -0x18))->\n                           word_char + -0x18))->word_char + 0xffffffa0U;\n              }" if (parenthesized_expression "(prVar46 != (re_dfa_t *)0xffffffff)" ( (binary_expression "prVar46 != (re_dfa_t *)0xffffffff" identifier != (cast_expression "(re_dfa_t *)0xffffffff" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                prVar42 = (re_dfa_t *)prVar27->rm_eo;\n                prVar50 = prVar46;\n                prVar43 = prVar42;\n                if (auStack_144[0x4c] != '\0') {\n                  prVar50 = (re_dfa_t *)auStack_144._32_4_;\n                  if ((re_dfa_t *)auStack_144._28_4_ != prVar46) {\n                    prVar50 = (re_dfa_t *)((re_hashval_t *)auStack_144._12_4_)[(int)prVar46];\n                  }\n                  prVar27->rm_so = (regoff_t)prVar50;\n                  prVar43 = (re_dfa_t *)auStack_144._32_4_;\n                  if ((re_dfa_t *)auStack_144._28_4_ != prVar42) {\n                    prVar43 = (re_dfa_t *)((re_hashval_t *)auStack_144._12_4_)[(int)prVar42];\n                  }\n                }\n                prVar27->rm_so =\n                     (int)(((re_dfa_t *)\n                           (((re_dfa_t *)(prVar50->word_char + -0x18))->word_char + -0x18))->\n                           word_char + 0xffffffe8) +\n                     (int)((re_dfa_t *)\n                          (((re_dfa_t *)\n                           (((re_dfa_t *)(prStack_16c->word_char + -0x18))->word_char + -0x18))->\n                           word_char + -0x18))->word_char + 0xffffffa0U;\n                prVar27->rm_eo =\n                     (int)(((re_dfa_t *)\n                           (((re_dfa_t *)(prVar43->word_char + -0x18))->word_char + -0x18))->\n                           word_char + 0xffffffe8) +\n                     (int)((re_dfa_t *)\n                          (((re_dfa_t *)\n                           (((re_dfa_t *)(prStack_16c->word_char + -0x18))->word_char + -0x18))->\n                           word_char + -0x18))->word_char + 0xffffffa0U;\n              }" { (expression_statement "prVar42 = (re_dfa_t *)prVar27->rm_eo;" (assignment_expression "prVar42 = (re_dfa_t *)prVar27->rm_eo" identifier = (cast_expression "(re_dfa_t *)prVar27->rm_eo" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "prVar27->rm_eo" identifier -> field_identifier))) ;) (expression_statement "prVar50 = prVar46;" (assignment_expression "prVar50 = prVar46" identifier = identifier) ;) (expression_statement "prVar43 = prVar42;" (assignment_expression "prVar43 = prVar42" identifier = identifier) ;) (if_statement "if (auStack_144[0x4c] != '\0') {\n                  prVar50 = (re_dfa_t *)auStack_144._32_4_;\n                  if ((re_dfa_t *)auStack_144._28_4_ != prVar46) {\n                    prVar50 = (re_dfa_t *)((re_hashval_t *)auStack_144._12_4_)[(int)prVar46];\n                  }\n                  prVar27->rm_so = (regoff_t)prVar50;\n                  prVar43 = (re_dfa_t *)auStack_144._32_4_;\n                  if ((re_dfa_t *)auStack_144._28_4_ != prVar42) {\n                    prVar43 = (re_dfa_t *)((re_hashval_t *)auStack_144._12_4_)[(int)prVar42];\n                  }\n                }" if (parenthesized_expression "(auStack_144[0x4c] != '\0')" ( (binary_expression "auStack_144[0x4c] != '\0'" (subscript_expression "auStack_144[0x4c]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                  prVar50 = (re_dfa_t *)auStack_144._32_4_;\n                  if ((re_dfa_t *)auStack_144._28_4_ != prVar46) {\n                    prVar50 = (re_dfa_t *)((re_hashval_t *)auStack_144._12_4_)[(int)prVar46];\n                  }\n                  prVar27->rm_so = (regoff_t)prVar50;\n                  prVar43 = (re_dfa_t *)auStack_144._32_4_;\n                  if ((re_dfa_t *)auStack_144._28_4_ != prVar42) {\n                    prVar43 = (re_dfa_t *)((re_hashval_t *)auStack_144._12_4_)[(int)prVar42];\n                  }\n                }" { (expression_statement "prVar50 = (re_dfa_t *)auStack_144._32_4_;" (assignment_expression "prVar50 = (re_dfa_t *)auStack_144._32_4_" identifier = (cast_expression "(re_dfa_t *)auStack_144._32_4_" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStack_144._32_4_" identifier . field_identifier))) ;) (if_statement "if ((re_dfa_t *)auStack_144._28_4_ != prVar46) {\n                    prVar50 = (re_dfa_t *)((re_hashval_t *)auStack_144._12_4_)[(int)prVar46];\n                  }" if (parenthesized_expression "((re_dfa_t *)auStack_144._28_4_ != prVar46)" ( (binary_expression "(re_dfa_t *)auStack_144._28_4_ != prVar46" (cast_expression "(re_dfa_t *)auStack_144._28_4_" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStack_144._28_4_" identifier . field_identifier)) != identifier) )) (compound_statement "{\n                    prVar50 = (re_dfa_t *)((re_hashval_t *)auStack_144._12_4_)[(int)prVar46];\n                  }" { (expression_statement "prVar50 = (re_dfa_t *)((re_hashval_t *)auStack_144._12_4_)[(int)prVar46];" (assignment_expression "prVar50 = (re_dfa_t *)((re_hashval_t *)auStack_144._12_4_)[(int)prVar46]" identifier = (cast_expression "(re_dfa_t *)((re_hashval_t *)auStack_144._12_4_)[(int)prVar46]" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "((re_hashval_t *)auStack_144._12_4_)[(int)prVar46]" (parenthesized_expression "((re_hashval_t *)auStack_144._12_4_)" ( (cast_expression "(re_hashval_t *)auStack_144._12_4_" ( (type_descriptor "re_hashval_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStack_144._12_4_" identifier . field_identifier)) )) [ (cast_expression "(int)prVar46" ( (type_descriptor "int" primitive_type) ) identifier) ]))) ;) })) (expression_statement "prVar27->rm_so = (regoff_t)prVar50;" (assignment_expression "prVar27->rm_so = (regoff_t)prVar50" (field_expression "prVar27->rm_so" identifier -> field_identifier) = (cast_expression "(regoff_t)prVar50" ( (type_descriptor "regoff_t" type_identifier) ) identifier)) ;) (expression_statement "prVar43 = (re_dfa_t *)auStack_144._32_4_;" (assignment_expression "prVar43 = (re_dfa_t *)auStack_144._32_4_" identifier = (cast_expression "(re_dfa_t *)auStack_144._32_4_" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStack_144._32_4_" identifier . field_identifier))) ;) (if_statement "if ((re_dfa_t *)auStack_144._28_4_ != prVar42) {\n                    prVar43 = (re_dfa_t *)((re_hashval_t *)auStack_144._12_4_)[(int)prVar42];\n                  }" if (parenthesized_expression "((re_dfa_t *)auStack_144._28_4_ != prVar42)" ( (binary_expression "(re_dfa_t *)auStack_144._28_4_ != prVar42" (cast_expression "(re_dfa_t *)auStack_144._28_4_" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStack_144._28_4_" identifier . field_identifier)) != identifier) )) (compound_statement "{\n                    prVar43 = (re_dfa_t *)((re_hashval_t *)auStack_144._12_4_)[(int)prVar42];\n                  }" { (expression_statement "prVar43 = (re_dfa_t *)((re_hashval_t *)auStack_144._12_4_)[(int)prVar42];" (assignment_expression "prVar43 = (re_dfa_t *)((re_hashval_t *)auStack_144._12_4_)[(int)prVar42]" identifier = (cast_expression "(re_dfa_t *)((re_hashval_t *)auStack_144._12_4_)[(int)prVar42]" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "((re_hashval_t *)auStack_144._12_4_)[(int)prVar42]" (parenthesized_expression "((re_hashval_t *)auStack_144._12_4_)" ( (cast_expression "(re_hashval_t *)auStack_144._12_4_" ( (type_descriptor "re_hashval_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStack_144._12_4_" identifier . field_identifier)) )) [ (cast_expression "(int)prVar42" ( (type_descriptor "int" primitive_type) ) identifier) ]))) ;) })) })) (expression_statement "prVar27->rm_so =\n                     (int)(((re_dfa_t *)\n                           (((re_dfa_t *)(prVar50->word_char + -0x18))->word_char + -0x18))->\n                           word_char + 0xffffffe8) +\n                     (int)((re_dfa_t *)\n                          (((re_dfa_t *)\n                           (((re_dfa_t *)(prStack_16c->word_char + -0x18))->word_char + -0x18))->\n                           word_char + -0x18))->word_char + 0xffffffa0U;" (assignment_expression "prVar27->rm_so =\n                     (int)(((re_dfa_t *)\n                           (((re_dfa_t *)(prVar50->word_char + -0x18))->word_char + -0x18))->\n                           word_char + 0xffffffe8) +\n                     (int)((re_dfa_t *)\n                          (((re_dfa_t *)\n                           (((re_dfa_t *)(prStack_16c->word_char + -0x18))->word_char + -0x18))->\n                           word_char + -0x18))->word_char + 0xffffffa0U" (field_expression "prVar27->rm_so" identifier -> field_identifier) = (binary_expression "(int)(((re_dfa_t *)\n                           (((re_dfa_t *)(prVar50->word_char + -0x18))->word_char + -0x18))->\n                           word_char + 0xffffffe8) +\n                     (int)((re_dfa_t *)\n                          (((re_dfa_t *)\n                           (((re_dfa_t *)(prStack_16c->word_char + -0x18))->word_char + -0x18))->\n                           word_char + -0x18))->word_char + 0xffffffa0U" (binary_expression "(int)(((re_dfa_t *)\n                           (((re_dfa_t *)(prVar50->word_char + -0x18))->word_char + -0x18))->\n                           word_char + 0xffffffe8) +\n                     (int)((re_dfa_t *)\n                          (((re_dfa_t *)\n                           (((re_dfa_t *)(prStack_16c->word_char + -0x18))->word_char + -0x18))->\n                           word_char + -0x18))->word_char" (cast_expression "(int)(((re_dfa_t *)\n                           (((re_dfa_t *)(prVar50->word_char + -0x18))->word_char + -0x18))->\n                           word_char + 0xffffffe8)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(((re_dfa_t *)\n                           (((re_dfa_t *)(prVar50->word_char + -0x18))->word_char + -0x18))->\n                           word_char + 0xffffffe8)" ( (binary_expression "((re_dfa_t *)\n                           (((re_dfa_t *)(prVar50->word_char + -0x18))->word_char + -0x18))->\n                           word_char + 0xffffffe8" (field_expression "((re_dfa_t *)\n                           (((re_dfa_t *)(prVar50->word_char + -0x18))->word_char + -0x18))->\n                           word_char" (parenthesized_expression "((re_dfa_t *)\n                           (((re_dfa_t *)(prVar50->word_char + -0x18))->word_char + -0x18))" ( (cast_expression "(re_dfa_t *)\n                           (((re_dfa_t *)(prVar50->word_char + -0x18))->word_char + -0x18)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((re_dfa_t *)(prVar50->word_char + -0x18))->word_char + -0x18)" ( (binary_expression "((re_dfa_t *)(prVar50->word_char + -0x18))->word_char + -0x18" (field_expression "((re_dfa_t *)(prVar50->word_char + -0x18))->word_char" (parenthesized_expression "((re_dfa_t *)(prVar50->word_char + -0x18))" ( (cast_expression "(re_dfa_t *)(prVar50->word_char + -0x18)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(prVar50->word_char + -0x18)" ( (binary_expression "prVar50->word_char + -0x18" (field_expression "prVar50->word_char" identifier -> field_identifier) + number_literal) ))) )) -> field_identifier) + number_literal) ))) )) -> field_identifier) + number_literal) ))) + (cast_expression "(int)((re_dfa_t *)\n                          (((re_dfa_t *)\n                           (((re_dfa_t *)(prStack_16c->word_char + -0x18))->word_char + -0x18))->\n                           word_char + -0x18))->word_char" ( (type_descriptor "int" primitive_type) ) (field_expression "((re_dfa_t *)\n                          (((re_dfa_t *)\n                           (((re_dfa_t *)(prStack_16c->word_char + -0x18))->word_char + -0x18))->\n                           word_char + -0x18))->word_char" (parenthesized_expression "((re_dfa_t *)\n                          (((re_dfa_t *)\n                           (((re_dfa_t *)(prStack_16c->word_char + -0x18))->word_char + -0x18))->\n                           word_char + -0x18))" ( (cast_expression "(re_dfa_t *)\n                          (((re_dfa_t *)\n                           (((re_dfa_t *)(prStack_16c->word_char + -0x18))->word_char + -0x18))->\n                           word_char + -0x18)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((re_dfa_t *)\n                           (((re_dfa_t *)(prStack_16c->word_char + -0x18))->word_char + -0x18))->\n                           word_char + -0x18)" ( (binary_expression "((re_dfa_t *)\n                           (((re_dfa_t *)(prStack_16c->word_char + -0x18))->word_char + -0x18))->\n                           word_char + -0x18" (field_expression "((re_dfa_t *)\n                           (((re_dfa_t *)(prStack_16c->word_char + -0x18))->word_char + -0x18))->\n                           word_char" (parenthesized_expression "((re_dfa_t *)\n                           (((re_dfa_t *)(prStack_16c->word_char + -0x18))->word_char + -0x18))" ( (cast_expression "(re_dfa_t *)\n                           (((re_dfa_t *)(prStack_16c->word_char + -0x18))->word_char + -0x18)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((re_dfa_t *)(prStack_16c->word_char + -0x18))->word_char + -0x18)" ( (binary_expression "((re_dfa_t *)(prStack_16c->word_char + -0x18))->word_char + -0x18" (field_expression "((re_dfa_t *)(prStack_16c->word_char + -0x18))->word_char" (parenthesized_expression "((re_dfa_t *)(prStack_16c->word_char + -0x18))" ( (cast_expression "(re_dfa_t *)(prStack_16c->word_char + -0x18)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(prStack_16c->word_char + -0x18)" ( (binary_expression "prStack_16c->word_char + -0x18" (field_expression "prStack_16c->word_char" identifier -> field_identifier) + number_literal) ))) )) -> field_identifier) + number_literal) ))) )) -> field_identifier) + number_literal) ))) )) -> field_identifier))) + number_literal)) ;) (expression_statement "prVar27->rm_eo =\n                     (int)(((re_dfa_t *)\n                           (((re_dfa_t *)(prVar43->word_char + -0x18))->word_char + -0x18))->\n                           word_char + 0xffffffe8) +\n                     (int)((re_dfa_t *)\n                          (((re_dfa_t *)\n                           (((re_dfa_t *)(prStack_16c->word_char + -0x18))->word_char + -0x18))->\n                           word_char + -0x18))->word_char + 0xffffffa0U;" (assignment_expression "prVar27->rm_eo =\n                     (int)(((re_dfa_t *)\n                           (((re_dfa_t *)(prVar43->word_char + -0x18))->word_char + -0x18))->\n                           word_char + 0xffffffe8) +\n                     (int)((re_dfa_t *)\n                          (((re_dfa_t *)\n                           (((re_dfa_t *)(prStack_16c->word_char + -0x18))->word_char + -0x18))->\n                           word_char + -0x18))->word_char + 0xffffffa0U" (field_expression "prVar27->rm_eo" identifier -> field_identifier) = (binary_expression "(int)(((re_dfa_t *)\n                           (((re_dfa_t *)(prVar43->word_char + -0x18))->word_char + -0x18))->\n                           word_char + 0xffffffe8) +\n                     (int)((re_dfa_t *)\n                          (((re_dfa_t *)\n                           (((re_dfa_t *)(prStack_16c->word_char + -0x18))->word_char + -0x18))->\n                           word_char + -0x18))->word_char + 0xffffffa0U" (binary_expression "(int)(((re_dfa_t *)\n                           (((re_dfa_t *)(prVar43->word_char + -0x18))->word_char + -0x18))->\n                           word_char + 0xffffffe8) +\n                     (int)((re_dfa_t *)\n                          (((re_dfa_t *)\n                           (((re_dfa_t *)(prStack_16c->word_char + -0x18))->word_char + -0x18))->\n                           word_char + -0x18))->word_char" (cast_expression "(int)(((re_dfa_t *)\n                           (((re_dfa_t *)(prVar43->word_char + -0x18))->word_char + -0x18))->\n                           word_char + 0xffffffe8)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(((re_dfa_t *)\n                           (((re_dfa_t *)(prVar43->word_char + -0x18))->word_char + -0x18))->\n                           word_char + 0xffffffe8)" ( (binary_expression "((re_dfa_t *)\n                           (((re_dfa_t *)(prVar43->word_char + -0x18))->word_char + -0x18))->\n                           word_char + 0xffffffe8" (field_expression "((re_dfa_t *)\n                           (((re_dfa_t *)(prVar43->word_char + -0x18))->word_char + -0x18))->\n                           word_char" (parenthesized_expression "((re_dfa_t *)\n                           (((re_dfa_t *)(prVar43->word_char + -0x18))->word_char + -0x18))" ( (cast_expression "(re_dfa_t *)\n                           (((re_dfa_t *)(prVar43->word_char + -0x18))->word_char + -0x18)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((re_dfa_t *)(prVar43->word_char + -0x18))->word_char + -0x18)" ( (binary_expression "((re_dfa_t *)(prVar43->word_char + -0x18))->word_char + -0x18" (field_expression "((re_dfa_t *)(prVar43->word_char + -0x18))->word_char" (parenthesized_expression "((re_dfa_t *)(prVar43->word_char + -0x18))" ( (cast_expression "(re_dfa_t *)(prVar43->word_char + -0x18)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(prVar43->word_char + -0x18)" ( (binary_expression "prVar43->word_char + -0x18" (field_expression "prVar43->word_char" identifier -> field_identifier) + number_literal) ))) )) -> field_identifier) + number_literal) ))) )) -> field_identifier) + number_literal) ))) + (cast_expression "(int)((re_dfa_t *)\n                          (((re_dfa_t *)\n                           (((re_dfa_t *)(prStack_16c->word_char + -0x18))->word_char + -0x18))->\n                           word_char + -0x18))->word_char" ( (type_descriptor "int" primitive_type) ) (field_expression "((re_dfa_t *)\n                          (((re_dfa_t *)\n                           (((re_dfa_t *)(prStack_16c->word_char + -0x18))->word_char + -0x18))->\n                           word_char + -0x18))->word_char" (parenthesized_expression "((re_dfa_t *)\n                          (((re_dfa_t *)\n                           (((re_dfa_t *)(prStack_16c->word_char + -0x18))->word_char + -0x18))->\n                           word_char + -0x18))" ( (cast_expression "(re_dfa_t *)\n                          (((re_dfa_t *)\n                           (((re_dfa_t *)(prStack_16c->word_char + -0x18))->word_char + -0x18))->\n                           word_char + -0x18)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((re_dfa_t *)\n                           (((re_dfa_t *)(prStack_16c->word_char + -0x18))->word_char + -0x18))->\n                           word_char + -0x18)" ( (binary_expression "((re_dfa_t *)\n                           (((re_dfa_t *)(prStack_16c->word_char + -0x18))->word_char + -0x18))->\n                           word_char + -0x18" (field_expression "((re_dfa_t *)\n                           (((re_dfa_t *)(prStack_16c->word_char + -0x18))->word_char + -0x18))->\n                           word_char" (parenthesized_expression "((re_dfa_t *)\n                           (((re_dfa_t *)(prStack_16c->word_char + -0x18))->word_char + -0x18))" ( (cast_expression "(re_dfa_t *)\n                           (((re_dfa_t *)(prStack_16c->word_char + -0x18))->word_char + -0x18)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((re_dfa_t *)(prStack_16c->word_char + -0x18))->word_char + -0x18)" ( (binary_expression "((re_dfa_t *)(prStack_16c->word_char + -0x18))->word_char + -0x18" (field_expression "((re_dfa_t *)(prStack_16c->word_char + -0x18))->word_char" (parenthesized_expression "((re_dfa_t *)(prStack_16c->word_char + -0x18))" ( (cast_expression "(re_dfa_t *)(prStack_16c->word_char + -0x18)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(prStack_16c->word_char + -0x18)" ( (binary_expression "prStack_16c->word_char + -0x18" (field_expression "prStack_16c->word_char" identifier -> field_identifier) + number_literal) ))) )) -> field_identifier) + number_literal) ))) )) -> field_identifier) + number_literal) ))) )) -> field_identifier))) + number_literal)) ;) })) (expression_statement "prVar48 = (re_dfa_t *)((int)&prVar48->nodes + 1);" (assignment_expression "prVar48 = (re_dfa_t *)((int)&prVar48->nodes + 1)" identifier = (cast_expression "(re_dfa_t *)((int)&prVar48->nodes + 1)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&prVar48->nodes + 1)" ( (binary_expression "(int)&prVar48->nodes + 1" (cast_expression "(int)&prVar48->nodes" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prVar48->nodes" & (field_expression "prVar48->nodes" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "prVar27 = prVar27 + 1;" (assignment_expression "prVar27 = prVar27 + 1" identifier = (binary_expression "prVar27 + 1" identifier + number_literal)) ;) (if_statement "if (prVar48 == prStack_78) break;" if (parenthesized_expression "(prVar48 == prStack_78)" ( (binary_expression "prVar48 == prStack_78" identifier == identifier) )) (break_statement "break;" break ;)) (expression_statement "prVar46 = (re_dfa_t *)prVar27->rm_so;" (assignment_expression "prVar46 = (re_dfa_t *)prVar27->rm_so" identifier = (cast_expression "(re_dfa_t *)prVar27->rm_so" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "prVar27->rm_so" identifier -> field_identifier))) ;) })) (if_statement "if (0 < iStack_180) {\n              prVar27 = prStack_74 + (int)prStack_78;\n              do {\n                prVar27->rm_so = -1;\n                prVar26 = prVar27 + 1;\n                prVar27->rm_eo = -1;\n                prVar27 = prVar26;\n              } while (prStack_74 + (int)prStack_78->word_char + iStack_180 + -0x60 != prVar26);\n            }" if (parenthesized_expression "(0 < iStack_180)" ( (binary_expression "0 < iStack_180" number_literal < identifier) )) (compound_statement "{\n              prVar27 = prStack_74 + (int)prStack_78;\n              do {\n                prVar27->rm_so = -1;\n                prVar26 = prVar27 + 1;\n                prVar27->rm_eo = -1;\n                prVar27 = prVar26;\n              } while (prStack_74 + (int)prStack_78->word_char + iStack_180 + -0x60 != prVar26);\n            }" { (expression_statement "prVar27 = prStack_74 + (int)prStack_78;" (assignment_expression "prVar27 = prStack_74 + (int)prStack_78" identifier = (binary_expression "prStack_74 + (int)prStack_78" identifier + (cast_expression "(int)prStack_78" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (do_statement "do {\n                prVar27->rm_so = -1;\n                prVar26 = prVar27 + 1;\n                prVar27->rm_eo = -1;\n                prVar27 = prVar26;\n              } while (prStack_74 + (int)prStack_78->word_char + iStack_180 + -0x60 != prVar26);" do (compound_statement "{\n                prVar27->rm_so = -1;\n                prVar26 = prVar27 + 1;\n                prVar27->rm_eo = -1;\n                prVar27 = prVar26;\n              }" { (expression_statement "prVar27->rm_so = -1;" (assignment_expression "prVar27->rm_so = -1" (field_expression "prVar27->rm_so" identifier -> field_identifier) = number_literal) ;) (expression_statement "prVar26 = prVar27 + 1;" (assignment_expression "prVar26 = prVar27 + 1" identifier = (binary_expression "prVar27 + 1" identifier + number_literal)) ;) (expression_statement "prVar27->rm_eo = -1;" (assignment_expression "prVar27->rm_eo = -1" (field_expression "prVar27->rm_eo" identifier -> field_identifier) = number_literal) ;) (expression_statement "prVar27 = prVar26;" (assignment_expression "prVar27 = prVar26" identifier = identifier) ;) }) while (parenthesized_expression "(prStack_74 + (int)prStack_78->word_char + iStack_180 + -0x60 != prVar26)" ( (binary_expression "prStack_74 + (int)prStack_78->word_char + iStack_180 + -0x60 != prVar26" (binary_expression "prStack_74 + (int)prStack_78->word_char + iStack_180 + -0x60" (binary_expression "prStack_74 + (int)prStack_78->word_char + iStack_180" (binary_expression "prStack_74 + (int)prStack_78->word_char" identifier + (cast_expression "(int)prStack_78->word_char" ( (type_descriptor "int" primitive_type) ) (field_expression "prStack_78->word_char" identifier -> field_identifier))) + identifier) + number_literal) != identifier) )) ;) })) (expression_statement "pIVar23 = prVar53->subexp_map;" (assignment_expression "pIVar23 = prVar53->subexp_map" identifier = (field_expression "prVar53->subexp_map" identifier -> field_identifier)) ;) (expression_statement "pprVar22 = (re_dfastate_t **)auStack_144._100_4_;" (assignment_expression "pprVar22 = (re_dfastate_t **)auStack_144._100_4_" identifier = (cast_expression "(re_dfastate_t **)auStack_144._100_4_" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (field_expression "auStack_144._100_4_" identifier . field_identifier))) ;) (expression_statement "prStack_1e4 = prVar18;" (assignment_expression "prStack_1e4 = prVar18" identifier = identifier) ;) (if_statement "if (pIVar23 != (Idx *)0x0) {\n              puVar45 = (undefined1 *)0x0;\n              prVar27 = prStack_74;\n              do {\n                pcVar55 = *(code **)(puVar56 + 0x28520);\n                if (puVar45 == (undefined1 *)((int)&prStack_78[-1].lock + 0x17)) goto LAB_0004dbc0;\n                if ((undefined1 *)*pIVar23 != puVar45) {\n                  prVar27[1].rm_so = prStack_74[(int)((undefined1 *)*pIVar23 + 1)].rm_so;\n                  prVar27[1].rm_eo = prStack_74[*pIVar23 + 1].rm_eo;\n                }\n                puVar45 = puVar45 + 1;\n                pIVar23 = pIVar23 + 1;\n                prVar27 = prVar27 + 1;\n              } while( true );\n            }" if (parenthesized_expression "(pIVar23 != (Idx *)0x0)" ( (binary_expression "pIVar23 != (Idx *)0x0" identifier != (cast_expression "(Idx *)0x0" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              puVar45 = (undefined1 *)0x0;\n              prVar27 = prStack_74;\n              do {\n                pcVar55 = *(code **)(puVar56 + 0x28520);\n                if (puVar45 == (undefined1 *)((int)&prStack_78[-1].lock + 0x17)) goto LAB_0004dbc0;\n                if ((undefined1 *)*pIVar23 != puVar45) {\n                  prVar27[1].rm_so = prStack_74[(int)((undefined1 *)*pIVar23 + 1)].rm_so;\n                  prVar27[1].rm_eo = prStack_74[*pIVar23 + 1].rm_eo;\n                }\n                puVar45 = puVar45 + 1;\n                pIVar23 = pIVar23 + 1;\n                prVar27 = prVar27 + 1;\n              } while( true );\n            }" { (expression_statement "puVar45 = (undefined1 *)0x0;" (assignment_expression "puVar45 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "prVar27 = prStack_74;" (assignment_expression "prVar27 = prStack_74" identifier = identifier) ;) (do_statement "do {\n                pcVar55 = *(code **)(puVar56 + 0x28520);\n                if (puVar45 == (undefined1 *)((int)&prStack_78[-1].lock + 0x17)) goto LAB_0004dbc0;\n                if ((undefined1 *)*pIVar23 != puVar45) {\n                  prVar27[1].rm_so = prStack_74[(int)((undefined1 *)*pIVar23 + 1)].rm_so;\n                  prVar27[1].rm_eo = prStack_74[*pIVar23 + 1].rm_eo;\n                }\n                puVar45 = puVar45 + 1;\n                pIVar23 = pIVar23 + 1;\n                prVar27 = prVar27 + 1;\n              } while( true );" do (compound_statement "{\n                pcVar55 = *(code **)(puVar56 + 0x28520);\n                if (puVar45 == (undefined1 *)((int)&prStack_78[-1].lock + 0x17)) goto LAB_0004dbc0;\n                if ((undefined1 *)*pIVar23 != puVar45) {\n                  prVar27[1].rm_so = prStack_74[(int)((undefined1 *)*pIVar23 + 1)].rm_so;\n                  prVar27[1].rm_eo = prStack_74[*pIVar23 + 1].rm_eo;\n                }\n                puVar45 = puVar45 + 1;\n                pIVar23 = pIVar23 + 1;\n                prVar27 = prVar27 + 1;\n              }" { (expression_statement "pcVar55 = *(code **)(puVar56 + 0x28520);" (assignment_expression "pcVar55 = *(code **)(puVar56 + 0x28520)" identifier = (pointer_expression "*(code **)(puVar56 + 0x28520)" * (cast_expression "(code **)(puVar56 + 0x28520)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x28520)" ( (binary_expression "puVar56 + 0x28520" identifier + number_literal) ))))) ;) (if_statement "if (puVar45 == (undefined1 *)((int)&prStack_78[-1].lock + 0x17)) goto LAB_0004dbc0;" if (parenthesized_expression "(puVar45 == (undefined1 *)((int)&prStack_78[-1].lock + 0x17))" ( (binary_expression "puVar45 == (undefined1 *)((int)&prStack_78[-1].lock + 0x17)" identifier == (cast_expression "(undefined1 *)((int)&prStack_78[-1].lock + 0x17)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&prStack_78[-1].lock + 0x17)" ( (binary_expression "(int)&prStack_78[-1].lock + 0x17" (cast_expression "(int)&prStack_78[-1].lock" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prStack_78[-1].lock" & (field_expression "prStack_78[-1].lock" (subscript_expression "prStack_78[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) )) (goto_statement "goto LAB_0004dbc0;" goto statement_identifier ;)) (if_statement "if ((undefined1 *)*pIVar23 != puVar45) {\n                  prVar27[1].rm_so = prStack_74[(int)((undefined1 *)*pIVar23 + 1)].rm_so;\n                  prVar27[1].rm_eo = prStack_74[*pIVar23 + 1].rm_eo;\n                }" if (parenthesized_expression "((undefined1 *)*pIVar23 != puVar45)" ( (binary_expression "(undefined1 *)*pIVar23 != puVar45" (cast_expression "(undefined1 *)*pIVar23" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*pIVar23" * identifier)) != identifier) )) (compound_statement "{\n                  prVar27[1].rm_so = prStack_74[(int)((undefined1 *)*pIVar23 + 1)].rm_so;\n                  prVar27[1].rm_eo = prStack_74[*pIVar23 + 1].rm_eo;\n                }" { (expression_statement "prVar27[1].rm_so = prStack_74[(int)((undefined1 *)*pIVar23 + 1)].rm_so;" (assignment_expression "prVar27[1].rm_so = prStack_74[(int)((undefined1 *)*pIVar23 + 1)].rm_so" (field_expression "prVar27[1].rm_so" (subscript_expression "prVar27[1]" identifier [ number_literal ]) . field_identifier) = (field_expression "prStack_74[(int)((undefined1 *)*pIVar23 + 1)].rm_so" (subscript_expression "prStack_74[(int)((undefined1 *)*pIVar23 + 1)]" identifier [ (cast_expression "(int)((undefined1 *)*pIVar23 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((undefined1 *)*pIVar23 + 1)" ( (binary_expression "(undefined1 *)*pIVar23 + 1" (cast_expression "(undefined1 *)*pIVar23" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*pIVar23" * identifier)) + number_literal) ))) ]) . field_identifier)) ;) (expression_statement "prVar27[1].rm_eo = prStack_74[*pIVar23 + 1].rm_eo;" (assignment_expression "prVar27[1].rm_eo = prStack_74[*pIVar23 + 1].rm_eo" (field_expression "prVar27[1].rm_eo" (subscript_expression "prVar27[1]" identifier [ number_literal ]) . field_identifier) = (field_expression "prStack_74[*pIVar23 + 1].rm_eo" (subscript_expression "prStack_74[*pIVar23 + 1]" identifier [ (binary_expression "*pIVar23 + 1" (pointer_expression "*pIVar23" * identifier) + number_literal) ]) . field_identifier)) ;) })) (expression_statement "puVar45 = puVar45 + 1;" (assignment_expression "puVar45 = puVar45 + 1" identifier = (binary_expression "puVar45 + 1" identifier + number_literal)) ;) (expression_statement "pIVar23 = pIVar23 + 1;" (assignment_expression "pIVar23 = pIVar23 + 1" identifier = (binary_expression "pIVar23 + 1" identifier + number_literal)) ;) (expression_statement "prVar27 = prVar27 + 1;" (assignment_expression "prVar27 = prVar27 + 1" identifier = (binary_expression "prVar27 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (goto_statement "goto LAB_0004dbbc;" goto statement_identifier ;) })) (expression_statement "prStack_74->rm_so = 0;" (assignment_expression "prStack_74->rm_so = 0" (field_expression "prStack_74->rm_so" identifier -> field_identifier) = number_literal) ;) (expression_statement "prStack_74->rm_eo = auStack_144._92_4_;" (assignment_expression "prStack_74->rm_eo = auStack_144._92_4_" (field_expression "prStack_74->rm_eo" identifier -> field_identifier) = (field_expression "auStack_144._92_4_" identifier . field_identifier)) ;) (goto_statement "goto LAB_0004e838;" goto statement_identifier ;) })) (labeled_statement "LAB_0004e2d4:\n        match_ctx_clean((re_match_context_t *)auStack_144);" statement_identifier : (expression_statement "match_ctx_clean((re_match_context_t *)auStack_144);" (call_expression "match_ctx_clean((re_match_context_t *)auStack_144)" identifier (argument_list "((re_match_context_t *)auStack_144)" ( (cast_expression "(re_match_context_t *)auStack_144" ( (type_descriptor "re_match_context_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;)) (expression_statement "in_a3 = prStack_16c;" (assignment_expression "in_a3 = prStack_16c" identifier = identifier) ;) })) (expression_statement "in_a3 = (re_dfa_t *)((int)in_a3->word_char + iVar11 + -0x60);" (assignment_expression "in_a3 = (re_dfa_t *)((int)in_a3->word_char + iVar11 + -0x60)" identifier = (cast_expression "(re_dfa_t *)((int)in_a3->word_char + iVar11 + -0x60)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)in_a3->word_char + iVar11 + -0x60)" ( (binary_expression "(int)in_a3->word_char + iVar11 + -0x60" (binary_expression "(int)in_a3->word_char + iVar11" (cast_expression "(int)in_a3->word_char" ( (type_descriptor "int" primitive_type) ) (field_expression "in_a3->word_char" identifier -> field_identifier)) + identifier) + number_literal) )))) ;) (expression_statement "prStack_16c = in_a3;" (assignment_expression "prStack_16c = in_a3" identifier = identifier) ;) (if_statement "if (((int)in_a3 < (int)prVar46) ||\n         (pbVar36 = (re_bitset_ptr_t)auStack_144._24_4_, prVar48 = prStack_88,\n         (int)in_stack_ffffff80 < (int)in_a3)) break;" if (parenthesized_expression "(((int)in_a3 < (int)prVar46) ||\n         (pbVar36 = (re_bitset_ptr_t)auStack_144._24_4_, prVar48 = prStack_88,\n         (int)in_stack_ffffff80 < (int)in_a3))" ( (binary_expression "((int)in_a3 < (int)prVar46) ||\n         (pbVar36 = (re_bitset_ptr_t)auStack_144._24_4_, prVar48 = prStack_88,\n         (int)in_stack_ffffff80 < (int)in_a3)" (parenthesized_expression "((int)in_a3 < (int)prVar46)" ( (binary_expression "(int)in_a3 < (int)prVar46" (cast_expression "(int)in_a3" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)prVar46" ( (type_descriptor "int" primitive_type) ) identifier)) )) || (parenthesized_expression "(pbVar36 = (re_bitset_ptr_t)auStack_144._24_4_, prVar48 = prStack_88,\n         (int)in_stack_ffffff80 < (int)in_a3)" ( (comma_expression "pbVar36 = (re_bitset_ptr_t)auStack_144._24_4_, prVar48 = prStack_88,\n         (int)in_stack_ffffff80 < (int)in_a3" (assignment_expression "pbVar36 = (re_bitset_ptr_t)auStack_144._24_4_" identifier = (cast_expression "(re_bitset_ptr_t)auStack_144._24_4_" ( (type_descriptor "re_bitset_ptr_t" type_identifier) ) (field_expression "auStack_144._24_4_" identifier . field_identifier))) , (comma_expression "prVar48 = prStack_88,\n         (int)in_stack_ffffff80 < (int)in_a3" (assignment_expression "prVar48 = prStack_88" identifier = identifier) , (binary_expression "(int)in_stack_ffffff80 < (int)in_a3" (cast_expression "(int)in_stack_ffffff80" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)in_a3" ( (type_descriptor "int" primitive_type) ) identifier)))) ))) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "( true )" ( true )) ;) }))) (labeled_statement "LAB_0004df68:\n  prStack_1e4 = (re_dfastate_t *)0x1;" statement_identifier : (expression_statement "prStack_1e4 = (re_dfastate_t *)0x1;" (assignment_expression "prStack_1e4 = (re_dfastate_t *)0x1" identifier = (cast_expression "(re_dfastate_t *)0x1" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "pprVar22 = (re_dfastate_t **)auStack_144._100_4_;" (assignment_expression "pprVar22 = (re_dfastate_t **)auStack_144._100_4_" identifier = (cast_expression "(re_dfastate_t **)auStack_144._100_4_" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (field_expression "auStack_144._100_4_" identifier . field_identifier))) ;) (goto_statement "goto LAB_0004dbbc;" goto statement_identifier ;) (labeled_statement "code_r0x0004ea7c:\n  prStack_1e4 = (re_dfastate_t *)auStack_168._0_4_;" statement_identifier : (expression_statement "prStack_1e4 = (re_dfastate_t *)auStack_168._0_4_;" (assignment_expression "prStack_1e4 = (re_dfastate_t *)auStack_168._0_4_" identifier = (cast_expression "(re_dfastate_t *)auStack_168._0_4_" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStack_168._0_4_" identifier . field_identifier))) ;)) (expression_statement "pprVar22 = (re_dfastate_t **)auStack_144._100_4_;" (assignment_expression "pprVar22 = (re_dfastate_t **)auStack_144._100_4_" identifier = (cast_expression "(re_dfastate_t **)auStack_144._100_4_" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (field_expression "auStack_144._100_4_" identifier . field_identifier))) ;) (if_statement "if ((re_dfastate_t *)auStack_168._0_4_ == (re_dfastate_t *)0xc) goto LAB_0004dbbc;" if (parenthesized_expression "((re_dfastate_t *)auStack_168._0_4_ == (re_dfastate_t *)0xc)" ( (binary_expression "(re_dfastate_t *)auStack_168._0_4_ == (re_dfastate_t *)0xc" (cast_expression "(re_dfastate_t *)auStack_168._0_4_" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStack_168._0_4_" identifier . field_identifier)) == (cast_expression "(re_dfastate_t *)0xc" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004dbbc;" goto statement_identifier ;)) (expression_statement "uVar44 = 0x435;" (assignment_expression "uVar44 = 0x435" identifier = number_literal) ;) (labeled_statement "LAB_0004ea9c:\n  (**(code **)(puVar56 + 0x282f4))\n            (*(int *)(puVar56 + 0x27edc) + 0x2b30,*(int *)(puVar56 + 0x27edc) + 0x2ac0,uVar44,\n             *(int *)(puVar56 + 0x27edc) + 0x3030);" statement_identifier : (expression_statement "(**(code **)(puVar56 + 0x282f4))\n            (*(int *)(puVar56 + 0x27edc) + 0x2b30,*(int *)(puVar56 + 0x27edc) + 0x2ac0,uVar44,\n             *(int *)(puVar56 + 0x27edc) + 0x3030);" (call_expression "(**(code **)(puVar56 + 0x282f4))\n            (*(int *)(puVar56 + 0x27edc) + 0x2b30,*(int *)(puVar56 + 0x27edc) + 0x2ac0,uVar44,\n             *(int *)(puVar56 + 0x27edc) + 0x3030)" (parenthesized_expression "(**(code **)(puVar56 + 0x282f4))" ( (pointer_expression "**(code **)(puVar56 + 0x282f4)" * (pointer_expression "*(code **)(puVar56 + 0x282f4)" * (cast_expression "(code **)(puVar56 + 0x282f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar56 + 0x282f4)" ( (binary_expression "puVar56 + 0x282f4" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar56 + 0x27edc) + 0x2b30,*(int *)(puVar56 + 0x27edc) + 0x2ac0,uVar44,\n             *(int *)(puVar56 + 0x27edc) + 0x3030)" ( (binary_expression "*(int *)(puVar56 + 0x27edc) + 0x2b30" (pointer_expression "*(int *)(puVar56 + 0x27edc)" * (cast_expression "(int *)(puVar56 + 0x27edc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x27edc)" ( (binary_expression "puVar56 + 0x27edc" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar56 + 0x27edc) + 0x2ac0" (pointer_expression "*(int *)(puVar56 + 0x27edc)" * (cast_expression "(int *)(puVar56 + 0x27edc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x27edc)" ( (binary_expression "puVar56 + 0x27edc" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(puVar56 + 0x27edc) + 0x3030" (pointer_expression "*(int *)(puVar56 + 0x27edc)" * (cast_expression "(int *)(puVar56 + 0x27edc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar56 + 0x27edc)" ( (binary_expression "puVar56 + 0x27edc" identifier + number_literal) )))) + number_literal) ))) ;)) (expression_statement "uVar32 = extraout_v1;" (assignment_expression "uVar32 = extraout_v1" identifier = identifier) ;) (expression_statement "preg = (re_match_context_t *)auStack_144;" (assignment_expression "preg = (re_match_context_t *)auStack_144" identifier = (cast_expression "(re_match_context_t *)auStack_144" ( (type_descriptor "re_match_context_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (labeled_statement "LAB_0004eabc:\n  uVar41 = 8;" statement_identifier : (expression_statement "uVar41 = 8;" (assignment_expression "uVar41 = 8" identifier = number_literal) ;)) (goto_statement "goto LAB_0004dab0;" goto statement_identifier ;) })))
(translation_unit "uint FUN_0004d30c(uint *param_1,uint *param_2,uint *param_3,uint *param_4)\n\n{\n  bool bVar1;\n  bool bVar2;\n  int *piVar3;\n  bool bVar4;\n  bool bVar5;\n  uint uVar6;\n  code *pcVar7;\n  code *pcVar8;\n  code *pcVar9;\n  int *piVar10;\n  uint uVar11;\n  uint **ppuVar12;\n  int iVar13;\n  uint uVar14;\n  int iVar15;\n  int iVar16;\n  int *piVar17;\n  char cVar21;\n  int iVar18;\n  uint uVar19;\n  undefined4 uVar20;\n  bool bVar22;\n  uint *puVar23;\n  uint extraout_v1;\n  uint **ppuVar24;\n  int iVar25;\n  int iVar26;\n  uint uVar27;\n  int iVar28;\n  int iVar29;\n  int iVar30;\n  uint uVar31;\n  uint *puVar32;\n  int *piVar33;\n  uint uVar34;\n  undefined4 *puVar35;\n  uint *puVar36;\n  uint uVar37;\n  uint *puVar38;\n  uint *puVar39;\n  uint uVar40;\n  int *unaff_s4;\n  uint uVar41;\n  int unaff_s5;\n  uint uVar42;\n  int unaff_s6;\n  uint *puVar43;\n  int iVar44;\n  uint *unaff_s7;\n  code *pcVar45;\n  undefined *puVar46;\n  int unaff_s8;\n  uint uStack_1f0;\n  int *piStack_1ec;\n  uint uStack_1e4;\n  uint *puStack_1e0;\n  uint **ppuStack_1dc;\n  uint uStack_1d0;\n  int iStack_180;\n  uint *puStack_16c;\n  uint uStack_168;\n  uint uStack_164;\n  int *piStack_160;\n  int *piStack_15c;\n  int iStack_158;\n  uint uStack_154;\n  undefined4 uStack_150;\n  undefined4 uStack_14c;\n  undefined4 uStack_148;\n  uint *puStack_144;\n  uint *puStack_140;\n  int *piStack_13c;\n  int iStack_138;\n  int iStack_12c;\n  uint *puStack_128;\n  uint *puStack_124;\n  uint uStack_120;\n  uint uStack_11c;\n  uint *puStack_118;\n  uint *puStack_114;\n  uint *puStack_110;\n  uint *puStack_10c;\n  undefined4 uStack_108;\n  uint *puStack_104;\n  uint *puStack_100;\n  byte bStack_fc;\n  byte bStack_fb;\n  byte bStack_fa;\n  byte bStack_f9;\n  char cStack_f8;\n  byte bStack_f7;\n  byte bStack_f6;\n  uint uStack_f4;\n  uint *puStack_f0;\n  undefined1 *puStack_ec;\n  uint uStack_e8;\n  int iStack_e4;\n  int *piStack_e0;\n  int iStack_dc;\n  undefined4 uStack_d8;\n  int iStack_d4;\n  int iStack_d0;\n  int iStack_cc;\n  int iStack_c4;\n  int iStack_c0;\n  int iStack_bc;\n  uint *puStack_b8;\n  uint *puStack_b4;\n  uint *puStack_b0;\n  uint *puStack_ac;\n  int *piStack_a8;\n  int iStack_a4;\n  int iStack_a0;\n  uint *puStack_9c;\n  int iStack_98;\n  code *pcStack_94;\n  uint *puStack_88;\n  uint *local_80;\n  uint *local_7c;\n  uint *local_78;\n  int *piStack_74;\n  int local_64;\n  uint local_38;\n  undefined4 local_34;\n  undefined4 *local_30;\n  uint **local_2c;\n  \n  puVar46 = PTR___stack_chk_guard_00075be8;\n  local_38 = 1;\n  local_34 = 1;\n  local_2c = *(uint ***)PTR___stack_chk_guard_00075be8;\n  puVar36 = (uint *)param_2[3];\n  puVar39 = (uint *)param_2[2];\n  puVar23 = param_2;\n  local_30 = (undefined4 *)(*(code *)PTR_malloc_00075b2c)(4);\n  if (local_30 == (undefined4 *)0x0) {\n    uVar6 = 0xc;\n  }\n  else {\n    *local_30 = puVar39;\n    pcVar45 = (code *)(PTR_DAT_00075978 + -0x1248);\n    puVar23 = param_2;\n    param_3 = puVar36;\n    param_4 = &local_38;\n    uVar6 = FUN_0004edb8(param_1);\n    if (uVar6 == 0) {\n      local_64 = 0;\n      if (0 < (int)puVar36) {\n        pcVar7 = (code *)(PTR_LAB_00075920 + 0x5610);\n        pcVar8 = (code *)(PTR_LAB_00075920 + 0x33f8);\n        pcVar9 = (code *)(PTR_LAB_00075920 + 0x5230);\n        do {\n          unaff_s7 = (uint *)((int)puVar36 * 4);\n          if (*(int *)(*param_2 + (int)unaff_s7) == 0) {\n            local_64 = local_64 + 1;\n            if ((int)param_1[0x1e] < local_64) goto LAB_0004d6a0;\n          }\n          else {\n            local_64 = 0;\n            if ((int)param_1[0x1e] < 0) {\nLAB_0004d6a0:\n              puVar23 = (uint *)0x0;\n              param_3 = unaff_s7;\n              (*(code *)PTR_memset_00075ad4)();\n              (*(code *)PTR_free_00075bfc)(local_30);\n              uVar6 = 0;\n              goto LAB_0004d644;\n            }\n          }\n          local_34 = 0;\n          unaff_s6 = *(int *)((int)unaff_s7 + (param_1[0x19] - 4));\n          puVar36 = (uint *)((int)puVar36 + -1);\n          if ((unaff_s6 != 0) && (unaff_s4 = (int *)param_1[0x15], 0 < *(int *)(unaff_s6 + 0x14))) {\n            unaff_s5 = 0;\n            do {\n              puVar39 = *(uint **)(*(int *)(unaff_s6 + 0x18) + unaff_s5 * 4);\n              unaff_s8 = (int)puVar39 * 8;\n              iVar29 = *unaff_s4 + unaff_s8;\n              if ((*(uint *)(iVar29 + 4) & 0x800) == 0) {\nLAB_0004d464:\n                iVar29 = FUN_00047bf8(param_1,iVar29,puVar36);\n                if (iVar29 != 0) {\n                  iVar29 = *(int *)(*param_2 + (int)unaff_s7);\n                  if (iVar29 != 0) {\n                    param_3 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc);\n                    iVar29 = 1;\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                }\n              }\n              else {\n                puVar35 = (undefined4 *)param_1[0x15];\n                uVar6 = param_2[3];\n                param_3 = puVar39;\n                param_4 = param_1;\n                local_80 = puVar36;\n                iVar29 = FUN_0004b150(*puVar35,puVar35 + 0x20);\n                if (iVar29 < 1) {\n                  if (iVar29 == 0) {\n                    iVar29 = *unaff_s4;\n                    goto LAB_0004d460;\n                  }\n                }\n                else if ((int)puVar36 + iVar29 <= (int)uVar6) {\n                  iVar30 = *(int *)(*param_2 + ((int)puVar36 + iVar29) * 4);\n                  if (iVar30 != 0) {\n                    param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                  iVar29 = *unaff_s4;\nLAB_0004d460:\n                  iVar29 = iVar29 + unaff_s8;\n                  goto LAB_0004d464;\n                }\nLAB_0004d4b4:\n                if (param_2[5] != 0) {\n                  local_80 = (uint *)((int)puVar36 + iVar29);\n                  param_3 = param_2 + 6;\n                  param_4 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                  local_7c = puVar39;\n                  local_78 = puVar36;\n                  iVar29 = (*pcVar7)(param_1,param_2 + 5);\n                  if (iVar29 != 0) goto LAB_0004d510;\n                }\n                puVar23 = puVar39;\n                iVar29 = (*pcVar8)(&local_38);\n                if (iVar29 == 0) {\n                  uVar6 = 0xc;\n                  goto LAB_0004d62c;\n                }\n              }\nLAB_0004d510:\n              unaff_s5 = unaff_s5 + 1;\n              param_4 = &local_38;\n            } while (unaff_s5 < *(int *)(unaff_s6 + 0x14));\n          }\n          puVar23 = param_2;\n          param_3 = puVar36;\n          param_4 = &local_38;\n          uVar6 = (*pcVar45)(param_1);\n          if (uVar6 != 0) goto LAB_0004d62c;\n        } while (puVar36 != (uint *)0x0);\n      }\n      uVar6 = 0;\n    }\nLAB_0004d62c:\n    (*(code *)PTR_free_00075bfc)(local_30);\n  }\nLAB_0004d644:\n  if (local_2c == *(uint ***)puVar46) {\n    return uVar6;\n  }\n  pcVar45 = FUN_0004d6dc;\n  ppuVar24 = local_2c;\n  puVar46 = PTR___stack_chk_fail_00075ba8;\n  (*(code *)PTR___stack_chk_fail_00075ba8)();\n  puVar32 = local_7c;\n  puVar38 = local_80;\n  piVar10 = *(int **)(puVar46 + 0x2850c);\n  iStack_bc = *piVar10;\n  puVar43 = *ppuVar24;\n  puStack_b8 = puVar36;\n  puStack_b4 = param_2;\n  puStack_b0 = param_1;\n  puStack_ac = puVar39;\n  piStack_a8 = unaff_s4;\n  iStack_a4 = unaff_s5;\n  iStack_a0 = unaff_s6;\n  puStack_9c = unaff_s7;\n  iStack_98 = unaff_s8;\n  pcStack_94 = pcVar45;\n  puStack_88 = param_3;\n  (**(code **)(puVar46 + 0x283f8))(&puStack_144,0,0x88);\n  puStack_1e0 = ppuVar24[4];\n  if (puStack_1e0 != (uint *)0x0) {\n    if (((*(byte *)(ppuVar24 + 7) & 0x10) == 0) || (param_4 == puVar38)) {\n      puStack_1e0 = (uint *)0x0;\n    }\n    else if ((char)*(byte *)(ppuVar24 + 7) < '\0') {\n      puStack_1e0 = (uint *)0x0;\n    }\n  }\n  puVar36 = ppuVar24[6];\n  if (puVar36 < local_78) {\n    iStack_180 = ((int)local_78 + -1) - (int)puVar36;\n    local_78 = (uint *)((int)local_78 + ((int)puVar36 - ((int)local_78 + -1)));\n    puVar36 = ppuVar24[2];\n  }\n  else {\n    puVar36 = ppuVar24[2];\n    iStack_180 = 0;\n  }\n  puStack_f0 = puVar43;\n  if ((((puVar36 == (uint *)0x0) || (puVar43[9] == 0)) || (puVar43[10] == 0)) ||\n     ((puVar43[0xb] == 0 || (puVar43[0xc] == 0)))) {\nLAB_0004db54:\n    uStack_1e4 = 1;\n    goto LAB_0004db58;\n  }\n  if (((*(int *)(puVar43[9] + 8) == 0) && (*(int *)(puVar43[10] + 8) == 0)) &&\n     ((*(int *)(puVar43[0xb] + 8) == 0 || (((uint)ppuVar24[7] & 0x1000000) == 0)))) {\n    if (param_4 == (uint *)0x0) {\n      puVar38 = (uint *)0x0;\n    }\n    else {\n      if (puVar38 != (uint *)0x0) goto LAB_0004db54;\n      param_4 = (uint *)0x0;\n    }\n  }\n  if (local_78 == (uint *)0x0) {\n    bVar22 = puVar43[0x13] != 0;\n  }\n  else {\n    bVar22 = true;\n  }\n  uStack_f4 = puVar43[0x17];\n  puVar36 = ppuVar24[5];\n  uVar6 = puVar43[2] + 1;\n  if ((int)(puVar43[2] + 1) < (int)uStack_f4) {\n    uVar6 = uStack_f4;\n  }\n  bStack_fc = (byte)((uint)((int)ppuVar24[3] << 9) >> 0x18);\n  bStack_f9 = 1;\n  if (puVar36 == (uint *)0x0) {\n    bStack_f9 = bStack_fc >> 7;\n  }\n  uVar34 = (int)puStack_88 + 1U;\n  if ((int)uVar6 <= (int)((int)puStack_88 + 1U)) {\n    uVar34 = uVar6;\n  }\n  bStack_fc = bStack_fc >> 7;\n  bStack_fb = (byte)((puVar43[0x16] << 2) >> 0x1f);\n  bStack_fa = (byte)((puVar43[0x16] << 3) >> 0x1f);\n  puStack_114 = puStack_88;\n  puStack_118 = puStack_88;\n  puStack_10c = puStack_88;\n  puStack_110 = puStack_88;\n  puStack_144 = puVar23;\n  puStack_104 = puVar36;\n  uStack_1e4 = FUN_00043278(&puStack_144,uVar34);\n  piVar17 = piStack_e0;\n  if (uStack_1e4 != 0) {\nLAB_0004dbbc:\n    while( true ) {\n      pcVar45 = *(code **)(puVar46 + 0x28520);\nLAB_0004dbc0:\n      (*pcVar45)(piVar17);\n      if (puVar43[0x13] != 0) {\nLAB_0004dc14:\n        FUN_00044db0(&puStack_144);\n        (**(code **)(puVar46 + 0x28520))(iStack_c0);\n        (**(code **)(puVar46 + 0x28520))(iStack_d0);\n      }\nLAB_0004dbd4:\n      FUN_00044d40(&puStack_144);\nLAB_0004db58:\n      if (iStack_bc == *piVar10) break;\n      uStack_1e4 = (**(code **)(puVar46 + 0x284cc))();\n      piVar17 = piStack_e0;\n    }\n    return uStack_1e4;\n  }\n  puStack_100 = puVar43 + 0x18;\n  bStack_f6 = (byte)((puVar43[0x16] << 4) >> 0x1f);\n  if ((bStack_f9 != 0) || (puStack_140 = puVar23, puStack_128 = puStack_88, 1 < (int)puVar43[0x17]))\n  {\n    puStack_128 = (uint *)0x0;\n  }\n  puStack_10c = puVar32;\n  puStack_110 = puVar32;\n  puStack_124 = puStack_128;\n  bStack_f7 = (byte)((uint)((int)ppuVar24[7] << 7) >> 0x1f);\n  uVar6 = puVar43[0x13];\n  iVar29 = uVar6 * 2;\n  puStack_ec = &_gp_1;\n  uStack_e8 = 0xffffffff;\n  if (0 < iVar29) {\n    if (0xccccccc < iVar29) goto LAB_0004dbf8;\n    iVar30 = (**(code **)(puVar46 + 0x28450))(uVar6 * 0x28);\n    iStack_d0 = iVar30;\n    iStack_c0 = (**(code **)(puVar46 + 0x28450))(uVar6 * 8);\n    if ((iVar30 == 0) || (iStack_c0 == 0)) goto LAB_0004dbf8;\n  }\n  iStack_d4 = iVar29;\n  iStack_c4 = iVar29;\n  bVar1 = (uint *)0x1 < local_78;\n  iStack_cc = 1;\n  if ((bVar1) || ((puVar43[0x16] & 0x40000000) != 0)) {\n    if (0x3ffffffe < uStack_120) {\nLAB_0004dbf8:\n      uStack_1e4 = 0xc;\n      (**(code **)(puVar46 + 0x28520))(piStack_e0);\n      if (puVar43[0x13] == 0) goto LAB_0004dbd4;\n      goto LAB_0004dc14;\n    }\n    piStack_e0 = (int *)(**(code **)(puVar46 + 0x28450))((uStack_120 + 1) * 4);\n    piVar17 = piStack_e0;\n    if (piStack_e0 == (int *)0x0) {\nLAB_0004dbb4:\n      uStack_1e4 = 0xc;\n      goto LAB_0004dbbc;\n    }\n  }\n  else {\n    piStack_e0 = (int *)0x0;\n  }\n  uVar34 = puVar43[0x17];\n  iVar29 = -1;\n  puStack_16c = param_4;\n  uStack_108 = 6;\n  uVar6 = (uint)((int)puVar38 < (int)param_4);\n  puVar23 = puVar38;\n  if (uVar6 == 0) {\n    iVar29 = 1;\n    puVar23 = param_4;\n  }\n  if ((int)puVar38 <= (int)param_4) {\n    puVar38 = param_4;\n  }\n  if (puStack_1e0 == (uint *)0x0) goto LAB_0004eabc;\n  uVar11 = 4;\n  if (((uVar34 != 1) && (uVar11 = 0, -1 < (int)ppuVar24[3] << 9)) &&\n     (uVar11 = 4, puVar36 != (uint *)0x0)) {\n    uVar11 = 0;\n  }\n  uVar31 = 2;\n  if (uVar6 != 0) {\n    uVar31 = 0;\n  }\n  uVar31 = puVar36 != (uint *)0x0 | uVar11 | uVar31;\nLAB_0004dab0:\n  if (((int)puVar23 <= (int)param_4) && ((int)param_4 <= (int)puVar38)) {\n    ppuVar12 = &puStack_16c;\n    if (uVar6 != 0) {\n      ppuVar12 = (uint **)0x0;\n    }\n    iVar25 = *(int *)(puVar46 + 0x28244);\n    iVar13 = *(int *)(puVar46 + 0x27edc);\n    iVar26 = *(int *)(puVar46 + 0x2829c);\n    iVar30 = iStack_12c;\n    puVar36 = puStack_88;\n    do {\n      puStack_88 = puVar36;\n      if (uVar31 - 4 < 5) {\n                    \n                    \n        uVar6 = (*(code *)(puVar46 + *(int *)(iVar13 + 0x2be4 + (uVar31 - 4) * 4) + 0x2fea4))();\n        return uVar6;\n      }\n      iStack_12c = iVar30;\n      while( true ) {\n        puVar39 = (uint *)((int)param_4 - iVar30);\n        if (puStack_124 <= puVar39) {\n          uStack_1e4 = (*(code *)(iVar25 + 0x7eac))(&puStack_144,param_4,&_gp_1);\n          piVar17 = piStack_e0;\n          if (uStack_1e4 != 0) goto LAB_0004dbbc;\n          puVar39 = (uint *)((int)param_4 - iStack_12c);\n          iVar30 = iStack_12c;\n        }\n        if ((int)param_4 < (int)puVar36) {\n          cVar21 = *(char *)((int)puStack_1e0 + (uint)*(byte *)((int)puStack_140 + (int)puVar39));\n        }\n        else {\n          cVar21 = *(char *)puStack_1e0;\n        }\n        if (cVar21 != '\0') break;\n        param_4 = (uint *)((int)param_4 + iVar29);\n        puStack_16c = param_4;\n        if (((int)param_4 < (int)puVar23) || ((int)puVar38 < (int)param_4)) goto LAB_0004df68;\n      }\n      uVar11 = FUN_00047eac(&puStack_144,param_4,&_gp_1);\n      puVar36 = puStack_f0;\n      uVar6 = uStack_11c;\n      piVar17 = piStack_e0;\n      uStack_1e4 = uVar11;\n      if (uVar11 != 0) goto LAB_0004dbbc;\n      if (((uVar34 == 1) || (puStack_128 == (uint *)0x0)) || (*piStack_13c != -1)) {\n        iStack_cc = 0;\n        uStack_d8 = 0;\n        uVar41 = puStack_f0[9];\n        uStack_1d0 = uStack_11c;\n        iStack_dc = 0;\n        uStack_168 = 0;\n        if ((*(byte *)(uVar41 + 0x34) & 1) != 0) {\n          uVar14 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n          if ((uVar14 & 1) == 0) {\n            if (uVar14 == 0) goto LAB_0004dd24;\n            if ((uVar14 & 6) == 6) {\n              uVar41 = puVar36[0xc];\n            }\n            else if ((uVar14 & 2) == 0) {\n              if ((uVar14 & 4) == 0) goto LAB_0004dd24;\n              uVar41 = FUN_00046cac(&uStack_168,puVar36,*(undefined4 *)(uVar41 + 0x28),uVar14);\n            }\n            else {\n              uVar41 = puVar36[0xb];\n            }\n          }\n          else {\n            uVar41 = puVar36[10];\n          }\n          if (uVar41 == 0) goto code_r0x0004ea7c;\n        }\nLAB_0004dd24:\n        bVar4 = ppuVar12 != (uint **)0x0;\n        if ((piStack_e0 == (int *)0x0) ||\n           (uVar14 = puVar36[0x13], piStack_e0[uVar6] = uVar41, uVar14 == 0)) {\nLAB_0004dd48:\n          if (*(int *)(uVar41 + 0x34) << 4 < 0) {\n            if (((*(byte *)(uVar41 + 0x34) & 1) == 0) ||\n               (iVar30 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar41 + 8),uVar41 + 0xc,uVar6),\n               iVar30 != 0)) {\n              uVar14 = uVar6;\n              bVar5 = bVar22;\n              if (!bVar22) goto LAB_0004e0e4;\n            }\n            else {\n              uVar6 = 0xffffffff;\n              bVar5 = false;\n            }\n          }\n          else {\n            uVar6 = 0xffffffff;\n            bVar5 = false;\n          }\n          iVar30 = *(int *)(puVar46 + 0x28244);\n          iVar15 = *(int *)(puVar46 + 0x2829c);\n          uVar14 = uStack_11c;\n          ppuStack_1dc = ppuVar12;\n          while ((int)uVar14 < (int)puStack_10c) {\n            uVar40 = uVar14 + 1;\n            if ((((int)uVar40 < (int)uStack_120) || ((int)puStack_114 <= (int)uStack_120)) &&\n               (((int)uVar40 < (int)puStack_128 || ((int)puStack_114 <= (int)puStack_128)))) {\n              iVar16 = *(int *)(uVar41 + 0x34);\n              puVar36 = puStack_f0;\n            }\n            else {\n              uStack_168 = (*(code *)(iVar30 + 0x41e4))(&puStack_144,uVar14 + 2);\n              if (uStack_168 != 0) {\n                if (uStack_168 == 0xc) goto LAB_0004dbf8;\n                uVar20 = 0x46c;\n                goto LAB_0004ea9c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x34);\n              uVar14 = uStack_11c;\n              puVar36 = puStack_f0;\n            }\n            puStack_f0 = puVar36;\n            if (iVar16 << 5 < 0) {\n              iVar16 = *(int *)(uVar41 + 8);\n              if (0 < iVar16) {\n                param_4 = (uint *)0x0;\n                iVar18 = *(int *)(puVar46 + 0x28244);\n                pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7ab0);\n                do {\n                  uVar42 = *puVar36;\n                  iVar44 = *(int *)(*(int *)(uVar41 + 0xc) + (int)param_4 * 4);\n                  uVar37 = *(uint *)(uVar42 + iVar44 * 8 + 4);\n                  if ((uVar37 & 0x800) != 0) {\n                    if ((uVar37 & 0xffc000) != 0) {\n                      uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec);\n                      uVar37 = (uVar37 << 8) >> 0x16;\n                      if ((uVar37 & 4) == 0) {\n                        uVar27 = uVar19 & 1;\n                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    iVar16 = (*(code *)(iVar15 + -0x4eb0))\n                                       (uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14);\n                    if (iVar16 != 0) {\n                      if (iStack_cc < iVar16) {\n                        iStack_cc = iVar16;\n                      }\n                      iVar16 = iVar16 + uStack_11c;\n                      uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16);\n                      uVar14 = uStack_164;\n                      if (uStack_164 != 0) goto joined_r0x0004e770;\n                      piVar33 = piStack_e0 + iVar16;\n                      iVar28 = *piVar33;\n                      piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc);\n                      if (iVar28 == 0) {\n                        piStack_160 = (int *)*piVar17;\n                        piStack_15c = (int *)piVar17[1];\n                        iStack_158 = piVar17[2];\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        *piVar33 = iVar44;\n                      }\n                      else {\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }\n                      if ((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar16 = *(int *)(uVar41 + 8);\n                    uVar14 = uStack_11c;\n                  }\nLAB_0004e670:\n                  param_4 = (uint *)((int)param_4 + 1);\n                } while ((int)param_4 < iVar16);\n              }\n              uStack_168 = 0;\n            }\n            uStack_11c = uVar14 + 1;\n            uVar14 = (uint)*(byte *)((int)puStack_140 + uVar14);\n            do {\n              if (*(int *)(uVar41 + 0x2c) != 0) {\n                uVar37 = *(uint *)(*(int *)(uVar41 + 0x2c) + uVar14 * 4);\nLAB_0004ddf0:\n                if (piStack_e0 != (int *)0x0) goto LAB_0004ddfc;\n                goto LAB_0004de1c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x30);\n              if (iVar16 != 0) {\n                uVar37 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n                if ((uVar37 & 1) == 0) {\n                  uVar37 = *(uint *)(iVar16 + uVar14 * 4);\n                }\n                else {\n                  uVar37 = *(uint *)(iVar16 + (uVar14 + 0x100) * 4);\n                }\n                goto LAB_0004ddf0;\n              }\n              iVar16 = (*(code *)(iVar26 + -0x7510))(puStack_f0,uVar41);\n            } while (iVar16 != 0);\n            uStack_168 = 0xc;\n            uVar14 = uStack_168;\njoined_r0x0004e770:\n            uStack_168 = uVar14;\n            if (piStack_e0 == (int *)0x0) {\n              piVar17 = (int *)0x0;\n              goto LAB_0004dbb4;\n            }\n            uVar37 = 0;\nLAB_0004ddfc:\n            uVar37 = FUN_0004d0a8(&uStack_168,&puStack_144,uVar37);\nLAB_0004de1c:\n            uVar14 = uStack_11c;\n            if (uVar37 == 0) {\n              piVar17 = piStack_e0;\n              if (uStack_168 != 0) goto LAB_0004dbb4;\n              if ((piStack_e0 == (int *)0x0) || ((bVar5 && (!bVar22)))) break;\n              param_4 = &uStack_168;\n              do {\n                bVar2 = false;\n                piVar17 = piStack_e0 + uStack_11c;\n                uVar14 = uStack_11c;\n                do {\n                  uVar37 = uVar14 + 1;\n                  piVar17 = piVar17 + 1;\n                  if (iStack_dc < (int)uVar37) {\n                    if (bVar2) {\n                      uStack_11c = uVar14;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar2 = true;\n                  uVar14 = uVar37;\n                } while (*piVar17 == 0);\n                uStack_11c = uVar37;\n                uVar37 = FUN_0004d0a8(param_4,&puStack_144,0);\n                uVar14 = uStack_11c;\n                if (uStack_168 != 0) {\n                  if (uVar37 == 0) goto LAB_0004e0cc;\n                  break;\n                }\n              } while (uVar37 == 0);\n            }\n            uVar42 = uStack_1d0;\n            if ((bVar4) && (uVar42 = uVar40, uVar41 != uVar37)) {\n              bVar4 = false;\n              uVar42 = uStack_1d0;\n            }\n            uStack_1d0 = uVar42;\n            uVar41 = uVar37;\n            uStack_11c = uVar14;\n            if (((*(byte *)(uVar37 + 0x34) & 8) != 0) &&\n               (((*(byte *)(uVar37 + 0x34) & 1) == 0 ||\n                (iVar16 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar37 + 8),uVar37 + 0xc,uVar14)\n                , iVar16 != 0)))) {\n              if (!bVar22) goto LAB_0004e0e4;\n              ppuStack_1dc = (uint **)0x0;\n              uVar6 = uVar14;\n              bVar5 = bVar22;\n            }\n          }\nLAB_0004e0cc:\n          uVar14 = uVar6;\n          if (ppuStack_1dc != (uint **)0x0) {\n            *ppuStack_1dc = (uint *)((int)*ppuStack_1dc + uStack_1d0);\n          }\n        }\n        else {\n          uVar14 = FUN_00047924(&puStack_144,uVar41 + 8,uVar41 + 0xc,0);\n          uStack_168 = uVar14;\n          if (uVar14 == 0) {\n            if ((*(byte *)(uVar41 + 0x34) & 2) == 0) {\n              bVar4 = false;\n            }\n            else {\n              uVar14 = FUN_0004c6a8(&puStack_144,uVar41 + 8,uVar41 + 0xc);\n              uStack_168 = uVar14;\n              if (uVar14 != 0) goto LAB_0004e0e4;\n              bVar4 = false;\n            }\n            goto LAB_0004dd48;\n          }\n        }\nLAB_0004e0e4:\n        piVar17 = piStack_e0;\n        if (uVar14 != 0xffffffff) {\n          if (uVar14 == 0xfffffffe) goto LAB_0004dbf8;\n          uStack_e8 = uVar14;\n          if (((uint)ppuVar24[7] & 0x8000000) == 0) {\n            if (!bVar1) {\n              uVar6 = puVar43[0x13];\n              goto joined_r0x0004e94c;\n            }\n            pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n            iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                     piStack_e0[uVar14] + 0xc,uVar14);\n            if ((*(char *)(puVar43 + 0x16) < '\0') || (puVar43[0x13] != 0)) goto LAB_0004e170;\n          }\n          else {\n            uVar6 = puVar43[0x13];\njoined_r0x0004e94c:\n            if (uVar6 != 0) {\n              pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n              iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                       piStack_e0[uVar14] + 0xc,uVar14);\nLAB_0004e170:\n              iVar30 = iStack_e4;\n              puVar36 = puStack_f0;\n              if (uVar14 < 0x3fffffff) {\n                uStack_1f0 = uVar14 + 1;\n                piVar17 = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                if (piVar17 == (int *)0x0) goto LAB_0004dbf8;\n                if (puVar36[0x13] == 0) {\n                  piStack_15c = (int *)0x0;\n                  uStack_150 = 0;\n                  uStack_14c = 0;\n                  uStack_148 = 0;\n                  piStack_160 = piVar17;\n                  iStack_158 = iVar30;\n                  uStack_154 = uVar14;\n                  uStack_1e4 = FUN_0004d30c(&puStack_144,&piStack_160);\n                  (**(code **)(puVar46 + 0x28520))(uStack_148);\n                  if (uStack_1e4 == 0) {\n                    if (*piVar17 == 0) {\n                      (**(code **)(puVar46 + 0x28520))(piVar17);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar46 + 0x28520))(piStack_e0);\n                    uStack_e8 = uVar14;\n                    iStack_e4 = iVar30;\n                    piStack_e0 = piVar17;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  piStack_1ec = (int *)0x0;\n                }\n                else {\n                  piStack_1ec = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                  if (piStack_1ec == (int *)0x0) {\n                    (**(code **)(puVar46 + 0x28520))(piVar17);\n                    uStack_1e4 = 0xc;\n                    piVar17 = piStack_e0;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar15 = *(int *)(puVar46 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);\n                    uStack_150 = 0;\n                    uStack_14c = 0;\n                    uStack_148 = 0;\n                    piStack_160 = piVar17;\n                    piStack_15c = piStack_1ec;\n                    iStack_158 = iVar30;\n                    uStack_154 = uVar14;\n                    uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);\n                    (**(code **)(puVar46 + 0x28520))(uStack_148);\n                    if (uStack_1e4 != 0) break;\n                    if ((*piVar17 != 0) || (*piStack_1ec != 0)) {\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    piVar33 = piStack_e0 + (uStack_1f0 - 1);\n                    uStack_1f0 = uVar14;\n                    while( true ) {\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }\n                    iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       );\n                  }\n                }\n                (**(code **)(puVar46 + 0x28520))(piVar17);\n                (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                piVar17 = piStack_e0;\n                if (uStack_1e4 == 1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }\n              uStack_1e4 = 0xc;\n              goto LAB_0004dbbc;\n            }\n          }\nLAB_0004e7e0:\n          piVar17 = piStack_e0;\n          uStack_1e4 = uVar11;\n          if (local_78 == (uint *)0x0) goto LAB_0004dbbc;\n          puVar23 = ppuVar24[7];\n          if (bVar1) {\n            piVar17 = piStack_74 + 2;\n            do {\n              piVar17[1] = -1;\n              piVar33 = piVar17 + 2;\n              *piVar17 = -1;\n              piVar17 = piVar33;\n            } while (piStack_74 + (int)local_78 * 2 != piVar33);\n            *piStack_74 = 0;\n            piStack_74[1] = uStack_e8;\n            if (((uint)puVar23 & 0x8000000) == 0) {\n              if (*(char *)(puVar43 + 0x16) < '\0') {\n                bVar22 = 0 < (int)puVar43[0x13];\n              }\n              else {\n                bVar22 = false;\n              }\n              uStack_1e4 = FUN_0004bc00(ppuVar24,&puStack_144,local_78,piStack_74,bVar22);\n              piVar17 = piStack_e0;\n              if (uStack_1e4 != 0) goto LAB_0004dbbc;\n              puVar23 = (uint *)*piStack_74;\n            }\n            else {\nLAB_0004e838:\n              puVar23 = (uint *)0x0;\n            }\n            puVar36 = (uint *)0x0;\n            piVar17 = piStack_74;\n            while( true ) {\n              if (puVar23 != (uint *)0xffffffff) {\n                puVar32 = (uint *)piVar17[1];\n                puVar39 = puVar23;\n                puVar38 = puVar32;\n                if (cStack_f8 != '\0') {\n                  puVar39 = puStack_124;\n                  if (puStack_128 != puVar23) {\n                    puVar39 = *(uint **)(iStack_138 + (int)puVar23 * 4);\n                  }\n                  *piVar17 = (int)puVar39;\n                  puVar38 = puStack_124;\n                  if (puStack_128 != puVar32) {\n                    puVar38 = *(uint **)(iStack_138 + (int)puVar32 * 4);\n                  }\n                }\n                *piVar17 = (int)puStack_16c + (int)puVar39;\n                piVar17[1] = (int)puStack_16c + (int)puVar38;\n              }\n              puVar36 = (uint *)((int)puVar36 + 1);\n              piVar17 = piVar17 + 2;\n              if (puVar36 == local_78) break;\n              puVar23 = (uint *)*piVar17;\n            }\n            if (0 < iStack_180) {\n              piVar17 = piStack_74 + (int)local_78 * 2;\n              do {\n                *piVar17 = -1;\n                piVar33 = piVar17 + 2;\n                piVar17[1] = -1;\n                piVar17 = piVar33;\n              } while (piStack_74 + (iStack_180 + (int)local_78) * 2 != piVar33);\n            }\n            piVar33 = (int *)puVar43[0x21];\n            piVar17 = piStack_e0;\n            uStack_1e4 = uVar11;\n            if (piVar33 != (int *)0x0) {\n              iVar29 = 0;\n              piVar3 = piStack_74;\n              do {\n                pcVar45 = *(code **)(puVar46 + 0x28520);\n                if (iVar29 == (int)local_78 + -1) goto LAB_0004dbc0;\n                if (*piVar33 != iVar29) {\n                  piVar3[2] = piStack_74[(*piVar33 + 1) * 2];\n                  piVar3[3] = piStack_74[(*piVar33 + 1) * 2 + 1];\n                }\n                iVar29 = iVar29 + 1;\n                piVar33 = piVar33 + 1;\n                piVar3 = piVar3 + 2;\n              } while( true );\n            }\n            goto LAB_0004dbbc;\n          }\n          *piStack_74 = 0;\n          piStack_74[1] = uStack_e8;\n          goto LAB_0004e838;\n        }\nLAB_0004e2d4:\n        FUN_00044db0(&puStack_144);\n        param_4 = puStack_16c;\n      }\n      param_4 = (uint *)((int)param_4 + iVar29);\n      puStack_16c = param_4;\n      if (((int)param_4 < (int)puVar23) ||\n         (iVar30 = iStack_12c, puVar36 = puStack_88, (int)puVar38 < (int)param_4)) break;\n    } while( true );\n  }\nLAB_0004df68:\n  uStack_1e4 = 1;\n  piVar17 = piStack_e0;\n  goto LAB_0004dbbc;\ncode_r0x0004ea7c:\n  uStack_1e4 = uStack_168;\n  piVar17 = piStack_e0;\n  if (uStack_168 == 0xc) goto LAB_0004dbbc;\n  uVar20 = 0x435;\nLAB_0004ea9c:\n  (**(code **)(puVar46 + 0x282f4))\n            (*(int *)(puVar46 + 0x27edc) + 0x2b30,*(int *)(puVar46 + 0x27edc) + 0x2ac0,uVar20,\n             *(int *)(puVar46 + 0x27edc) + 0x3030);\n  uVar6 = extraout_v1;\n  ppuVar24 = &puStack_144;\nLAB_0004eabc:\n  uVar31 = 8;\n  goto LAB_0004dab0;\n}\n\n" (function_definition "uint FUN_0004d30c(uint *param_1,uint *param_2,uint *param_3,uint *param_4)\n\n{\n  bool bVar1;\n  bool bVar2;\n  int *piVar3;\n  bool bVar4;\n  bool bVar5;\n  uint uVar6;\n  code *pcVar7;\n  code *pcVar8;\n  code *pcVar9;\n  int *piVar10;\n  uint uVar11;\n  uint **ppuVar12;\n  int iVar13;\n  uint uVar14;\n  int iVar15;\n  int iVar16;\n  int *piVar17;\n  char cVar21;\n  int iVar18;\n  uint uVar19;\n  undefined4 uVar20;\n  bool bVar22;\n  uint *puVar23;\n  uint extraout_v1;\n  uint **ppuVar24;\n  int iVar25;\n  int iVar26;\n  uint uVar27;\n  int iVar28;\n  int iVar29;\n  int iVar30;\n  uint uVar31;\n  uint *puVar32;\n  int *piVar33;\n  uint uVar34;\n  undefined4 *puVar35;\n  uint *puVar36;\n  uint uVar37;\n  uint *puVar38;\n  uint *puVar39;\n  uint uVar40;\n  int *unaff_s4;\n  uint uVar41;\n  int unaff_s5;\n  uint uVar42;\n  int unaff_s6;\n  uint *puVar43;\n  int iVar44;\n  uint *unaff_s7;\n  code *pcVar45;\n  undefined *puVar46;\n  int unaff_s8;\n  uint uStack_1f0;\n  int *piStack_1ec;\n  uint uStack_1e4;\n  uint *puStack_1e0;\n  uint **ppuStack_1dc;\n  uint uStack_1d0;\n  int iStack_180;\n  uint *puStack_16c;\n  uint uStack_168;\n  uint uStack_164;\n  int *piStack_160;\n  int *piStack_15c;\n  int iStack_158;\n  uint uStack_154;\n  undefined4 uStack_150;\n  undefined4 uStack_14c;\n  undefined4 uStack_148;\n  uint *puStack_144;\n  uint *puStack_140;\n  int *piStack_13c;\n  int iStack_138;\n  int iStack_12c;\n  uint *puStack_128;\n  uint *puStack_124;\n  uint uStack_120;\n  uint uStack_11c;\n  uint *puStack_118;\n  uint *puStack_114;\n  uint *puStack_110;\n  uint *puStack_10c;\n  undefined4 uStack_108;\n  uint *puStack_104;\n  uint *puStack_100;\n  byte bStack_fc;\n  byte bStack_fb;\n  byte bStack_fa;\n  byte bStack_f9;\n  char cStack_f8;\n  byte bStack_f7;\n  byte bStack_f6;\n  uint uStack_f4;\n  uint *puStack_f0;\n  undefined1 *puStack_ec;\n  uint uStack_e8;\n  int iStack_e4;\n  int *piStack_e0;\n  int iStack_dc;\n  undefined4 uStack_d8;\n  int iStack_d4;\n  int iStack_d0;\n  int iStack_cc;\n  int iStack_c4;\n  int iStack_c0;\n  int iStack_bc;\n  uint *puStack_b8;\n  uint *puStack_b4;\n  uint *puStack_b0;\n  uint *puStack_ac;\n  int *piStack_a8;\n  int iStack_a4;\n  int iStack_a0;\n  uint *puStack_9c;\n  int iStack_98;\n  code *pcStack_94;\n  uint *puStack_88;\n  uint *local_80;\n  uint *local_7c;\n  uint *local_78;\n  int *piStack_74;\n  int local_64;\n  uint local_38;\n  undefined4 local_34;\n  undefined4 *local_30;\n  uint **local_2c;\n  \n  puVar46 = PTR___stack_chk_guard_00075be8;\n  local_38 = 1;\n  local_34 = 1;\n  local_2c = *(uint ***)PTR___stack_chk_guard_00075be8;\n  puVar36 = (uint *)param_2[3];\n  puVar39 = (uint *)param_2[2];\n  puVar23 = param_2;\n  local_30 = (undefined4 *)(*(code *)PTR_malloc_00075b2c)(4);\n  if (local_30 == (undefined4 *)0x0) {\n    uVar6 = 0xc;\n  }\n  else {\n    *local_30 = puVar39;\n    pcVar45 = (code *)(PTR_DAT_00075978 + -0x1248);\n    puVar23 = param_2;\n    param_3 = puVar36;\n    param_4 = &local_38;\n    uVar6 = FUN_0004edb8(param_1);\n    if (uVar6 == 0) {\n      local_64 = 0;\n      if (0 < (int)puVar36) {\n        pcVar7 = (code *)(PTR_LAB_00075920 + 0x5610);\n        pcVar8 = (code *)(PTR_LAB_00075920 + 0x33f8);\n        pcVar9 = (code *)(PTR_LAB_00075920 + 0x5230);\n        do {\n          unaff_s7 = (uint *)((int)puVar36 * 4);\n          if (*(int *)(*param_2 + (int)unaff_s7) == 0) {\n            local_64 = local_64 + 1;\n            if ((int)param_1[0x1e] < local_64) goto LAB_0004d6a0;\n          }\n          else {\n            local_64 = 0;\n            if ((int)param_1[0x1e] < 0) {\nLAB_0004d6a0:\n              puVar23 = (uint *)0x0;\n              param_3 = unaff_s7;\n              (*(code *)PTR_memset_00075ad4)();\n              (*(code *)PTR_free_00075bfc)(local_30);\n              uVar6 = 0;\n              goto LAB_0004d644;\n            }\n          }\n          local_34 = 0;\n          unaff_s6 = *(int *)((int)unaff_s7 + (param_1[0x19] - 4));\n          puVar36 = (uint *)((int)puVar36 + -1);\n          if ((unaff_s6 != 0) && (unaff_s4 = (int *)param_1[0x15], 0 < *(int *)(unaff_s6 + 0x14))) {\n            unaff_s5 = 0;\n            do {\n              puVar39 = *(uint **)(*(int *)(unaff_s6 + 0x18) + unaff_s5 * 4);\n              unaff_s8 = (int)puVar39 * 8;\n              iVar29 = *unaff_s4 + unaff_s8;\n              if ((*(uint *)(iVar29 + 4) & 0x800) == 0) {\nLAB_0004d464:\n                iVar29 = FUN_00047bf8(param_1,iVar29,puVar36);\n                if (iVar29 != 0) {\n                  iVar29 = *(int *)(*param_2 + (int)unaff_s7);\n                  if (iVar29 != 0) {\n                    param_3 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc);\n                    iVar29 = 1;\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                }\n              }\n              else {\n                puVar35 = (undefined4 *)param_1[0x15];\n                uVar6 = param_2[3];\n                param_3 = puVar39;\n                param_4 = param_1;\n                local_80 = puVar36;\n                iVar29 = FUN_0004b150(*puVar35,puVar35 + 0x20);\n                if (iVar29 < 1) {\n                  if (iVar29 == 0) {\n                    iVar29 = *unaff_s4;\n                    goto LAB_0004d460;\n                  }\n                }\n                else if ((int)puVar36 + iVar29 <= (int)uVar6) {\n                  iVar30 = *(int *)(*param_2 + ((int)puVar36 + iVar29) * 4);\n                  if (iVar30 != 0) {\n                    param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                  iVar29 = *unaff_s4;\nLAB_0004d460:\n                  iVar29 = iVar29 + unaff_s8;\n                  goto LAB_0004d464;\n                }\nLAB_0004d4b4:\n                if (param_2[5] != 0) {\n                  local_80 = (uint *)((int)puVar36 + iVar29);\n                  param_3 = param_2 + 6;\n                  param_4 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                  local_7c = puVar39;\n                  local_78 = puVar36;\n                  iVar29 = (*pcVar7)(param_1,param_2 + 5);\n                  if (iVar29 != 0) goto LAB_0004d510;\n                }\n                puVar23 = puVar39;\n                iVar29 = (*pcVar8)(&local_38);\n                if (iVar29 == 0) {\n                  uVar6 = 0xc;\n                  goto LAB_0004d62c;\n                }\n              }\nLAB_0004d510:\n              unaff_s5 = unaff_s5 + 1;\n              param_4 = &local_38;\n            } while (unaff_s5 < *(int *)(unaff_s6 + 0x14));\n          }\n          puVar23 = param_2;\n          param_3 = puVar36;\n          param_4 = &local_38;\n          uVar6 = (*pcVar45)(param_1);\n          if (uVar6 != 0) goto LAB_0004d62c;\n        } while (puVar36 != (uint *)0x0);\n      }\n      uVar6 = 0;\n    }\nLAB_0004d62c:\n    (*(code *)PTR_free_00075bfc)(local_30);\n  }\nLAB_0004d644:\n  if (local_2c == *(uint ***)puVar46) {\n    return uVar6;\n  }\n  pcVar45 = FUN_0004d6dc;\n  ppuVar24 = local_2c;\n  puVar46 = PTR___stack_chk_fail_00075ba8;\n  (*(code *)PTR___stack_chk_fail_00075ba8)();\n  puVar32 = local_7c;\n  puVar38 = local_80;\n  piVar10 = *(int **)(puVar46 + 0x2850c);\n  iStack_bc = *piVar10;\n  puVar43 = *ppuVar24;\n  puStack_b8 = puVar36;\n  puStack_b4 = param_2;\n  puStack_b0 = param_1;\n  puStack_ac = puVar39;\n  piStack_a8 = unaff_s4;\n  iStack_a4 = unaff_s5;\n  iStack_a0 = unaff_s6;\n  puStack_9c = unaff_s7;\n  iStack_98 = unaff_s8;\n  pcStack_94 = pcVar45;\n  puStack_88 = param_3;\n  (**(code **)(puVar46 + 0x283f8))(&puStack_144,0,0x88);\n  puStack_1e0 = ppuVar24[4];\n  if (puStack_1e0 != (uint *)0x0) {\n    if (((*(byte *)(ppuVar24 + 7) & 0x10) == 0) || (param_4 == puVar38)) {\n      puStack_1e0 = (uint *)0x0;\n    }\n    else if ((char)*(byte *)(ppuVar24 + 7) < '\0') {\n      puStack_1e0 = (uint *)0x0;\n    }\n  }\n  puVar36 = ppuVar24[6];\n  if (puVar36 < local_78) {\n    iStack_180 = ((int)local_78 + -1) - (int)puVar36;\n    local_78 = (uint *)((int)local_78 + ((int)puVar36 - ((int)local_78 + -1)));\n    puVar36 = ppuVar24[2];\n  }\n  else {\n    puVar36 = ppuVar24[2];\n    iStack_180 = 0;\n  }\n  puStack_f0 = puVar43;\n  if ((((puVar36 == (uint *)0x0) || (puVar43[9] == 0)) || (puVar43[10] == 0)) ||\n     ((puVar43[0xb] == 0 || (puVar43[0xc] == 0)))) {\nLAB_0004db54:\n    uStack_1e4 = 1;\n    goto LAB_0004db58;\n  }\n  if (((*(int *)(puVar43[9] + 8) == 0) && (*(int *)(puVar43[10] + 8) == 0)) &&\n     ((*(int *)(puVar43[0xb] + 8) == 0 || (((uint)ppuVar24[7] & 0x1000000) == 0)))) {\n    if (param_4 == (uint *)0x0) {\n      puVar38 = (uint *)0x0;\n    }\n    else {\n      if (puVar38 != (uint *)0x0) goto LAB_0004db54;\n      param_4 = (uint *)0x0;\n    }\n  }\n  if (local_78 == (uint *)0x0) {\n    bVar22 = puVar43[0x13] != 0;\n  }\n  else {\n    bVar22 = true;\n  }\n  uStack_f4 = puVar43[0x17];\n  puVar36 = ppuVar24[5];\n  uVar6 = puVar43[2] + 1;\n  if ((int)(puVar43[2] + 1) < (int)uStack_f4) {\n    uVar6 = uStack_f4;\n  }\n  bStack_fc = (byte)((uint)((int)ppuVar24[3] << 9) >> 0x18);\n  bStack_f9 = 1;\n  if (puVar36 == (uint *)0x0) {\n    bStack_f9 = bStack_fc >> 7;\n  }\n  uVar34 = (int)puStack_88 + 1U;\n  if ((int)uVar6 <= (int)((int)puStack_88 + 1U)) {\n    uVar34 = uVar6;\n  }\n  bStack_fc = bStack_fc >> 7;\n  bStack_fb = (byte)((puVar43[0x16] << 2) >> 0x1f);\n  bStack_fa = (byte)((puVar43[0x16] << 3) >> 0x1f);\n  puStack_114 = puStack_88;\n  puStack_118 = puStack_88;\n  puStack_10c = puStack_88;\n  puStack_110 = puStack_88;\n  puStack_144 = puVar23;\n  puStack_104 = puVar36;\n  uStack_1e4 = FUN_00043278(&puStack_144,uVar34);\n  piVar17 = piStack_e0;\n  if (uStack_1e4 != 0) {\nLAB_0004dbbc:\n    while( true ) {\n      pcVar45 = *(code **)(puVar46 + 0x28520);\nLAB_0004dbc0:\n      (*pcVar45)(piVar17);\n      if (puVar43[0x13] != 0) {\nLAB_0004dc14:\n        FUN_00044db0(&puStack_144);\n        (**(code **)(puVar46 + 0x28520))(iStack_c0);\n        (**(code **)(puVar46 + 0x28520))(iStack_d0);\n      }\nLAB_0004dbd4:\n      FUN_00044d40(&puStack_144);\nLAB_0004db58:\n      if (iStack_bc == *piVar10) break;\n      uStack_1e4 = (**(code **)(puVar46 + 0x284cc))();\n      piVar17 = piStack_e0;\n    }\n    return uStack_1e4;\n  }\n  puStack_100 = puVar43 + 0x18;\n  bStack_f6 = (byte)((puVar43[0x16] << 4) >> 0x1f);\n  if ((bStack_f9 != 0) || (puStack_140 = puVar23, puStack_128 = puStack_88, 1 < (int)puVar43[0x17]))\n  {\n    puStack_128 = (uint *)0x0;\n  }\n  puStack_10c = puVar32;\n  puStack_110 = puVar32;\n  puStack_124 = puStack_128;\n  bStack_f7 = (byte)((uint)((int)ppuVar24[7] << 7) >> 0x1f);\n  uVar6 = puVar43[0x13];\n  iVar29 = uVar6 * 2;\n  puStack_ec = &_gp_1;\n  uStack_e8 = 0xffffffff;\n  if (0 < iVar29) {\n    if (0xccccccc < iVar29) goto LAB_0004dbf8;\n    iVar30 = (**(code **)(puVar46 + 0x28450))(uVar6 * 0x28);\n    iStack_d0 = iVar30;\n    iStack_c0 = (**(code **)(puVar46 + 0x28450))(uVar6 * 8);\n    if ((iVar30 == 0) || (iStack_c0 == 0)) goto LAB_0004dbf8;\n  }\n  iStack_d4 = iVar29;\n  iStack_c4 = iVar29;\n  bVar1 = (uint *)0x1 < local_78;\n  iStack_cc = 1;\n  if ((bVar1) || ((puVar43[0x16] & 0x40000000) != 0)) {\n    if (0x3ffffffe < uStack_120) {\nLAB_0004dbf8:\n      uStack_1e4 = 0xc;\n      (**(code **)(puVar46 + 0x28520))(piStack_e0);\n      if (puVar43[0x13] == 0) goto LAB_0004dbd4;\n      goto LAB_0004dc14;\n    }\n    piStack_e0 = (int *)(**(code **)(puVar46 + 0x28450))((uStack_120 + 1) * 4);\n    piVar17 = piStack_e0;\n    if (piStack_e0 == (int *)0x0) {\nLAB_0004dbb4:\n      uStack_1e4 = 0xc;\n      goto LAB_0004dbbc;\n    }\n  }\n  else {\n    piStack_e0 = (int *)0x0;\n  }\n  uVar34 = puVar43[0x17];\n  iVar29 = -1;\n  puStack_16c = param_4;\n  uStack_108 = 6;\n  uVar6 = (uint)((int)puVar38 < (int)param_4);\n  puVar23 = puVar38;\n  if (uVar6 == 0) {\n    iVar29 = 1;\n    puVar23 = param_4;\n  }\n  if ((int)puVar38 <= (int)param_4) {\n    puVar38 = param_4;\n  }\n  if (puStack_1e0 == (uint *)0x0) goto LAB_0004eabc;\n  uVar11 = 4;\n  if (((uVar34 != 1) && (uVar11 = 0, -1 < (int)ppuVar24[3] << 9)) &&\n     (uVar11 = 4, puVar36 != (uint *)0x0)) {\n    uVar11 = 0;\n  }\n  uVar31 = 2;\n  if (uVar6 != 0) {\n    uVar31 = 0;\n  }\n  uVar31 = puVar36 != (uint *)0x0 | uVar11 | uVar31;\nLAB_0004dab0:\n  if (((int)puVar23 <= (int)param_4) && ((int)param_4 <= (int)puVar38)) {\n    ppuVar12 = &puStack_16c;\n    if (uVar6 != 0) {\n      ppuVar12 = (uint **)0x0;\n    }\n    iVar25 = *(int *)(puVar46 + 0x28244);\n    iVar13 = *(int *)(puVar46 + 0x27edc);\n    iVar26 = *(int *)(puVar46 + 0x2829c);\n    iVar30 = iStack_12c;\n    puVar36 = puStack_88;\n    do {\n      puStack_88 = puVar36;\n      if (uVar31 - 4 < 5) {\n                    \n                    \n        uVar6 = (*(code *)(puVar46 + *(int *)(iVar13 + 0x2be4 + (uVar31 - 4) * 4) + 0x2fea4))();\n        return uVar6;\n      }\n      iStack_12c = iVar30;\n      while( true ) {\n        puVar39 = (uint *)((int)param_4 - iVar30);\n        if (puStack_124 <= puVar39) {\n          uStack_1e4 = (*(code *)(iVar25 + 0x7eac))(&puStack_144,param_4,&_gp_1);\n          piVar17 = piStack_e0;\n          if (uStack_1e4 != 0) goto LAB_0004dbbc;\n          puVar39 = (uint *)((int)param_4 - iStack_12c);\n          iVar30 = iStack_12c;\n        }\n        if ((int)param_4 < (int)puVar36) {\n          cVar21 = *(char *)((int)puStack_1e0 + (uint)*(byte *)((int)puStack_140 + (int)puVar39));\n        }\n        else {\n          cVar21 = *(char *)puStack_1e0;\n        }\n        if (cVar21 != '\0') break;\n        param_4 = (uint *)((int)param_4 + iVar29);\n        puStack_16c = param_4;\n        if (((int)param_4 < (int)puVar23) || ((int)puVar38 < (int)param_4)) goto LAB_0004df68;\n      }\n      uVar11 = FUN_00047eac(&puStack_144,param_4,&_gp_1);\n      puVar36 = puStack_f0;\n      uVar6 = uStack_11c;\n      piVar17 = piStack_e0;\n      uStack_1e4 = uVar11;\n      if (uVar11 != 0) goto LAB_0004dbbc;\n      if (((uVar34 == 1) || (puStack_128 == (uint *)0x0)) || (*piStack_13c != -1)) {\n        iStack_cc = 0;\n        uStack_d8 = 0;\n        uVar41 = puStack_f0[9];\n        uStack_1d0 = uStack_11c;\n        iStack_dc = 0;\n        uStack_168 = 0;\n        if ((*(byte *)(uVar41 + 0x34) & 1) != 0) {\n          uVar14 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n          if ((uVar14 & 1) == 0) {\n            if (uVar14 == 0) goto LAB_0004dd24;\n            if ((uVar14 & 6) == 6) {\n              uVar41 = puVar36[0xc];\n            }\n            else if ((uVar14 & 2) == 0) {\n              if ((uVar14 & 4) == 0) goto LAB_0004dd24;\n              uVar41 = FUN_00046cac(&uStack_168,puVar36,*(undefined4 *)(uVar41 + 0x28),uVar14);\n            }\n            else {\n              uVar41 = puVar36[0xb];\n            }\n          }\n          else {\n            uVar41 = puVar36[10];\n          }\n          if (uVar41 == 0) goto code_r0x0004ea7c;\n        }\nLAB_0004dd24:\n        bVar4 = ppuVar12 != (uint **)0x0;\n        if ((piStack_e0 == (int *)0x0) ||\n           (uVar14 = puVar36[0x13], piStack_e0[uVar6] = uVar41, uVar14 == 0)) {\nLAB_0004dd48:\n          if (*(int *)(uVar41 + 0x34) << 4 < 0) {\n            if (((*(byte *)(uVar41 + 0x34) & 1) == 0) ||\n               (iVar30 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar41 + 8),uVar41 + 0xc,uVar6),\n               iVar30 != 0)) {\n              uVar14 = uVar6;\n              bVar5 = bVar22;\n              if (!bVar22) goto LAB_0004e0e4;\n            }\n            else {\n              uVar6 = 0xffffffff;\n              bVar5 = false;\n            }\n          }\n          else {\n            uVar6 = 0xffffffff;\n            bVar5 = false;\n          }\n          iVar30 = *(int *)(puVar46 + 0x28244);\n          iVar15 = *(int *)(puVar46 + 0x2829c);\n          uVar14 = uStack_11c;\n          ppuStack_1dc = ppuVar12;\n          while ((int)uVar14 < (int)puStack_10c) {\n            uVar40 = uVar14 + 1;\n            if ((((int)uVar40 < (int)uStack_120) || ((int)puStack_114 <= (int)uStack_120)) &&\n               (((int)uVar40 < (int)puStack_128 || ((int)puStack_114 <= (int)puStack_128)))) {\n              iVar16 = *(int *)(uVar41 + 0x34);\n              puVar36 = puStack_f0;\n            }\n            else {\n              uStack_168 = (*(code *)(iVar30 + 0x41e4))(&puStack_144,uVar14 + 2);\n              if (uStack_168 != 0) {\n                if (uStack_168 == 0xc) goto LAB_0004dbf8;\n                uVar20 = 0x46c;\n                goto LAB_0004ea9c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x34);\n              uVar14 = uStack_11c;\n              puVar36 = puStack_f0;\n            }\n            puStack_f0 = puVar36;\n            if (iVar16 << 5 < 0) {\n              iVar16 = *(int *)(uVar41 + 8);\n              if (0 < iVar16) {\n                param_4 = (uint *)0x0;\n                iVar18 = *(int *)(puVar46 + 0x28244);\n                pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7ab0);\n                do {\n                  uVar42 = *puVar36;\n                  iVar44 = *(int *)(*(int *)(uVar41 + 0xc) + (int)param_4 * 4);\n                  uVar37 = *(uint *)(uVar42 + iVar44 * 8 + 4);\n                  if ((uVar37 & 0x800) != 0) {\n                    if ((uVar37 & 0xffc000) != 0) {\n                      uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec);\n                      uVar37 = (uVar37 << 8) >> 0x16;\n                      if ((uVar37 & 4) == 0) {\n                        uVar27 = uVar19 & 1;\n                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    iVar16 = (*(code *)(iVar15 + -0x4eb0))\n                                       (uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14);\n                    if (iVar16 != 0) {\n                      if (iStack_cc < iVar16) {\n                        iStack_cc = iVar16;\n                      }\n                      iVar16 = iVar16 + uStack_11c;\n                      uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16);\n                      uVar14 = uStack_164;\n                      if (uStack_164 != 0) goto joined_r0x0004e770;\n                      piVar33 = piStack_e0 + iVar16;\n                      iVar28 = *piVar33;\n                      piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc);\n                      if (iVar28 == 0) {\n                        piStack_160 = (int *)*piVar17;\n                        piStack_15c = (int *)piVar17[1];\n                        iStack_158 = piVar17[2];\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        *piVar33 = iVar44;\n                      }\n                      else {\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }\n                      if ((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar16 = *(int *)(uVar41 + 8);\n                    uVar14 = uStack_11c;\n                  }\nLAB_0004e670:\n                  param_4 = (uint *)((int)param_4 + 1);\n                } while ((int)param_4 < iVar16);\n              }\n              uStack_168 = 0;\n            }\n            uStack_11c = uVar14 + 1;\n            uVar14 = (uint)*(byte *)((int)puStack_140 + uVar14);\n            do {\n              if (*(int *)(uVar41 + 0x2c) != 0) {\n                uVar37 = *(uint *)(*(int *)(uVar41 + 0x2c) + uVar14 * 4);\nLAB_0004ddf0:\n                if (piStack_e0 != (int *)0x0) goto LAB_0004ddfc;\n                goto LAB_0004de1c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x30);\n              if (iVar16 != 0) {\n                uVar37 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n                if ((uVar37 & 1) == 0) {\n                  uVar37 = *(uint *)(iVar16 + uVar14 * 4);\n                }\n                else {\n                  uVar37 = *(uint *)(iVar16 + (uVar14 + 0x100) * 4);\n                }\n                goto LAB_0004ddf0;\n              }\n              iVar16 = (*(code *)(iVar26 + -0x7510))(puStack_f0,uVar41);\n            } while (iVar16 != 0);\n            uStack_168 = 0xc;\n            uVar14 = uStack_168;\njoined_r0x0004e770:\n            uStack_168 = uVar14;\n            if (piStack_e0 == (int *)0x0) {\n              piVar17 = (int *)0x0;\n              goto LAB_0004dbb4;\n            }\n            uVar37 = 0;\nLAB_0004ddfc:\n            uVar37 = FUN_0004d0a8(&uStack_168,&puStack_144,uVar37);\nLAB_0004de1c:\n            uVar14 = uStack_11c;\n            if (uVar37 == 0) {\n              piVar17 = piStack_e0;\n              if (uStack_168 != 0) goto LAB_0004dbb4;\n              if ((piStack_e0 == (int *)0x0) || ((bVar5 && (!bVar22)))) break;\n              param_4 = &uStack_168;\n              do {\n                bVar2 = false;\n                piVar17 = piStack_e0 + uStack_11c;\n                uVar14 = uStack_11c;\n                do {\n                  uVar37 = uVar14 + 1;\n                  piVar17 = piVar17 + 1;\n                  if (iStack_dc < (int)uVar37) {\n                    if (bVar2) {\n                      uStack_11c = uVar14;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar2 = true;\n                  uVar14 = uVar37;\n                } while (*piVar17 == 0);\n                uStack_11c = uVar37;\n                uVar37 = FUN_0004d0a8(param_4,&puStack_144,0);\n                uVar14 = uStack_11c;\n                if (uStack_168 != 0) {\n                  if (uVar37 == 0) goto LAB_0004e0cc;\n                  break;\n                }\n              } while (uVar37 == 0);\n            }\n            uVar42 = uStack_1d0;\n            if ((bVar4) && (uVar42 = uVar40, uVar41 != uVar37)) {\n              bVar4 = false;\n              uVar42 = uStack_1d0;\n            }\n            uStack_1d0 = uVar42;\n            uVar41 = uVar37;\n            uStack_11c = uVar14;\n            if (((*(byte *)(uVar37 + 0x34) & 8) != 0) &&\n               (((*(byte *)(uVar37 + 0x34) & 1) == 0 ||\n                (iVar16 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar37 + 8),uVar37 + 0xc,uVar14)\n                , iVar16 != 0)))) {\n              if (!bVar22) goto LAB_0004e0e4;\n              ppuStack_1dc = (uint **)0x0;\n              uVar6 = uVar14;\n              bVar5 = bVar22;\n            }\n          }\nLAB_0004e0cc:\n          uVar14 = uVar6;\n          if (ppuStack_1dc != (uint **)0x0) {\n            *ppuStack_1dc = (uint *)((int)*ppuStack_1dc + uStack_1d0);\n          }\n        }\n        else {\n          uVar14 = FUN_00047924(&puStack_144,uVar41 + 8,uVar41 + 0xc,0);\n          uStack_168 = uVar14;\n          if (uVar14 == 0) {\n            if ((*(byte *)(uVar41 + 0x34) & 2) == 0) {\n              bVar4 = false;\n            }\n            else {\n              uVar14 = FUN_0004c6a8(&puStack_144,uVar41 + 8,uVar41 + 0xc);\n              uStack_168 = uVar14;\n              if (uVar14 != 0) goto LAB_0004e0e4;\n              bVar4 = false;\n            }\n            goto LAB_0004dd48;\n          }\n        }\nLAB_0004e0e4:\n        piVar17 = piStack_e0;\n        if (uVar14 != 0xffffffff) {\n          if (uVar14 == 0xfffffffe) goto LAB_0004dbf8;\n          uStack_e8 = uVar14;\n          if (((uint)ppuVar24[7] & 0x8000000) == 0) {\n            if (!bVar1) {\n              uVar6 = puVar43[0x13];\n              goto joined_r0x0004e94c;\n            }\n            pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n            iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                     piStack_e0[uVar14] + 0xc,uVar14);\n            if ((*(char *)(puVar43 + 0x16) < '\0') || (puVar43[0x13] != 0)) goto LAB_0004e170;\n          }\n          else {\n            uVar6 = puVar43[0x13];\njoined_r0x0004e94c:\n            if (uVar6 != 0) {\n              pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n              iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                       piStack_e0[uVar14] + 0xc,uVar14);\nLAB_0004e170:\n              iVar30 = iStack_e4;\n              puVar36 = puStack_f0;\n              if (uVar14 < 0x3fffffff) {\n                uStack_1f0 = uVar14 + 1;\n                piVar17 = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                if (piVar17 == (int *)0x0) goto LAB_0004dbf8;\n                if (puVar36[0x13] == 0) {\n                  piStack_15c = (int *)0x0;\n                  uStack_150 = 0;\n                  uStack_14c = 0;\n                  uStack_148 = 0;\n                  piStack_160 = piVar17;\n                  iStack_158 = iVar30;\n                  uStack_154 = uVar14;\n                  uStack_1e4 = FUN_0004d30c(&puStack_144,&piStack_160);\n                  (**(code **)(puVar46 + 0x28520))(uStack_148);\n                  if (uStack_1e4 == 0) {\n                    if (*piVar17 == 0) {\n                      (**(code **)(puVar46 + 0x28520))(piVar17);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar46 + 0x28520))(piStack_e0);\n                    uStack_e8 = uVar14;\n                    iStack_e4 = iVar30;\n                    piStack_e0 = piVar17;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  piStack_1ec = (int *)0x0;\n                }\n                else {\n                  piStack_1ec = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                  if (piStack_1ec == (int *)0x0) {\n                    (**(code **)(puVar46 + 0x28520))(piVar17);\n                    uStack_1e4 = 0xc;\n                    piVar17 = piStack_e0;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar15 = *(int *)(puVar46 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);\n                    uStack_150 = 0;\n                    uStack_14c = 0;\n                    uStack_148 = 0;\n                    piStack_160 = piVar17;\n                    piStack_15c = piStack_1ec;\n                    iStack_158 = iVar30;\n                    uStack_154 = uVar14;\n                    uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);\n                    (**(code **)(puVar46 + 0x28520))(uStack_148);\n                    if (uStack_1e4 != 0) break;\n                    if ((*piVar17 != 0) || (*piStack_1ec != 0)) {\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    piVar33 = piStack_e0 + (uStack_1f0 - 1);\n                    uStack_1f0 = uVar14;\n                    while( true ) {\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }\n                    iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       );\n                  }\n                }\n                (**(code **)(puVar46 + 0x28520))(piVar17);\n                (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                piVar17 = piStack_e0;\n                if (uStack_1e4 == 1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }\n              uStack_1e4 = 0xc;\n              goto LAB_0004dbbc;\n            }\n          }\nLAB_0004e7e0:\n          piVar17 = piStack_e0;\n          uStack_1e4 = uVar11;\n          if (local_78 == (uint *)0x0) goto LAB_0004dbbc;\n          puVar23 = ppuVar24[7];\n          if (bVar1) {\n            piVar17 = piStack_74 + 2;\n            do {\n              piVar17[1] = -1;\n              piVar33 = piVar17 + 2;\n              *piVar17 = -1;\n              piVar17 = piVar33;\n            } while (piStack_74 + (int)local_78 * 2 != piVar33);\n            *piStack_74 = 0;\n            piStack_74[1] = uStack_e8;\n            if (((uint)puVar23 & 0x8000000) == 0) {\n              if (*(char *)(puVar43 + 0x16) < '\0') {\n                bVar22 = 0 < (int)puVar43[0x13];\n              }\n              else {\n                bVar22 = false;\n              }\n              uStack_1e4 = FUN_0004bc00(ppuVar24,&puStack_144,local_78,piStack_74,bVar22);\n              piVar17 = piStack_e0;\n              if (uStack_1e4 != 0) goto LAB_0004dbbc;\n              puVar23 = (uint *)*piStack_74;\n            }\n            else {\nLAB_0004e838:\n              puVar23 = (uint *)0x0;\n            }\n            puVar36 = (uint *)0x0;\n            piVar17 = piStack_74;\n            while( true ) {\n              if (puVar23 != (uint *)0xffffffff) {\n                puVar32 = (uint *)piVar17[1];\n                puVar39 = puVar23;\n                puVar38 = puVar32;\n                if (cStack_f8 != '\0') {\n                  puVar39 = puStack_124;\n                  if (puStack_128 != puVar23) {\n                    puVar39 = *(uint **)(iStack_138 + (int)puVar23 * 4);\n                  }\n                  *piVar17 = (int)puVar39;\n                  puVar38 = puStack_124;\n                  if (puStack_128 != puVar32) {\n                    puVar38 = *(uint **)(iStack_138 + (int)puVar32 * 4);\n                  }\n                }\n                *piVar17 = (int)puStack_16c + (int)puVar39;\n                piVar17[1] = (int)puStack_16c + (int)puVar38;\n              }\n              puVar36 = (uint *)((int)puVar36 + 1);\n              piVar17 = piVar17 + 2;\n              if (puVar36 == local_78) break;\n              puVar23 = (uint *)*piVar17;\n            }\n            if (0 < iStack_180) {\n              piVar17 = piStack_74 + (int)local_78 * 2;\n              do {\n                *piVar17 = -1;\n                piVar33 = piVar17 + 2;\n                piVar17[1] = -1;\n                piVar17 = piVar33;\n              } while (piStack_74 + (iStack_180 + (int)local_78) * 2 != piVar33);\n            }\n            piVar33 = (int *)puVar43[0x21];\n            piVar17 = piStack_e0;\n            uStack_1e4 = uVar11;\n            if (piVar33 != (int *)0x0) {\n              iVar29 = 0;\n              piVar3 = piStack_74;\n              do {\n                pcVar45 = *(code **)(puVar46 + 0x28520);\n                if (iVar29 == (int)local_78 + -1) goto LAB_0004dbc0;\n                if (*piVar33 != iVar29) {\n                  piVar3[2] = piStack_74[(*piVar33 + 1) * 2];\n                  piVar3[3] = piStack_74[(*piVar33 + 1) * 2 + 1];\n                }\n                iVar29 = iVar29 + 1;\n                piVar33 = piVar33 + 1;\n                piVar3 = piVar3 + 2;\n              } while( true );\n            }\n            goto LAB_0004dbbc;\n          }\n          *piStack_74 = 0;\n          piStack_74[1] = uStack_e8;\n          goto LAB_0004e838;\n        }\nLAB_0004e2d4:\n        FUN_00044db0(&puStack_144);\n        param_4 = puStack_16c;\n      }\n      param_4 = (uint *)((int)param_4 + iVar29);\n      puStack_16c = param_4;\n      if (((int)param_4 < (int)puVar23) ||\n         (iVar30 = iStack_12c, puVar36 = puStack_88, (int)puVar38 < (int)param_4)) break;\n    } while( true );\n  }\nLAB_0004df68:\n  uStack_1e4 = 1;\n  piVar17 = piStack_e0;\n  goto LAB_0004dbbc;\ncode_r0x0004ea7c:\n  uStack_1e4 = uStack_168;\n  piVar17 = piStack_e0;\n  if (uStack_168 == 0xc) goto LAB_0004dbbc;\n  uVar20 = 0x435;\nLAB_0004ea9c:\n  (**(code **)(puVar46 + 0x282f4))\n            (*(int *)(puVar46 + 0x27edc) + 0x2b30,*(int *)(puVar46 + 0x27edc) + 0x2ac0,uVar20,\n             *(int *)(puVar46 + 0x27edc) + 0x3030);\n  uVar6 = extraout_v1;\n  ppuVar24 = &puStack_144;\nLAB_0004eabc:\n  uVar31 = 8;\n  goto LAB_0004dab0;\n}" type_identifier (function_declarator "FUN_0004d30c(uint *param_1,uint *param_2,uint *param_3,uint *param_4)" identifier (parameter_list "(uint *param_1,uint *param_2,uint *param_3,uint *param_4)" ( (parameter_declaration "uint *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "uint *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "uint *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) ))) (compound_statement "{\n  bool bVar1;\n  bool bVar2;\n  int *piVar3;\n  bool bVar4;\n  bool bVar5;\n  uint uVar6;\n  code *pcVar7;\n  code *pcVar8;\n  code *pcVar9;\n  int *piVar10;\n  uint uVar11;\n  uint **ppuVar12;\n  int iVar13;\n  uint uVar14;\n  int iVar15;\n  int iVar16;\n  int *piVar17;\n  char cVar21;\n  int iVar18;\n  uint uVar19;\n  undefined4 uVar20;\n  bool bVar22;\n  uint *puVar23;\n  uint extraout_v1;\n  uint **ppuVar24;\n  int iVar25;\n  int iVar26;\n  uint uVar27;\n  int iVar28;\n  int iVar29;\n  int iVar30;\n  uint uVar31;\n  uint *puVar32;\n  int *piVar33;\n  uint uVar34;\n  undefined4 *puVar35;\n  uint *puVar36;\n  uint uVar37;\n  uint *puVar38;\n  uint *puVar39;\n  uint uVar40;\n  int *unaff_s4;\n  uint uVar41;\n  int unaff_s5;\n  uint uVar42;\n  int unaff_s6;\n  uint *puVar43;\n  int iVar44;\n  uint *unaff_s7;\n  code *pcVar45;\n  undefined *puVar46;\n  int unaff_s8;\n  uint uStack_1f0;\n  int *piStack_1ec;\n  uint uStack_1e4;\n  uint *puStack_1e0;\n  uint **ppuStack_1dc;\n  uint uStack_1d0;\n  int iStack_180;\n  uint *puStack_16c;\n  uint uStack_168;\n  uint uStack_164;\n  int *piStack_160;\n  int *piStack_15c;\n  int iStack_158;\n  uint uStack_154;\n  undefined4 uStack_150;\n  undefined4 uStack_14c;\n  undefined4 uStack_148;\n  uint *puStack_144;\n  uint *puStack_140;\n  int *piStack_13c;\n  int iStack_138;\n  int iStack_12c;\n  uint *puStack_128;\n  uint *puStack_124;\n  uint uStack_120;\n  uint uStack_11c;\n  uint *puStack_118;\n  uint *puStack_114;\n  uint *puStack_110;\n  uint *puStack_10c;\n  undefined4 uStack_108;\n  uint *puStack_104;\n  uint *puStack_100;\n  byte bStack_fc;\n  byte bStack_fb;\n  byte bStack_fa;\n  byte bStack_f9;\n  char cStack_f8;\n  byte bStack_f7;\n  byte bStack_f6;\n  uint uStack_f4;\n  uint *puStack_f0;\n  undefined1 *puStack_ec;\n  uint uStack_e8;\n  int iStack_e4;\n  int *piStack_e0;\n  int iStack_dc;\n  undefined4 uStack_d8;\n  int iStack_d4;\n  int iStack_d0;\n  int iStack_cc;\n  int iStack_c4;\n  int iStack_c0;\n  int iStack_bc;\n  uint *puStack_b8;\n  uint *puStack_b4;\n  uint *puStack_b0;\n  uint *puStack_ac;\n  int *piStack_a8;\n  int iStack_a4;\n  int iStack_a0;\n  uint *puStack_9c;\n  int iStack_98;\n  code *pcStack_94;\n  uint *puStack_88;\n  uint *local_80;\n  uint *local_7c;\n  uint *local_78;\n  int *piStack_74;\n  int local_64;\n  uint local_38;\n  undefined4 local_34;\n  undefined4 *local_30;\n  uint **local_2c;\n  \n  puVar46 = PTR___stack_chk_guard_00075be8;\n  local_38 = 1;\n  local_34 = 1;\n  local_2c = *(uint ***)PTR___stack_chk_guard_00075be8;\n  puVar36 = (uint *)param_2[3];\n  puVar39 = (uint *)param_2[2];\n  puVar23 = param_2;\n  local_30 = (undefined4 *)(*(code *)PTR_malloc_00075b2c)(4);\n  if (local_30 == (undefined4 *)0x0) {\n    uVar6 = 0xc;\n  }\n  else {\n    *local_30 = puVar39;\n    pcVar45 = (code *)(PTR_DAT_00075978 + -0x1248);\n    puVar23 = param_2;\n    param_3 = puVar36;\n    param_4 = &local_38;\n    uVar6 = FUN_0004edb8(param_1);\n    if (uVar6 == 0) {\n      local_64 = 0;\n      if (0 < (int)puVar36) {\n        pcVar7 = (code *)(PTR_LAB_00075920 + 0x5610);\n        pcVar8 = (code *)(PTR_LAB_00075920 + 0x33f8);\n        pcVar9 = (code *)(PTR_LAB_00075920 + 0x5230);\n        do {\n          unaff_s7 = (uint *)((int)puVar36 * 4);\n          if (*(int *)(*param_2 + (int)unaff_s7) == 0) {\n            local_64 = local_64 + 1;\n            if ((int)param_1[0x1e] < local_64) goto LAB_0004d6a0;\n          }\n          else {\n            local_64 = 0;\n            if ((int)param_1[0x1e] < 0) {\nLAB_0004d6a0:\n              puVar23 = (uint *)0x0;\n              param_3 = unaff_s7;\n              (*(code *)PTR_memset_00075ad4)();\n              (*(code *)PTR_free_00075bfc)(local_30);\n              uVar6 = 0;\n              goto LAB_0004d644;\n            }\n          }\n          local_34 = 0;\n          unaff_s6 = *(int *)((int)unaff_s7 + (param_1[0x19] - 4));\n          puVar36 = (uint *)((int)puVar36 + -1);\n          if ((unaff_s6 != 0) && (unaff_s4 = (int *)param_1[0x15], 0 < *(int *)(unaff_s6 + 0x14))) {\n            unaff_s5 = 0;\n            do {\n              puVar39 = *(uint **)(*(int *)(unaff_s6 + 0x18) + unaff_s5 * 4);\n              unaff_s8 = (int)puVar39 * 8;\n              iVar29 = *unaff_s4 + unaff_s8;\n              if ((*(uint *)(iVar29 + 4) & 0x800) == 0) {\nLAB_0004d464:\n                iVar29 = FUN_00047bf8(param_1,iVar29,puVar36);\n                if (iVar29 != 0) {\n                  iVar29 = *(int *)(*param_2 + (int)unaff_s7);\n                  if (iVar29 != 0) {\n                    param_3 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc);\n                    iVar29 = 1;\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                }\n              }\n              else {\n                puVar35 = (undefined4 *)param_1[0x15];\n                uVar6 = param_2[3];\n                param_3 = puVar39;\n                param_4 = param_1;\n                local_80 = puVar36;\n                iVar29 = FUN_0004b150(*puVar35,puVar35 + 0x20);\n                if (iVar29 < 1) {\n                  if (iVar29 == 0) {\n                    iVar29 = *unaff_s4;\n                    goto LAB_0004d460;\n                  }\n                }\n                else if ((int)puVar36 + iVar29 <= (int)uVar6) {\n                  iVar30 = *(int *)(*param_2 + ((int)puVar36 + iVar29) * 4);\n                  if (iVar30 != 0) {\n                    param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                  iVar29 = *unaff_s4;\nLAB_0004d460:\n                  iVar29 = iVar29 + unaff_s8;\n                  goto LAB_0004d464;\n                }\nLAB_0004d4b4:\n                if (param_2[5] != 0) {\n                  local_80 = (uint *)((int)puVar36 + iVar29);\n                  param_3 = param_2 + 6;\n                  param_4 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                  local_7c = puVar39;\n                  local_78 = puVar36;\n                  iVar29 = (*pcVar7)(param_1,param_2 + 5);\n                  if (iVar29 != 0) goto LAB_0004d510;\n                }\n                puVar23 = puVar39;\n                iVar29 = (*pcVar8)(&local_38);\n                if (iVar29 == 0) {\n                  uVar6 = 0xc;\n                  goto LAB_0004d62c;\n                }\n              }\nLAB_0004d510:\n              unaff_s5 = unaff_s5 + 1;\n              param_4 = &local_38;\n            } while (unaff_s5 < *(int *)(unaff_s6 + 0x14));\n          }\n          puVar23 = param_2;\n          param_3 = puVar36;\n          param_4 = &local_38;\n          uVar6 = (*pcVar45)(param_1);\n          if (uVar6 != 0) goto LAB_0004d62c;\n        } while (puVar36 != (uint *)0x0);\n      }\n      uVar6 = 0;\n    }\nLAB_0004d62c:\n    (*(code *)PTR_free_00075bfc)(local_30);\n  }\nLAB_0004d644:\n  if (local_2c == *(uint ***)puVar46) {\n    return uVar6;\n  }\n  pcVar45 = FUN_0004d6dc;\n  ppuVar24 = local_2c;\n  puVar46 = PTR___stack_chk_fail_00075ba8;\n  (*(code *)PTR___stack_chk_fail_00075ba8)();\n  puVar32 = local_7c;\n  puVar38 = local_80;\n  piVar10 = *(int **)(puVar46 + 0x2850c);\n  iStack_bc = *piVar10;\n  puVar43 = *ppuVar24;\n  puStack_b8 = puVar36;\n  puStack_b4 = param_2;\n  puStack_b0 = param_1;\n  puStack_ac = puVar39;\n  piStack_a8 = unaff_s4;\n  iStack_a4 = unaff_s5;\n  iStack_a0 = unaff_s6;\n  puStack_9c = unaff_s7;\n  iStack_98 = unaff_s8;\n  pcStack_94 = pcVar45;\n  puStack_88 = param_3;\n  (**(code **)(puVar46 + 0x283f8))(&puStack_144,0,0x88);\n  puStack_1e0 = ppuVar24[4];\n  if (puStack_1e0 != (uint *)0x0) {\n    if (((*(byte *)(ppuVar24 + 7) & 0x10) == 0) || (param_4 == puVar38)) {\n      puStack_1e0 = (uint *)0x0;\n    }\n    else if ((char)*(byte *)(ppuVar24 + 7) < '\0') {\n      puStack_1e0 = (uint *)0x0;\n    }\n  }\n  puVar36 = ppuVar24[6];\n  if (puVar36 < local_78) {\n    iStack_180 = ((int)local_78 + -1) - (int)puVar36;\n    local_78 = (uint *)((int)local_78 + ((int)puVar36 - ((int)local_78 + -1)));\n    puVar36 = ppuVar24[2];\n  }\n  else {\n    puVar36 = ppuVar24[2];\n    iStack_180 = 0;\n  }\n  puStack_f0 = puVar43;\n  if ((((puVar36 == (uint *)0x0) || (puVar43[9] == 0)) || (puVar43[10] == 0)) ||\n     ((puVar43[0xb] == 0 || (puVar43[0xc] == 0)))) {\nLAB_0004db54:\n    uStack_1e4 = 1;\n    goto LAB_0004db58;\n  }\n  if (((*(int *)(puVar43[9] + 8) == 0) && (*(int *)(puVar43[10] + 8) == 0)) &&\n     ((*(int *)(puVar43[0xb] + 8) == 0 || (((uint)ppuVar24[7] & 0x1000000) == 0)))) {\n    if (param_4 == (uint *)0x0) {\n      puVar38 = (uint *)0x0;\n    }\n    else {\n      if (puVar38 != (uint *)0x0) goto LAB_0004db54;\n      param_4 = (uint *)0x0;\n    }\n  }\n  if (local_78 == (uint *)0x0) {\n    bVar22 = puVar43[0x13] != 0;\n  }\n  else {\n    bVar22 = true;\n  }\n  uStack_f4 = puVar43[0x17];\n  puVar36 = ppuVar24[5];\n  uVar6 = puVar43[2] + 1;\n  if ((int)(puVar43[2] + 1) < (int)uStack_f4) {\n    uVar6 = uStack_f4;\n  }\n  bStack_fc = (byte)((uint)((int)ppuVar24[3] << 9) >> 0x18);\n  bStack_f9 = 1;\n  if (puVar36 == (uint *)0x0) {\n    bStack_f9 = bStack_fc >> 7;\n  }\n  uVar34 = (int)puStack_88 + 1U;\n  if ((int)uVar6 <= (int)((int)puStack_88 + 1U)) {\n    uVar34 = uVar6;\n  }\n  bStack_fc = bStack_fc >> 7;\n  bStack_fb = (byte)((puVar43[0x16] << 2) >> 0x1f);\n  bStack_fa = (byte)((puVar43[0x16] << 3) >> 0x1f);\n  puStack_114 = puStack_88;\n  puStack_118 = puStack_88;\n  puStack_10c = puStack_88;\n  puStack_110 = puStack_88;\n  puStack_144 = puVar23;\n  puStack_104 = puVar36;\n  uStack_1e4 = FUN_00043278(&puStack_144,uVar34);\n  piVar17 = piStack_e0;\n  if (uStack_1e4 != 0) {\nLAB_0004dbbc:\n    while( true ) {\n      pcVar45 = *(code **)(puVar46 + 0x28520);\nLAB_0004dbc0:\n      (*pcVar45)(piVar17);\n      if (puVar43[0x13] != 0) {\nLAB_0004dc14:\n        FUN_00044db0(&puStack_144);\n        (**(code **)(puVar46 + 0x28520))(iStack_c0);\n        (**(code **)(puVar46 + 0x28520))(iStack_d0);\n      }\nLAB_0004dbd4:\n      FUN_00044d40(&puStack_144);\nLAB_0004db58:\n      if (iStack_bc == *piVar10) break;\n      uStack_1e4 = (**(code **)(puVar46 + 0x284cc))();\n      piVar17 = piStack_e0;\n    }\n    return uStack_1e4;\n  }\n  puStack_100 = puVar43 + 0x18;\n  bStack_f6 = (byte)((puVar43[0x16] << 4) >> 0x1f);\n  if ((bStack_f9 != 0) || (puStack_140 = puVar23, puStack_128 = puStack_88, 1 < (int)puVar43[0x17]))\n  {\n    puStack_128 = (uint *)0x0;\n  }\n  puStack_10c = puVar32;\n  puStack_110 = puVar32;\n  puStack_124 = puStack_128;\n  bStack_f7 = (byte)((uint)((int)ppuVar24[7] << 7) >> 0x1f);\n  uVar6 = puVar43[0x13];\n  iVar29 = uVar6 * 2;\n  puStack_ec = &_gp_1;\n  uStack_e8 = 0xffffffff;\n  if (0 < iVar29) {\n    if (0xccccccc < iVar29) goto LAB_0004dbf8;\n    iVar30 = (**(code **)(puVar46 + 0x28450))(uVar6 * 0x28);\n    iStack_d0 = iVar30;\n    iStack_c0 = (**(code **)(puVar46 + 0x28450))(uVar6 * 8);\n    if ((iVar30 == 0) || (iStack_c0 == 0)) goto LAB_0004dbf8;\n  }\n  iStack_d4 = iVar29;\n  iStack_c4 = iVar29;\n  bVar1 = (uint *)0x1 < local_78;\n  iStack_cc = 1;\n  if ((bVar1) || ((puVar43[0x16] & 0x40000000) != 0)) {\n    if (0x3ffffffe < uStack_120) {\nLAB_0004dbf8:\n      uStack_1e4 = 0xc;\n      (**(code **)(puVar46 + 0x28520))(piStack_e0);\n      if (puVar43[0x13] == 0) goto LAB_0004dbd4;\n      goto LAB_0004dc14;\n    }\n    piStack_e0 = (int *)(**(code **)(puVar46 + 0x28450))((uStack_120 + 1) * 4);\n    piVar17 = piStack_e0;\n    if (piStack_e0 == (int *)0x0) {\nLAB_0004dbb4:\n      uStack_1e4 = 0xc;\n      goto LAB_0004dbbc;\n    }\n  }\n  else {\n    piStack_e0 = (int *)0x0;\n  }\n  uVar34 = puVar43[0x17];\n  iVar29 = -1;\n  puStack_16c = param_4;\n  uStack_108 = 6;\n  uVar6 = (uint)((int)puVar38 < (int)param_4);\n  puVar23 = puVar38;\n  if (uVar6 == 0) {\n    iVar29 = 1;\n    puVar23 = param_4;\n  }\n  if ((int)puVar38 <= (int)param_4) {\n    puVar38 = param_4;\n  }\n  if (puStack_1e0 == (uint *)0x0) goto LAB_0004eabc;\n  uVar11 = 4;\n  if (((uVar34 != 1) && (uVar11 = 0, -1 < (int)ppuVar24[3] << 9)) &&\n     (uVar11 = 4, puVar36 != (uint *)0x0)) {\n    uVar11 = 0;\n  }\n  uVar31 = 2;\n  if (uVar6 != 0) {\n    uVar31 = 0;\n  }\n  uVar31 = puVar36 != (uint *)0x0 | uVar11 | uVar31;\nLAB_0004dab0:\n  if (((int)puVar23 <= (int)param_4) && ((int)param_4 <= (int)puVar38)) {\n    ppuVar12 = &puStack_16c;\n    if (uVar6 != 0) {\n      ppuVar12 = (uint **)0x0;\n    }\n    iVar25 = *(int *)(puVar46 + 0x28244);\n    iVar13 = *(int *)(puVar46 + 0x27edc);\n    iVar26 = *(int *)(puVar46 + 0x2829c);\n    iVar30 = iStack_12c;\n    puVar36 = puStack_88;\n    do {\n      puStack_88 = puVar36;\n      if (uVar31 - 4 < 5) {\n                    \n                    \n        uVar6 = (*(code *)(puVar46 + *(int *)(iVar13 + 0x2be4 + (uVar31 - 4) * 4) + 0x2fea4))();\n        return uVar6;\n      }\n      iStack_12c = iVar30;\n      while( true ) {\n        puVar39 = (uint *)((int)param_4 - iVar30);\n        if (puStack_124 <= puVar39) {\n          uStack_1e4 = (*(code *)(iVar25 + 0x7eac))(&puStack_144,param_4,&_gp_1);\n          piVar17 = piStack_e0;\n          if (uStack_1e4 != 0) goto LAB_0004dbbc;\n          puVar39 = (uint *)((int)param_4 - iStack_12c);\n          iVar30 = iStack_12c;\n        }\n        if ((int)param_4 < (int)puVar36) {\n          cVar21 = *(char *)((int)puStack_1e0 + (uint)*(byte *)((int)puStack_140 + (int)puVar39));\n        }\n        else {\n          cVar21 = *(char *)puStack_1e0;\n        }\n        if (cVar21 != '\0') break;\n        param_4 = (uint *)((int)param_4 + iVar29);\n        puStack_16c = param_4;\n        if (((int)param_4 < (int)puVar23) || ((int)puVar38 < (int)param_4)) goto LAB_0004df68;\n      }\n      uVar11 = FUN_00047eac(&puStack_144,param_4,&_gp_1);\n      puVar36 = puStack_f0;\n      uVar6 = uStack_11c;\n      piVar17 = piStack_e0;\n      uStack_1e4 = uVar11;\n      if (uVar11 != 0) goto LAB_0004dbbc;\n      if (((uVar34 == 1) || (puStack_128 == (uint *)0x0)) || (*piStack_13c != -1)) {\n        iStack_cc = 0;\n        uStack_d8 = 0;\n        uVar41 = puStack_f0[9];\n        uStack_1d0 = uStack_11c;\n        iStack_dc = 0;\n        uStack_168 = 0;\n        if ((*(byte *)(uVar41 + 0x34) & 1) != 0) {\n          uVar14 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n          if ((uVar14 & 1) == 0) {\n            if (uVar14 == 0) goto LAB_0004dd24;\n            if ((uVar14 & 6) == 6) {\n              uVar41 = puVar36[0xc];\n            }\n            else if ((uVar14 & 2) == 0) {\n              if ((uVar14 & 4) == 0) goto LAB_0004dd24;\n              uVar41 = FUN_00046cac(&uStack_168,puVar36,*(undefined4 *)(uVar41 + 0x28),uVar14);\n            }\n            else {\n              uVar41 = puVar36[0xb];\n            }\n          }\n          else {\n            uVar41 = puVar36[10];\n          }\n          if (uVar41 == 0) goto code_r0x0004ea7c;\n        }\nLAB_0004dd24:\n        bVar4 = ppuVar12 != (uint **)0x0;\n        if ((piStack_e0 == (int *)0x0) ||\n           (uVar14 = puVar36[0x13], piStack_e0[uVar6] = uVar41, uVar14 == 0)) {\nLAB_0004dd48:\n          if (*(int *)(uVar41 + 0x34) << 4 < 0) {\n            if (((*(byte *)(uVar41 + 0x34) & 1) == 0) ||\n               (iVar30 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar41 + 8),uVar41 + 0xc,uVar6),\n               iVar30 != 0)) {\n              uVar14 = uVar6;\n              bVar5 = bVar22;\n              if (!bVar22) goto LAB_0004e0e4;\n            }\n            else {\n              uVar6 = 0xffffffff;\n              bVar5 = false;\n            }\n          }\n          else {\n            uVar6 = 0xffffffff;\n            bVar5 = false;\n          }\n          iVar30 = *(int *)(puVar46 + 0x28244);\n          iVar15 = *(int *)(puVar46 + 0x2829c);\n          uVar14 = uStack_11c;\n          ppuStack_1dc = ppuVar12;\n          while ((int)uVar14 < (int)puStack_10c) {\n            uVar40 = uVar14 + 1;\n            if ((((int)uVar40 < (int)uStack_120) || ((int)puStack_114 <= (int)uStack_120)) &&\n               (((int)uVar40 < (int)puStack_128 || ((int)puStack_114 <= (int)puStack_128)))) {\n              iVar16 = *(int *)(uVar41 + 0x34);\n              puVar36 = puStack_f0;\n            }\n            else {\n              uStack_168 = (*(code *)(iVar30 + 0x41e4))(&puStack_144,uVar14 + 2);\n              if (uStack_168 != 0) {\n                if (uStack_168 == 0xc) goto LAB_0004dbf8;\n                uVar20 = 0x46c;\n                goto LAB_0004ea9c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x34);\n              uVar14 = uStack_11c;\n              puVar36 = puStack_f0;\n            }\n            puStack_f0 = puVar36;\n            if (iVar16 << 5 < 0) {\n              iVar16 = *(int *)(uVar41 + 8);\n              if (0 < iVar16) {\n                param_4 = (uint *)0x0;\n                iVar18 = *(int *)(puVar46 + 0x28244);\n                pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7ab0);\n                do {\n                  uVar42 = *puVar36;\n                  iVar44 = *(int *)(*(int *)(uVar41 + 0xc) + (int)param_4 * 4);\n                  uVar37 = *(uint *)(uVar42 + iVar44 * 8 + 4);\n                  if ((uVar37 & 0x800) != 0) {\n                    if ((uVar37 & 0xffc000) != 0) {\n                      uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec);\n                      uVar37 = (uVar37 << 8) >> 0x16;\n                      if ((uVar37 & 4) == 0) {\n                        uVar27 = uVar19 & 1;\n                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    iVar16 = (*(code *)(iVar15 + -0x4eb0))\n                                       (uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14);\n                    if (iVar16 != 0) {\n                      if (iStack_cc < iVar16) {\n                        iStack_cc = iVar16;\n                      }\n                      iVar16 = iVar16 + uStack_11c;\n                      uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16);\n                      uVar14 = uStack_164;\n                      if (uStack_164 != 0) goto joined_r0x0004e770;\n                      piVar33 = piStack_e0 + iVar16;\n                      iVar28 = *piVar33;\n                      piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc);\n                      if (iVar28 == 0) {\n                        piStack_160 = (int *)*piVar17;\n                        piStack_15c = (int *)piVar17[1];\n                        iStack_158 = piVar17[2];\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        *piVar33 = iVar44;\n                      }\n                      else {\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }\n                      if ((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar16 = *(int *)(uVar41 + 8);\n                    uVar14 = uStack_11c;\n                  }\nLAB_0004e670:\n                  param_4 = (uint *)((int)param_4 + 1);\n                } while ((int)param_4 < iVar16);\n              }\n              uStack_168 = 0;\n            }\n            uStack_11c = uVar14 + 1;\n            uVar14 = (uint)*(byte *)((int)puStack_140 + uVar14);\n            do {\n              if (*(int *)(uVar41 + 0x2c) != 0) {\n                uVar37 = *(uint *)(*(int *)(uVar41 + 0x2c) + uVar14 * 4);\nLAB_0004ddf0:\n                if (piStack_e0 != (int *)0x0) goto LAB_0004ddfc;\n                goto LAB_0004de1c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x30);\n              if (iVar16 != 0) {\n                uVar37 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n                if ((uVar37 & 1) == 0) {\n                  uVar37 = *(uint *)(iVar16 + uVar14 * 4);\n                }\n                else {\n                  uVar37 = *(uint *)(iVar16 + (uVar14 + 0x100) * 4);\n                }\n                goto LAB_0004ddf0;\n              }\n              iVar16 = (*(code *)(iVar26 + -0x7510))(puStack_f0,uVar41);\n            } while (iVar16 != 0);\n            uStack_168 = 0xc;\n            uVar14 = uStack_168;\njoined_r0x0004e770:\n            uStack_168 = uVar14;\n            if (piStack_e0 == (int *)0x0) {\n              piVar17 = (int *)0x0;\n              goto LAB_0004dbb4;\n            }\n            uVar37 = 0;\nLAB_0004ddfc:\n            uVar37 = FUN_0004d0a8(&uStack_168,&puStack_144,uVar37);\nLAB_0004de1c:\n            uVar14 = uStack_11c;\n            if (uVar37 == 0) {\n              piVar17 = piStack_e0;\n              if (uStack_168 != 0) goto LAB_0004dbb4;\n              if ((piStack_e0 == (int *)0x0) || ((bVar5 && (!bVar22)))) break;\n              param_4 = &uStack_168;\n              do {\n                bVar2 = false;\n                piVar17 = piStack_e0 + uStack_11c;\n                uVar14 = uStack_11c;\n                do {\n                  uVar37 = uVar14 + 1;\n                  piVar17 = piVar17 + 1;\n                  if (iStack_dc < (int)uVar37) {\n                    if (bVar2) {\n                      uStack_11c = uVar14;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar2 = true;\n                  uVar14 = uVar37;\n                } while (*piVar17 == 0);\n                uStack_11c = uVar37;\n                uVar37 = FUN_0004d0a8(param_4,&puStack_144,0);\n                uVar14 = uStack_11c;\n                if (uStack_168 != 0) {\n                  if (uVar37 == 0) goto LAB_0004e0cc;\n                  break;\n                }\n              } while (uVar37 == 0);\n            }\n            uVar42 = uStack_1d0;\n            if ((bVar4) && (uVar42 = uVar40, uVar41 != uVar37)) {\n              bVar4 = false;\n              uVar42 = uStack_1d0;\n            }\n            uStack_1d0 = uVar42;\n            uVar41 = uVar37;\n            uStack_11c = uVar14;\n            if (((*(byte *)(uVar37 + 0x34) & 8) != 0) &&\n               (((*(byte *)(uVar37 + 0x34) & 1) == 0 ||\n                (iVar16 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar37 + 8),uVar37 + 0xc,uVar14)\n                , iVar16 != 0)))) {\n              if (!bVar22) goto LAB_0004e0e4;\n              ppuStack_1dc = (uint **)0x0;\n              uVar6 = uVar14;\n              bVar5 = bVar22;\n            }\n          }\nLAB_0004e0cc:\n          uVar14 = uVar6;\n          if (ppuStack_1dc != (uint **)0x0) {\n            *ppuStack_1dc = (uint *)((int)*ppuStack_1dc + uStack_1d0);\n          }\n        }\n        else {\n          uVar14 = FUN_00047924(&puStack_144,uVar41 + 8,uVar41 + 0xc,0);\n          uStack_168 = uVar14;\n          if (uVar14 == 0) {\n            if ((*(byte *)(uVar41 + 0x34) & 2) == 0) {\n              bVar4 = false;\n            }\n            else {\n              uVar14 = FUN_0004c6a8(&puStack_144,uVar41 + 8,uVar41 + 0xc);\n              uStack_168 = uVar14;\n              if (uVar14 != 0) goto LAB_0004e0e4;\n              bVar4 = false;\n            }\n            goto LAB_0004dd48;\n          }\n        }\nLAB_0004e0e4:\n        piVar17 = piStack_e0;\n        if (uVar14 != 0xffffffff) {\n          if (uVar14 == 0xfffffffe) goto LAB_0004dbf8;\n          uStack_e8 = uVar14;\n          if (((uint)ppuVar24[7] & 0x8000000) == 0) {\n            if (!bVar1) {\n              uVar6 = puVar43[0x13];\n              goto joined_r0x0004e94c;\n            }\n            pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n            iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                     piStack_e0[uVar14] + 0xc,uVar14);\n            if ((*(char *)(puVar43 + 0x16) < '\0') || (puVar43[0x13] != 0)) goto LAB_0004e170;\n          }\n          else {\n            uVar6 = puVar43[0x13];\njoined_r0x0004e94c:\n            if (uVar6 != 0) {\n              pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n              iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                       piStack_e0[uVar14] + 0xc,uVar14);\nLAB_0004e170:\n              iVar30 = iStack_e4;\n              puVar36 = puStack_f0;\n              if (uVar14 < 0x3fffffff) {\n                uStack_1f0 = uVar14 + 1;\n                piVar17 = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                if (piVar17 == (int *)0x0) goto LAB_0004dbf8;\n                if (puVar36[0x13] == 0) {\n                  piStack_15c = (int *)0x0;\n                  uStack_150 = 0;\n                  uStack_14c = 0;\n                  uStack_148 = 0;\n                  piStack_160 = piVar17;\n                  iStack_158 = iVar30;\n                  uStack_154 = uVar14;\n                  uStack_1e4 = FUN_0004d30c(&puStack_144,&piStack_160);\n                  (**(code **)(puVar46 + 0x28520))(uStack_148);\n                  if (uStack_1e4 == 0) {\n                    if (*piVar17 == 0) {\n                      (**(code **)(puVar46 + 0x28520))(piVar17);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar46 + 0x28520))(piStack_e0);\n                    uStack_e8 = uVar14;\n                    iStack_e4 = iVar30;\n                    piStack_e0 = piVar17;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  piStack_1ec = (int *)0x0;\n                }\n                else {\n                  piStack_1ec = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                  if (piStack_1ec == (int *)0x0) {\n                    (**(code **)(puVar46 + 0x28520))(piVar17);\n                    uStack_1e4 = 0xc;\n                    piVar17 = piStack_e0;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar15 = *(int *)(puVar46 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);\n                    uStack_150 = 0;\n                    uStack_14c = 0;\n                    uStack_148 = 0;\n                    piStack_160 = piVar17;\n                    piStack_15c = piStack_1ec;\n                    iStack_158 = iVar30;\n                    uStack_154 = uVar14;\n                    uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);\n                    (**(code **)(puVar46 + 0x28520))(uStack_148);\n                    if (uStack_1e4 != 0) break;\n                    if ((*piVar17 != 0) || (*piStack_1ec != 0)) {\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    piVar33 = piStack_e0 + (uStack_1f0 - 1);\n                    uStack_1f0 = uVar14;\n                    while( true ) {\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }\n                    iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       );\n                  }\n                }\n                (**(code **)(puVar46 + 0x28520))(piVar17);\n                (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                piVar17 = piStack_e0;\n                if (uStack_1e4 == 1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }\n              uStack_1e4 = 0xc;\n              goto LAB_0004dbbc;\n            }\n          }\nLAB_0004e7e0:\n          piVar17 = piStack_e0;\n          uStack_1e4 = uVar11;\n          if (local_78 == (uint *)0x0) goto LAB_0004dbbc;\n          puVar23 = ppuVar24[7];\n          if (bVar1) {\n            piVar17 = piStack_74 + 2;\n            do {\n              piVar17[1] = -1;\n              piVar33 = piVar17 + 2;\n              *piVar17 = -1;\n              piVar17 = piVar33;\n            } while (piStack_74 + (int)local_78 * 2 != piVar33);\n            *piStack_74 = 0;\n            piStack_74[1] = uStack_e8;\n            if (((uint)puVar23 & 0x8000000) == 0) {\n              if (*(char *)(puVar43 + 0x16) < '\0') {\n                bVar22 = 0 < (int)puVar43[0x13];\n              }\n              else {\n                bVar22 = false;\n              }\n              uStack_1e4 = FUN_0004bc00(ppuVar24,&puStack_144,local_78,piStack_74,bVar22);\n              piVar17 = piStack_e0;\n              if (uStack_1e4 != 0) goto LAB_0004dbbc;\n              puVar23 = (uint *)*piStack_74;\n            }\n            else {\nLAB_0004e838:\n              puVar23 = (uint *)0x0;\n            }\n            puVar36 = (uint *)0x0;\n            piVar17 = piStack_74;\n            while( true ) {\n              if (puVar23 != (uint *)0xffffffff) {\n                puVar32 = (uint *)piVar17[1];\n                puVar39 = puVar23;\n                puVar38 = puVar32;\n                if (cStack_f8 != '\0') {\n                  puVar39 = puStack_124;\n                  if (puStack_128 != puVar23) {\n                    puVar39 = *(uint **)(iStack_138 + (int)puVar23 * 4);\n                  }\n                  *piVar17 = (int)puVar39;\n                  puVar38 = puStack_124;\n                  if (puStack_128 != puVar32) {\n                    puVar38 = *(uint **)(iStack_138 + (int)puVar32 * 4);\n                  }\n                }\n                *piVar17 = (int)puStack_16c + (int)puVar39;\n                piVar17[1] = (int)puStack_16c + (int)puVar38;\n              }\n              puVar36 = (uint *)((int)puVar36 + 1);\n              piVar17 = piVar17 + 2;\n              if (puVar36 == local_78) break;\n              puVar23 = (uint *)*piVar17;\n            }\n            if (0 < iStack_180) {\n              piVar17 = piStack_74 + (int)local_78 * 2;\n              do {\n                *piVar17 = -1;\n                piVar33 = piVar17 + 2;\n                piVar17[1] = -1;\n                piVar17 = piVar33;\n              } while (piStack_74 + (iStack_180 + (int)local_78) * 2 != piVar33);\n            }\n            piVar33 = (int *)puVar43[0x21];\n            piVar17 = piStack_e0;\n            uStack_1e4 = uVar11;\n            if (piVar33 != (int *)0x0) {\n              iVar29 = 0;\n              piVar3 = piStack_74;\n              do {\n                pcVar45 = *(code **)(puVar46 + 0x28520);\n                if (iVar29 == (int)local_78 + -1) goto LAB_0004dbc0;\n                if (*piVar33 != iVar29) {\n                  piVar3[2] = piStack_74[(*piVar33 + 1) * 2];\n                  piVar3[3] = piStack_74[(*piVar33 + 1) * 2 + 1];\n                }\n                iVar29 = iVar29 + 1;\n                piVar33 = piVar33 + 1;\n                piVar3 = piVar3 + 2;\n              } while( true );\n            }\n            goto LAB_0004dbbc;\n          }\n          *piStack_74 = 0;\n          piStack_74[1] = uStack_e8;\n          goto LAB_0004e838;\n        }\nLAB_0004e2d4:\n        FUN_00044db0(&puStack_144);\n        param_4 = puStack_16c;\n      }\n      param_4 = (uint *)((int)param_4 + iVar29);\n      puStack_16c = param_4;\n      if (((int)param_4 < (int)puVar23) ||\n         (iVar30 = iStack_12c, puVar36 = puStack_88, (int)puVar38 < (int)param_4)) break;\n    } while( true );\n  }\nLAB_0004df68:\n  uStack_1e4 = 1;\n  piVar17 = piStack_e0;\n  goto LAB_0004dbbc;\ncode_r0x0004ea7c:\n  uStack_1e4 = uStack_168;\n  piVar17 = piStack_e0;\n  if (uStack_168 == 0xc) goto LAB_0004dbbc;\n  uVar20 = 0x435;\nLAB_0004ea9c:\n  (**(code **)(puVar46 + 0x282f4))\n            (*(int *)(puVar46 + 0x27edc) + 0x2b30,*(int *)(puVar46 + 0x27edc) + 0x2ac0,uVar20,\n             *(int *)(puVar46 + 0x27edc) + 0x3030);\n  uVar6 = extraout_v1;\n  ppuVar24 = &puStack_144;\nLAB_0004eabc:\n  uVar31 = 8;\n  goto LAB_0004dab0;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "bool bVar4;" primitive_type identifier ;) (declaration "bool bVar5;" primitive_type identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "code *pcVar7;" type_identifier (pointer_declarator "*pcVar7" * identifier) ;) (declaration "code *pcVar8;" type_identifier (pointer_declarator "*pcVar8" * identifier) ;) (declaration "code *pcVar9;" type_identifier (pointer_declarator "*pcVar9" * identifier) ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "uint **ppuVar12;" type_identifier (pointer_declarator "**ppuVar12" * (pointer_declarator "*ppuVar12" * identifier)) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "int *piVar17;" primitive_type (pointer_declarator "*piVar17" * identifier) ;) (declaration "char cVar21;" primitive_type identifier ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "undefined4 uVar20;" type_identifier identifier ;) (declaration "bool bVar22;" primitive_type identifier ;) (declaration "uint *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "uint extraout_v1;" type_identifier identifier ;) (declaration "uint **ppuVar24;" type_identifier (pointer_declarator "**ppuVar24" * (pointer_declarator "*ppuVar24" * identifier)) ;) (declaration "int iVar25;" primitive_type identifier ;) (declaration "int iVar26;" primitive_type identifier ;) (declaration "uint uVar27;" type_identifier identifier ;) (declaration "int iVar28;" primitive_type identifier ;) (declaration "int iVar29;" primitive_type identifier ;) (declaration "int iVar30;" primitive_type identifier ;) (declaration "uint uVar31;" type_identifier identifier ;) (declaration "uint *puVar32;" type_identifier (pointer_declarator "*puVar32" * identifier) ;) (declaration "int *piVar33;" primitive_type (pointer_declarator "*piVar33" * identifier) ;) (declaration "uint uVar34;" type_identifier identifier ;) (declaration "undefined4 *puVar35;" type_identifier (pointer_declarator "*puVar35" * identifier) ;) (declaration "uint *puVar36;" type_identifier (pointer_declarator "*puVar36" * identifier) ;) (declaration "uint uVar37;" type_identifier identifier ;) (declaration "uint *puVar38;" type_identifier (pointer_declarator "*puVar38" * identifier) ;) (declaration "uint *puVar39;" type_identifier (pointer_declarator "*puVar39" * identifier) ;) (declaration "uint uVar40;" type_identifier identifier ;) (declaration "int *unaff_s4;" primitive_type (pointer_declarator "*unaff_s4" * identifier) ;) (declaration "uint uVar41;" type_identifier identifier ;) (declaration "int unaff_s5;" primitive_type identifier ;) (declaration "uint uVar42;" type_identifier identifier ;) (declaration "int unaff_s6;" primitive_type identifier ;) (declaration "uint *puVar43;" type_identifier (pointer_declarator "*puVar43" * identifier) ;) (declaration "int iVar44;" primitive_type identifier ;) (declaration "uint *unaff_s7;" type_identifier (pointer_declarator "*unaff_s7" * identifier) ;) (declaration "code *pcVar45;" type_identifier (pointer_declarator "*pcVar45" * identifier) ;) (declaration "undefined *puVar46;" type_identifier (pointer_declarator "*puVar46" * identifier) ;) (declaration "int unaff_s8;" primitive_type identifier ;) (declaration "uint uStack_1f0;" type_identifier identifier ;) (declaration "int *piStack_1ec;" primitive_type (pointer_declarator "*piStack_1ec" * identifier) ;) (declaration "uint uStack_1e4;" type_identifier identifier ;) (declaration "uint *puStack_1e0;" type_identifier (pointer_declarator "*puStack_1e0" * identifier) ;) (declaration "uint **ppuStack_1dc;" type_identifier (pointer_declarator "**ppuStack_1dc" * (pointer_declarator "*ppuStack_1dc" * identifier)) ;) (declaration "uint uStack_1d0;" type_identifier identifier ;) (declaration "int iStack_180;" primitive_type identifier ;) (declaration "uint *puStack_16c;" type_identifier (pointer_declarator "*puStack_16c" * identifier) ;) (declaration "uint uStack_168;" type_identifier identifier ;) (declaration "uint uStack_164;" type_identifier identifier ;) (declaration "int *piStack_160;" primitive_type (pointer_declarator "*piStack_160" * identifier) ;) (declaration "int *piStack_15c;" primitive_type (pointer_declarator "*piStack_15c" * identifier) ;) (declaration "int iStack_158;" primitive_type identifier ;) (declaration "uint uStack_154;" type_identifier identifier ;) (declaration "undefined4 uStack_150;" type_identifier identifier ;) (declaration "undefined4 uStack_14c;" type_identifier identifier ;) (declaration "undefined4 uStack_148;" type_identifier identifier ;) (declaration "uint *puStack_144;" type_identifier (pointer_declarator "*puStack_144" * identifier) ;) (declaration "uint *puStack_140;" type_identifier (pointer_declarator "*puStack_140" * identifier) ;) (declaration "int *piStack_13c;" primitive_type (pointer_declarator "*piStack_13c" * identifier) ;) (declaration "int iStack_138;" primitive_type identifier ;) (declaration "int iStack_12c;" primitive_type identifier ;) (declaration "uint *puStack_128;" type_identifier (pointer_declarator "*puStack_128" * identifier) ;) (declaration "uint *puStack_124;" type_identifier (pointer_declarator "*puStack_124" * identifier) ;) (declaration "uint uStack_120;" type_identifier identifier ;) (declaration "uint uStack_11c;" type_identifier identifier ;) (declaration "uint *puStack_118;" type_identifier (pointer_declarator "*puStack_118" * identifier) ;) (declaration "uint *puStack_114;" type_identifier (pointer_declarator "*puStack_114" * identifier) ;) (declaration "uint *puStack_110;" type_identifier (pointer_declarator "*puStack_110" * identifier) ;) (declaration "uint *puStack_10c;" type_identifier (pointer_declarator "*puStack_10c" * identifier) ;) (declaration "undefined4 uStack_108;" type_identifier identifier ;) (declaration "uint *puStack_104;" type_identifier (pointer_declarator "*puStack_104" * identifier) ;) (declaration "uint *puStack_100;" type_identifier (pointer_declarator "*puStack_100" * identifier) ;) (declaration "byte bStack_fc;" type_identifier identifier ;) (declaration "byte bStack_fb;" type_identifier identifier ;) (declaration "byte bStack_fa;" type_identifier identifier ;) (declaration "byte bStack_f9;" type_identifier identifier ;) (declaration "char cStack_f8;" primitive_type identifier ;) (declaration "byte bStack_f7;" type_identifier identifier ;) (declaration "byte bStack_f6;" type_identifier identifier ;) (declaration "uint uStack_f4;" type_identifier identifier ;) (declaration "uint *puStack_f0;" type_identifier (pointer_declarator "*puStack_f0" * identifier) ;) (declaration "undefined1 *puStack_ec;" type_identifier (pointer_declarator "*puStack_ec" * identifier) ;) (declaration "uint uStack_e8;" type_identifier identifier ;) (declaration "int iStack_e4;" primitive_type identifier ;) (declaration "int *piStack_e0;" primitive_type (pointer_declarator "*piStack_e0" * identifier) ;) (declaration "int iStack_dc;" primitive_type identifier ;) (declaration "undefined4 uStack_d8;" type_identifier identifier ;) (declaration "int iStack_d4;" primitive_type identifier ;) (declaration "int iStack_d0;" primitive_type identifier ;) (declaration "int iStack_cc;" primitive_type identifier ;) (declaration "int iStack_c4;" primitive_type identifier ;) (declaration "int iStack_c0;" primitive_type identifier ;) (declaration "int iStack_bc;" primitive_type identifier ;) (declaration "uint *puStack_b8;" type_identifier (pointer_declarator "*puStack_b8" * identifier) ;) (declaration "uint *puStack_b4;" type_identifier (pointer_declarator "*puStack_b4" * identifier) ;) (declaration "uint *puStack_b0;" type_identifier (pointer_declarator "*puStack_b0" * identifier) ;) (declaration "uint *puStack_ac;" type_identifier (pointer_declarator "*puStack_ac" * identifier) ;) (declaration "int *piStack_a8;" primitive_type (pointer_declarator "*piStack_a8" * identifier) ;) (declaration "int iStack_a4;" primitive_type identifier ;) (declaration "int iStack_a0;" primitive_type identifier ;) (declaration "uint *puStack_9c;" type_identifier (pointer_declarator "*puStack_9c" * identifier) ;) (declaration "int iStack_98;" primitive_type identifier ;) (declaration "code *pcStack_94;" type_identifier (pointer_declarator "*pcStack_94" * identifier) ;) (declaration "uint *puStack_88;" type_identifier (pointer_declarator "*puStack_88" * identifier) ;) (declaration "uint *local_80;" type_identifier (pointer_declarator "*local_80" * identifier) ;) (declaration "uint *local_7c;" type_identifier (pointer_declarator "*local_7c" * identifier) ;) (declaration "uint *local_78;" type_identifier (pointer_declarator "*local_78" * identifier) ;) (declaration "int *piStack_74;" primitive_type (pointer_declarator "*piStack_74" * identifier) ;) (declaration "int local_64;" primitive_type identifier ;) (declaration "uint local_38;" type_identifier identifier ;) (declaration "undefined4 local_34;" type_identifier identifier ;) (declaration "undefined4 *local_30;" type_identifier (pointer_declarator "*local_30" * identifier) ;) (declaration "uint **local_2c;" type_identifier (pointer_declarator "**local_2c" * (pointer_declarator "*local_2c" * identifier)) ;) (expression_statement "puVar46 = PTR___stack_chk_guard_00075be8;" (assignment_expression "puVar46 = PTR___stack_chk_guard_00075be8" identifier = identifier) ;) (expression_statement "local_38 = 1;" (assignment_expression "local_38 = 1" identifier = number_literal) ;) (expression_statement "local_34 = 1;" (assignment_expression "local_34 = 1" identifier = number_literal) ;) (expression_statement "local_2c = *(uint ***)PTR___stack_chk_guard_00075be8;" (assignment_expression "local_2c = *(uint ***)PTR___stack_chk_guard_00075be8" identifier = (pointer_expression "*(uint ***)PTR___stack_chk_guard_00075be8" * (cast_expression "(uint ***)PTR___stack_chk_guard_00075be8" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier))) ;) (expression_statement "puVar36 = (uint *)param_2[3];" (assignment_expression "puVar36 = (uint *)param_2[3]" identifier = (cast_expression "(uint *)param_2[3]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[3]" identifier [ number_literal ]))) ;) (expression_statement "puVar39 = (uint *)param_2[2];" (assignment_expression "puVar39 = (uint *)param_2[2]" identifier = (cast_expression "(uint *)param_2[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[2]" identifier [ number_literal ]))) ;) (expression_statement "puVar23 = param_2;" (assignment_expression "puVar23 = param_2" identifier = identifier) ;) (expression_statement "local_30 = (undefined4 *)(*(code *)PTR_malloc_00075b2c)(4);" (assignment_expression "local_30 = (undefined4 *)(*(code *)PTR_malloc_00075b2c)(4)" identifier = (cast_expression "(undefined4 *)(*(code *)PTR_malloc_00075b2c)(4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_malloc_00075b2c)(4)" (parenthesized_expression "(*(code *)PTR_malloc_00075b2c)" ( (pointer_expression "*(code *)PTR_malloc_00075b2c" * (cast_expression "(code *)PTR_malloc_00075b2c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(4)" ( number_literal ))))) ;) (if_statement "if (local_30 == (undefined4 *)0x0) {\n    uVar6 = 0xc;\n  }\n  else {\n    *local_30 = puVar39;\n    pcVar45 = (code *)(PTR_DAT_00075978 + -0x1248);\n    puVar23 = param_2;\n    param_3 = puVar36;\n    param_4 = &local_38;\n    uVar6 = FUN_0004edb8(param_1);\n    if (uVar6 == 0) {\n      local_64 = 0;\n      if (0 < (int)puVar36) {\n        pcVar7 = (code *)(PTR_LAB_00075920 + 0x5610);\n        pcVar8 = (code *)(PTR_LAB_00075920 + 0x33f8);\n        pcVar9 = (code *)(PTR_LAB_00075920 + 0x5230);\n        do {\n          unaff_s7 = (uint *)((int)puVar36 * 4);\n          if (*(int *)(*param_2 + (int)unaff_s7) == 0) {\n            local_64 = local_64 + 1;\n            if ((int)param_1[0x1e] < local_64) goto LAB_0004d6a0;\n          }\n          else {\n            local_64 = 0;\n            if ((int)param_1[0x1e] < 0) {\nLAB_0004d6a0:\n              puVar23 = (uint *)0x0;\n              param_3 = unaff_s7;\n              (*(code *)PTR_memset_00075ad4)();\n              (*(code *)PTR_free_00075bfc)(local_30);\n              uVar6 = 0;\n              goto LAB_0004d644;\n            }\n          }\n          local_34 = 0;\n          unaff_s6 = *(int *)((int)unaff_s7 + (param_1[0x19] - 4));\n          puVar36 = (uint *)((int)puVar36 + -1);\n          if ((unaff_s6 != 0) && (unaff_s4 = (int *)param_1[0x15], 0 < *(int *)(unaff_s6 + 0x14))) {\n            unaff_s5 = 0;\n            do {\n              puVar39 = *(uint **)(*(int *)(unaff_s6 + 0x18) + unaff_s5 * 4);\n              unaff_s8 = (int)puVar39 * 8;\n              iVar29 = *unaff_s4 + unaff_s8;\n              if ((*(uint *)(iVar29 + 4) & 0x800) == 0) {\nLAB_0004d464:\n                iVar29 = FUN_00047bf8(param_1,iVar29,puVar36);\n                if (iVar29 != 0) {\n                  iVar29 = *(int *)(*param_2 + (int)unaff_s7);\n                  if (iVar29 != 0) {\n                    param_3 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc);\n                    iVar29 = 1;\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                }\n              }\n              else {\n                puVar35 = (undefined4 *)param_1[0x15];\n                uVar6 = param_2[3];\n                param_3 = puVar39;\n                param_4 = param_1;\n                local_80 = puVar36;\n                iVar29 = FUN_0004b150(*puVar35,puVar35 + 0x20);\n                if (iVar29 < 1) {\n                  if (iVar29 == 0) {\n                    iVar29 = *unaff_s4;\n                    goto LAB_0004d460;\n                  }\n                }\n                else if ((int)puVar36 + iVar29 <= (int)uVar6) {\n                  iVar30 = *(int *)(*param_2 + ((int)puVar36 + iVar29) * 4);\n                  if (iVar30 != 0) {\n                    param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                  iVar29 = *unaff_s4;\nLAB_0004d460:\n                  iVar29 = iVar29 + unaff_s8;\n                  goto LAB_0004d464;\n                }\nLAB_0004d4b4:\n                if (param_2[5] != 0) {\n                  local_80 = (uint *)((int)puVar36 + iVar29);\n                  param_3 = param_2 + 6;\n                  param_4 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                  local_7c = puVar39;\n                  local_78 = puVar36;\n                  iVar29 = (*pcVar7)(param_1,param_2 + 5);\n                  if (iVar29 != 0) goto LAB_0004d510;\n                }\n                puVar23 = puVar39;\n                iVar29 = (*pcVar8)(&local_38);\n                if (iVar29 == 0) {\n                  uVar6 = 0xc;\n                  goto LAB_0004d62c;\n                }\n              }\nLAB_0004d510:\n              unaff_s5 = unaff_s5 + 1;\n              param_4 = &local_38;\n            } while (unaff_s5 < *(int *)(unaff_s6 + 0x14));\n          }\n          puVar23 = param_2;\n          param_3 = puVar36;\n          param_4 = &local_38;\n          uVar6 = (*pcVar45)(param_1);\n          if (uVar6 != 0) goto LAB_0004d62c;\n        } while (puVar36 != (uint *)0x0);\n      }\n      uVar6 = 0;\n    }\nLAB_0004d62c:\n    (*(code *)PTR_free_00075bfc)(local_30);\n  }" if (parenthesized_expression "(local_30 == (undefined4 *)0x0)" ( (binary_expression "local_30 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar6 = 0xc;\n  }" { (expression_statement "uVar6 = 0xc;" (assignment_expression "uVar6 = 0xc" identifier = number_literal) ;) }) (else_clause "else {\n    *local_30 = puVar39;\n    pcVar45 = (code *)(PTR_DAT_00075978 + -0x1248);\n    puVar23 = param_2;\n    param_3 = puVar36;\n    param_4 = &local_38;\n    uVar6 = FUN_0004edb8(param_1);\n    if (uVar6 == 0) {\n      local_64 = 0;\n      if (0 < (int)puVar36) {\n        pcVar7 = (code *)(PTR_LAB_00075920 + 0x5610);\n        pcVar8 = (code *)(PTR_LAB_00075920 + 0x33f8);\n        pcVar9 = (code *)(PTR_LAB_00075920 + 0x5230);\n        do {\n          unaff_s7 = (uint *)((int)puVar36 * 4);\n          if (*(int *)(*param_2 + (int)unaff_s7) == 0) {\n            local_64 = local_64 + 1;\n            if ((int)param_1[0x1e] < local_64) goto LAB_0004d6a0;\n          }\n          else {\n            local_64 = 0;\n            if ((int)param_1[0x1e] < 0) {\nLAB_0004d6a0:\n              puVar23 = (uint *)0x0;\n              param_3 = unaff_s7;\n              (*(code *)PTR_memset_00075ad4)();\n              (*(code *)PTR_free_00075bfc)(local_30);\n              uVar6 = 0;\n              goto LAB_0004d644;\n            }\n          }\n          local_34 = 0;\n          unaff_s6 = *(int *)((int)unaff_s7 + (param_1[0x19] - 4));\n          puVar36 = (uint *)((int)puVar36 + -1);\n          if ((unaff_s6 != 0) && (unaff_s4 = (int *)param_1[0x15], 0 < *(int *)(unaff_s6 + 0x14))) {\n            unaff_s5 = 0;\n            do {\n              puVar39 = *(uint **)(*(int *)(unaff_s6 + 0x18) + unaff_s5 * 4);\n              unaff_s8 = (int)puVar39 * 8;\n              iVar29 = *unaff_s4 + unaff_s8;\n              if ((*(uint *)(iVar29 + 4) & 0x800) == 0) {\nLAB_0004d464:\n                iVar29 = FUN_00047bf8(param_1,iVar29,puVar36);\n                if (iVar29 != 0) {\n                  iVar29 = *(int *)(*param_2 + (int)unaff_s7);\n                  if (iVar29 != 0) {\n                    param_3 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc);\n                    iVar29 = 1;\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                }\n              }\n              else {\n                puVar35 = (undefined4 *)param_1[0x15];\n                uVar6 = param_2[3];\n                param_3 = puVar39;\n                param_4 = param_1;\n                local_80 = puVar36;\n                iVar29 = FUN_0004b150(*puVar35,puVar35 + 0x20);\n                if (iVar29 < 1) {\n                  if (iVar29 == 0) {\n                    iVar29 = *unaff_s4;\n                    goto LAB_0004d460;\n                  }\n                }\n                else if ((int)puVar36 + iVar29 <= (int)uVar6) {\n                  iVar30 = *(int *)(*param_2 + ((int)puVar36 + iVar29) * 4);\n                  if (iVar30 != 0) {\n                    param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                  iVar29 = *unaff_s4;\nLAB_0004d460:\n                  iVar29 = iVar29 + unaff_s8;\n                  goto LAB_0004d464;\n                }\nLAB_0004d4b4:\n                if (param_2[5] != 0) {\n                  local_80 = (uint *)((int)puVar36 + iVar29);\n                  param_3 = param_2 + 6;\n                  param_4 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                  local_7c = puVar39;\n                  local_78 = puVar36;\n                  iVar29 = (*pcVar7)(param_1,param_2 + 5);\n                  if (iVar29 != 0) goto LAB_0004d510;\n                }\n                puVar23 = puVar39;\n                iVar29 = (*pcVar8)(&local_38);\n                if (iVar29 == 0) {\n                  uVar6 = 0xc;\n                  goto LAB_0004d62c;\n                }\n              }\nLAB_0004d510:\n              unaff_s5 = unaff_s5 + 1;\n              param_4 = &local_38;\n            } while (unaff_s5 < *(int *)(unaff_s6 + 0x14));\n          }\n          puVar23 = param_2;\n          param_3 = puVar36;\n          param_4 = &local_38;\n          uVar6 = (*pcVar45)(param_1);\n          if (uVar6 != 0) goto LAB_0004d62c;\n        } while (puVar36 != (uint *)0x0);\n      }\n      uVar6 = 0;\n    }\nLAB_0004d62c:\n    (*(code *)PTR_free_00075bfc)(local_30);\n  }" else (compound_statement "{\n    *local_30 = puVar39;\n    pcVar45 = (code *)(PTR_DAT_00075978 + -0x1248);\n    puVar23 = param_2;\n    param_3 = puVar36;\n    param_4 = &local_38;\n    uVar6 = FUN_0004edb8(param_1);\n    if (uVar6 == 0) {\n      local_64 = 0;\n      if (0 < (int)puVar36) {\n        pcVar7 = (code *)(PTR_LAB_00075920 + 0x5610);\n        pcVar8 = (code *)(PTR_LAB_00075920 + 0x33f8);\n        pcVar9 = (code *)(PTR_LAB_00075920 + 0x5230);\n        do {\n          unaff_s7 = (uint *)((int)puVar36 * 4);\n          if (*(int *)(*param_2 + (int)unaff_s7) == 0) {\n            local_64 = local_64 + 1;\n            if ((int)param_1[0x1e] < local_64) goto LAB_0004d6a0;\n          }\n          else {\n            local_64 = 0;\n            if ((int)param_1[0x1e] < 0) {\nLAB_0004d6a0:\n              puVar23 = (uint *)0x0;\n              param_3 = unaff_s7;\n              (*(code *)PTR_memset_00075ad4)();\n              (*(code *)PTR_free_00075bfc)(local_30);\n              uVar6 = 0;\n              goto LAB_0004d644;\n            }\n          }\n          local_34 = 0;\n          unaff_s6 = *(int *)((int)unaff_s7 + (param_1[0x19] - 4));\n          puVar36 = (uint *)((int)puVar36 + -1);\n          if ((unaff_s6 != 0) && (unaff_s4 = (int *)param_1[0x15], 0 < *(int *)(unaff_s6 + 0x14))) {\n            unaff_s5 = 0;\n            do {\n              puVar39 = *(uint **)(*(int *)(unaff_s6 + 0x18) + unaff_s5 * 4);\n              unaff_s8 = (int)puVar39 * 8;\n              iVar29 = *unaff_s4 + unaff_s8;\n              if ((*(uint *)(iVar29 + 4) & 0x800) == 0) {\nLAB_0004d464:\n                iVar29 = FUN_00047bf8(param_1,iVar29,puVar36);\n                if (iVar29 != 0) {\n                  iVar29 = *(int *)(*param_2 + (int)unaff_s7);\n                  if (iVar29 != 0) {\n                    param_3 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc);\n                    iVar29 = 1;\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                }\n              }\n              else {\n                puVar35 = (undefined4 *)param_1[0x15];\n                uVar6 = param_2[3];\n                param_3 = puVar39;\n                param_4 = param_1;\n                local_80 = puVar36;\n                iVar29 = FUN_0004b150(*puVar35,puVar35 + 0x20);\n                if (iVar29 < 1) {\n                  if (iVar29 == 0) {\n                    iVar29 = *unaff_s4;\n                    goto LAB_0004d460;\n                  }\n                }\n                else if ((int)puVar36 + iVar29 <= (int)uVar6) {\n                  iVar30 = *(int *)(*param_2 + ((int)puVar36 + iVar29) * 4);\n                  if (iVar30 != 0) {\n                    param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                  iVar29 = *unaff_s4;\nLAB_0004d460:\n                  iVar29 = iVar29 + unaff_s8;\n                  goto LAB_0004d464;\n                }\nLAB_0004d4b4:\n                if (param_2[5] != 0) {\n                  local_80 = (uint *)((int)puVar36 + iVar29);\n                  param_3 = param_2 + 6;\n                  param_4 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                  local_7c = puVar39;\n                  local_78 = puVar36;\n                  iVar29 = (*pcVar7)(param_1,param_2 + 5);\n                  if (iVar29 != 0) goto LAB_0004d510;\n                }\n                puVar23 = puVar39;\n                iVar29 = (*pcVar8)(&local_38);\n                if (iVar29 == 0) {\n                  uVar6 = 0xc;\n                  goto LAB_0004d62c;\n                }\n              }\nLAB_0004d510:\n              unaff_s5 = unaff_s5 + 1;\n              param_4 = &local_38;\n            } while (unaff_s5 < *(int *)(unaff_s6 + 0x14));\n          }\n          puVar23 = param_2;\n          param_3 = puVar36;\n          param_4 = &local_38;\n          uVar6 = (*pcVar45)(param_1);\n          if (uVar6 != 0) goto LAB_0004d62c;\n        } while (puVar36 != (uint *)0x0);\n      }\n      uVar6 = 0;\n    }\nLAB_0004d62c:\n    (*(code *)PTR_free_00075bfc)(local_30);\n  }" { (expression_statement "*local_30 = puVar39;" (assignment_expression "*local_30 = puVar39" (pointer_expression "*local_30" * identifier) = identifier) ;) (expression_statement "pcVar45 = (code *)(PTR_DAT_00075978 + -0x1248);" (assignment_expression "pcVar45 = (code *)(PTR_DAT_00075978 + -0x1248)" identifier = (cast_expression "(code *)(PTR_DAT_00075978 + -0x1248)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_00075978 + -0x1248)" ( (binary_expression "PTR_DAT_00075978 + -0x1248" identifier + number_literal) )))) ;) (expression_statement "puVar23 = param_2;" (assignment_expression "puVar23 = param_2" identifier = identifier) ;) (expression_statement "param_3 = puVar36;" (assignment_expression "param_3 = puVar36" identifier = identifier) ;) (expression_statement "param_4 = &local_38;" (assignment_expression "param_4 = &local_38" identifier = (pointer_expression "&local_38" & identifier)) ;) (expression_statement "uVar6 = FUN_0004edb8(param_1);" (assignment_expression "uVar6 = FUN_0004edb8(param_1)" identifier = (call_expression "FUN_0004edb8(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (uVar6 == 0) {\n      local_64 = 0;\n      if (0 < (int)puVar36) {\n        pcVar7 = (code *)(PTR_LAB_00075920 + 0x5610);\n        pcVar8 = (code *)(PTR_LAB_00075920 + 0x33f8);\n        pcVar9 = (code *)(PTR_LAB_00075920 + 0x5230);\n        do {\n          unaff_s7 = (uint *)((int)puVar36 * 4);\n          if (*(int *)(*param_2 + (int)unaff_s7) == 0) {\n            local_64 = local_64 + 1;\n            if ((int)param_1[0x1e] < local_64) goto LAB_0004d6a0;\n          }\n          else {\n            local_64 = 0;\n            if ((int)param_1[0x1e] < 0) {\nLAB_0004d6a0:\n              puVar23 = (uint *)0x0;\n              param_3 = unaff_s7;\n              (*(code *)PTR_memset_00075ad4)();\n              (*(code *)PTR_free_00075bfc)(local_30);\n              uVar6 = 0;\n              goto LAB_0004d644;\n            }\n          }\n          local_34 = 0;\n          unaff_s6 = *(int *)((int)unaff_s7 + (param_1[0x19] - 4));\n          puVar36 = (uint *)((int)puVar36 + -1);\n          if ((unaff_s6 != 0) && (unaff_s4 = (int *)param_1[0x15], 0 < *(int *)(unaff_s6 + 0x14))) {\n            unaff_s5 = 0;\n            do {\n              puVar39 = *(uint **)(*(int *)(unaff_s6 + 0x18) + unaff_s5 * 4);\n              unaff_s8 = (int)puVar39 * 8;\n              iVar29 = *unaff_s4 + unaff_s8;\n              if ((*(uint *)(iVar29 + 4) & 0x800) == 0) {\nLAB_0004d464:\n                iVar29 = FUN_00047bf8(param_1,iVar29,puVar36);\n                if (iVar29 != 0) {\n                  iVar29 = *(int *)(*param_2 + (int)unaff_s7);\n                  if (iVar29 != 0) {\n                    param_3 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc);\n                    iVar29 = 1;\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                }\n              }\n              else {\n                puVar35 = (undefined4 *)param_1[0x15];\n                uVar6 = param_2[3];\n                param_3 = puVar39;\n                param_4 = param_1;\n                local_80 = puVar36;\n                iVar29 = FUN_0004b150(*puVar35,puVar35 + 0x20);\n                if (iVar29 < 1) {\n                  if (iVar29 == 0) {\n                    iVar29 = *unaff_s4;\n                    goto LAB_0004d460;\n                  }\n                }\n                else if ((int)puVar36 + iVar29 <= (int)uVar6) {\n                  iVar30 = *(int *)(*param_2 + ((int)puVar36 + iVar29) * 4);\n                  if (iVar30 != 0) {\n                    param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                  iVar29 = *unaff_s4;\nLAB_0004d460:\n                  iVar29 = iVar29 + unaff_s8;\n                  goto LAB_0004d464;\n                }\nLAB_0004d4b4:\n                if (param_2[5] != 0) {\n                  local_80 = (uint *)((int)puVar36 + iVar29);\n                  param_3 = param_2 + 6;\n                  param_4 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                  local_7c = puVar39;\n                  local_78 = puVar36;\n                  iVar29 = (*pcVar7)(param_1,param_2 + 5);\n                  if (iVar29 != 0) goto LAB_0004d510;\n                }\n                puVar23 = puVar39;\n                iVar29 = (*pcVar8)(&local_38);\n                if (iVar29 == 0) {\n                  uVar6 = 0xc;\n                  goto LAB_0004d62c;\n                }\n              }\nLAB_0004d510:\n              unaff_s5 = unaff_s5 + 1;\n              param_4 = &local_38;\n            } while (unaff_s5 < *(int *)(unaff_s6 + 0x14));\n          }\n          puVar23 = param_2;\n          param_3 = puVar36;\n          param_4 = &local_38;\n          uVar6 = (*pcVar45)(param_1);\n          if (uVar6 != 0) goto LAB_0004d62c;\n        } while (puVar36 != (uint *)0x0);\n      }\n      uVar6 = 0;\n    }" if (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) (compound_statement "{\n      local_64 = 0;\n      if (0 < (int)puVar36) {\n        pcVar7 = (code *)(PTR_LAB_00075920 + 0x5610);\n        pcVar8 = (code *)(PTR_LAB_00075920 + 0x33f8);\n        pcVar9 = (code *)(PTR_LAB_00075920 + 0x5230);\n        do {\n          unaff_s7 = (uint *)((int)puVar36 * 4);\n          if (*(int *)(*param_2 + (int)unaff_s7) == 0) {\n            local_64 = local_64 + 1;\n            if ((int)param_1[0x1e] < local_64) goto LAB_0004d6a0;\n          }\n          else {\n            local_64 = 0;\n            if ((int)param_1[0x1e] < 0) {\nLAB_0004d6a0:\n              puVar23 = (uint *)0x0;\n              param_3 = unaff_s7;\n              (*(code *)PTR_memset_00075ad4)();\n              (*(code *)PTR_free_00075bfc)(local_30);\n              uVar6 = 0;\n              goto LAB_0004d644;\n            }\n          }\n          local_34 = 0;\n          unaff_s6 = *(int *)((int)unaff_s7 + (param_1[0x19] - 4));\n          puVar36 = (uint *)((int)puVar36 + -1);\n          if ((unaff_s6 != 0) && (unaff_s4 = (int *)param_1[0x15], 0 < *(int *)(unaff_s6 + 0x14))) {\n            unaff_s5 = 0;\n            do {\n              puVar39 = *(uint **)(*(int *)(unaff_s6 + 0x18) + unaff_s5 * 4);\n              unaff_s8 = (int)puVar39 * 8;\n              iVar29 = *unaff_s4 + unaff_s8;\n              if ((*(uint *)(iVar29 + 4) & 0x800) == 0) {\nLAB_0004d464:\n                iVar29 = FUN_00047bf8(param_1,iVar29,puVar36);\n                if (iVar29 != 0) {\n                  iVar29 = *(int *)(*param_2 + (int)unaff_s7);\n                  if (iVar29 != 0) {\n                    param_3 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc);\n                    iVar29 = 1;\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                }\n              }\n              else {\n                puVar35 = (undefined4 *)param_1[0x15];\n                uVar6 = param_2[3];\n                param_3 = puVar39;\n                param_4 = param_1;\n                local_80 = puVar36;\n                iVar29 = FUN_0004b150(*puVar35,puVar35 + 0x20);\n                if (iVar29 < 1) {\n                  if (iVar29 == 0) {\n                    iVar29 = *unaff_s4;\n                    goto LAB_0004d460;\n                  }\n                }\n                else if ((int)puVar36 + iVar29 <= (int)uVar6) {\n                  iVar30 = *(int *)(*param_2 + ((int)puVar36 + iVar29) * 4);\n                  if (iVar30 != 0) {\n                    param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                  iVar29 = *unaff_s4;\nLAB_0004d460:\n                  iVar29 = iVar29 + unaff_s8;\n                  goto LAB_0004d464;\n                }\nLAB_0004d4b4:\n                if (param_2[5] != 0) {\n                  local_80 = (uint *)((int)puVar36 + iVar29);\n                  param_3 = param_2 + 6;\n                  param_4 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                  local_7c = puVar39;\n                  local_78 = puVar36;\n                  iVar29 = (*pcVar7)(param_1,param_2 + 5);\n                  if (iVar29 != 0) goto LAB_0004d510;\n                }\n                puVar23 = puVar39;\n                iVar29 = (*pcVar8)(&local_38);\n                if (iVar29 == 0) {\n                  uVar6 = 0xc;\n                  goto LAB_0004d62c;\n                }\n              }\nLAB_0004d510:\n              unaff_s5 = unaff_s5 + 1;\n              param_4 = &local_38;\n            } while (unaff_s5 < *(int *)(unaff_s6 + 0x14));\n          }\n          puVar23 = param_2;\n          param_3 = puVar36;\n          param_4 = &local_38;\n          uVar6 = (*pcVar45)(param_1);\n          if (uVar6 != 0) goto LAB_0004d62c;\n        } while (puVar36 != (uint *)0x0);\n      }\n      uVar6 = 0;\n    }" { (expression_statement "local_64 = 0;" (assignment_expression "local_64 = 0" identifier = number_literal) ;) (if_statement "if (0 < (int)puVar36) {\n        pcVar7 = (code *)(PTR_LAB_00075920 + 0x5610);\n        pcVar8 = (code *)(PTR_LAB_00075920 + 0x33f8);\n        pcVar9 = (code *)(PTR_LAB_00075920 + 0x5230);\n        do {\n          unaff_s7 = (uint *)((int)puVar36 * 4);\n          if (*(int *)(*param_2 + (int)unaff_s7) == 0) {\n            local_64 = local_64 + 1;\n            if ((int)param_1[0x1e] < local_64) goto LAB_0004d6a0;\n          }\n          else {\n            local_64 = 0;\n            if ((int)param_1[0x1e] < 0) {\nLAB_0004d6a0:\n              puVar23 = (uint *)0x0;\n              param_3 = unaff_s7;\n              (*(code *)PTR_memset_00075ad4)();\n              (*(code *)PTR_free_00075bfc)(local_30);\n              uVar6 = 0;\n              goto LAB_0004d644;\n            }\n          }\n          local_34 = 0;\n          unaff_s6 = *(int *)((int)unaff_s7 + (param_1[0x19] - 4));\n          puVar36 = (uint *)((int)puVar36 + -1);\n          if ((unaff_s6 != 0) && (unaff_s4 = (int *)param_1[0x15], 0 < *(int *)(unaff_s6 + 0x14))) {\n            unaff_s5 = 0;\n            do {\n              puVar39 = *(uint **)(*(int *)(unaff_s6 + 0x18) + unaff_s5 * 4);\n              unaff_s8 = (int)puVar39 * 8;\n              iVar29 = *unaff_s4 + unaff_s8;\n              if ((*(uint *)(iVar29 + 4) & 0x800) == 0) {\nLAB_0004d464:\n                iVar29 = FUN_00047bf8(param_1,iVar29,puVar36);\n                if (iVar29 != 0) {\n                  iVar29 = *(int *)(*param_2 + (int)unaff_s7);\n                  if (iVar29 != 0) {\n                    param_3 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc);\n                    iVar29 = 1;\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                }\n              }\n              else {\n                puVar35 = (undefined4 *)param_1[0x15];\n                uVar6 = param_2[3];\n                param_3 = puVar39;\n                param_4 = param_1;\n                local_80 = puVar36;\n                iVar29 = FUN_0004b150(*puVar35,puVar35 + 0x20);\n                if (iVar29 < 1) {\n                  if (iVar29 == 0) {\n                    iVar29 = *unaff_s4;\n                    goto LAB_0004d460;\n                  }\n                }\n                else if ((int)puVar36 + iVar29 <= (int)uVar6) {\n                  iVar30 = *(int *)(*param_2 + ((int)puVar36 + iVar29) * 4);\n                  if (iVar30 != 0) {\n                    param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                  iVar29 = *unaff_s4;\nLAB_0004d460:\n                  iVar29 = iVar29 + unaff_s8;\n                  goto LAB_0004d464;\n                }\nLAB_0004d4b4:\n                if (param_2[5] != 0) {\n                  local_80 = (uint *)((int)puVar36 + iVar29);\n                  param_3 = param_2 + 6;\n                  param_4 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                  local_7c = puVar39;\n                  local_78 = puVar36;\n                  iVar29 = (*pcVar7)(param_1,param_2 + 5);\n                  if (iVar29 != 0) goto LAB_0004d510;\n                }\n                puVar23 = puVar39;\n                iVar29 = (*pcVar8)(&local_38);\n                if (iVar29 == 0) {\n                  uVar6 = 0xc;\n                  goto LAB_0004d62c;\n                }\n              }\nLAB_0004d510:\n              unaff_s5 = unaff_s5 + 1;\n              param_4 = &local_38;\n            } while (unaff_s5 < *(int *)(unaff_s6 + 0x14));\n          }\n          puVar23 = param_2;\n          param_3 = puVar36;\n          param_4 = &local_38;\n          uVar6 = (*pcVar45)(param_1);\n          if (uVar6 != 0) goto LAB_0004d62c;\n        } while (puVar36 != (uint *)0x0);\n      }" if (parenthesized_expression "(0 < (int)puVar36)" ( (binary_expression "0 < (int)puVar36" number_literal < (cast_expression "(int)puVar36" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        pcVar7 = (code *)(PTR_LAB_00075920 + 0x5610);\n        pcVar8 = (code *)(PTR_LAB_00075920 + 0x33f8);\n        pcVar9 = (code *)(PTR_LAB_00075920 + 0x5230);\n        do {\n          unaff_s7 = (uint *)((int)puVar36 * 4);\n          if (*(int *)(*param_2 + (int)unaff_s7) == 0) {\n            local_64 = local_64 + 1;\n            if ((int)param_1[0x1e] < local_64) goto LAB_0004d6a0;\n          }\n          else {\n            local_64 = 0;\n            if ((int)param_1[0x1e] < 0) {\nLAB_0004d6a0:\n              puVar23 = (uint *)0x0;\n              param_3 = unaff_s7;\n              (*(code *)PTR_memset_00075ad4)();\n              (*(code *)PTR_free_00075bfc)(local_30);\n              uVar6 = 0;\n              goto LAB_0004d644;\n            }\n          }\n          local_34 = 0;\n          unaff_s6 = *(int *)((int)unaff_s7 + (param_1[0x19] - 4));\n          puVar36 = (uint *)((int)puVar36 + -1);\n          if ((unaff_s6 != 0) && (unaff_s4 = (int *)param_1[0x15], 0 < *(int *)(unaff_s6 + 0x14))) {\n            unaff_s5 = 0;\n            do {\n              puVar39 = *(uint **)(*(int *)(unaff_s6 + 0x18) + unaff_s5 * 4);\n              unaff_s8 = (int)puVar39 * 8;\n              iVar29 = *unaff_s4 + unaff_s8;\n              if ((*(uint *)(iVar29 + 4) & 0x800) == 0) {\nLAB_0004d464:\n                iVar29 = FUN_00047bf8(param_1,iVar29,puVar36);\n                if (iVar29 != 0) {\n                  iVar29 = *(int *)(*param_2 + (int)unaff_s7);\n                  if (iVar29 != 0) {\n                    param_3 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc);\n                    iVar29 = 1;\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                }\n              }\n              else {\n                puVar35 = (undefined4 *)param_1[0x15];\n                uVar6 = param_2[3];\n                param_3 = puVar39;\n                param_4 = param_1;\n                local_80 = puVar36;\n                iVar29 = FUN_0004b150(*puVar35,puVar35 + 0x20);\n                if (iVar29 < 1) {\n                  if (iVar29 == 0) {\n                    iVar29 = *unaff_s4;\n                    goto LAB_0004d460;\n                  }\n                }\n                else if ((int)puVar36 + iVar29 <= (int)uVar6) {\n                  iVar30 = *(int *)(*param_2 + ((int)puVar36 + iVar29) * 4);\n                  if (iVar30 != 0) {\n                    param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                  iVar29 = *unaff_s4;\nLAB_0004d460:\n                  iVar29 = iVar29 + unaff_s8;\n                  goto LAB_0004d464;\n                }\nLAB_0004d4b4:\n                if (param_2[5] != 0) {\n                  local_80 = (uint *)((int)puVar36 + iVar29);\n                  param_3 = param_2 + 6;\n                  param_4 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                  local_7c = puVar39;\n                  local_78 = puVar36;\n                  iVar29 = (*pcVar7)(param_1,param_2 + 5);\n                  if (iVar29 != 0) goto LAB_0004d510;\n                }\n                puVar23 = puVar39;\n                iVar29 = (*pcVar8)(&local_38);\n                if (iVar29 == 0) {\n                  uVar6 = 0xc;\n                  goto LAB_0004d62c;\n                }\n              }\nLAB_0004d510:\n              unaff_s5 = unaff_s5 + 1;\n              param_4 = &local_38;\n            } while (unaff_s5 < *(int *)(unaff_s6 + 0x14));\n          }\n          puVar23 = param_2;\n          param_3 = puVar36;\n          param_4 = &local_38;\n          uVar6 = (*pcVar45)(param_1);\n          if (uVar6 != 0) goto LAB_0004d62c;\n        } while (puVar36 != (uint *)0x0);\n      }" { (expression_statement "pcVar7 = (code *)(PTR_LAB_00075920 + 0x5610);" (assignment_expression "pcVar7 = (code *)(PTR_LAB_00075920 + 0x5610)" identifier = (cast_expression "(code *)(PTR_LAB_00075920 + 0x5610)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00075920 + 0x5610)" ( (binary_expression "PTR_LAB_00075920 + 0x5610" identifier + number_literal) )))) ;) (expression_statement "pcVar8 = (code *)(PTR_LAB_00075920 + 0x33f8);" (assignment_expression "pcVar8 = (code *)(PTR_LAB_00075920 + 0x33f8)" identifier = (cast_expression "(code *)(PTR_LAB_00075920 + 0x33f8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00075920 + 0x33f8)" ( (binary_expression "PTR_LAB_00075920 + 0x33f8" identifier + number_literal) )))) ;) (expression_statement "pcVar9 = (code *)(PTR_LAB_00075920 + 0x5230);" (assignment_expression "pcVar9 = (code *)(PTR_LAB_00075920 + 0x5230)" identifier = (cast_expression "(code *)(PTR_LAB_00075920 + 0x5230)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00075920 + 0x5230)" ( (binary_expression "PTR_LAB_00075920 + 0x5230" identifier + number_literal) )))) ;) (do_statement "do {\n          unaff_s7 = (uint *)((int)puVar36 * 4);\n          if (*(int *)(*param_2 + (int)unaff_s7) == 0) {\n            local_64 = local_64 + 1;\n            if ((int)param_1[0x1e] < local_64) goto LAB_0004d6a0;\n          }\n          else {\n            local_64 = 0;\n            if ((int)param_1[0x1e] < 0) {\nLAB_0004d6a0:\n              puVar23 = (uint *)0x0;\n              param_3 = unaff_s7;\n              (*(code *)PTR_memset_00075ad4)();\n              (*(code *)PTR_free_00075bfc)(local_30);\n              uVar6 = 0;\n              goto LAB_0004d644;\n            }\n          }\n          local_34 = 0;\n          unaff_s6 = *(int *)((int)unaff_s7 + (param_1[0x19] - 4));\n          puVar36 = (uint *)((int)puVar36 + -1);\n          if ((unaff_s6 != 0) && (unaff_s4 = (int *)param_1[0x15], 0 < *(int *)(unaff_s6 + 0x14))) {\n            unaff_s5 = 0;\n            do {\n              puVar39 = *(uint **)(*(int *)(unaff_s6 + 0x18) + unaff_s5 * 4);\n              unaff_s8 = (int)puVar39 * 8;\n              iVar29 = *unaff_s4 + unaff_s8;\n              if ((*(uint *)(iVar29 + 4) & 0x800) == 0) {\nLAB_0004d464:\n                iVar29 = FUN_00047bf8(param_1,iVar29,puVar36);\n                if (iVar29 != 0) {\n                  iVar29 = *(int *)(*param_2 + (int)unaff_s7);\n                  if (iVar29 != 0) {\n                    param_3 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc);\n                    iVar29 = 1;\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                }\n              }\n              else {\n                puVar35 = (undefined4 *)param_1[0x15];\n                uVar6 = param_2[3];\n                param_3 = puVar39;\n                param_4 = param_1;\n                local_80 = puVar36;\n                iVar29 = FUN_0004b150(*puVar35,puVar35 + 0x20);\n                if (iVar29 < 1) {\n                  if (iVar29 == 0) {\n                    iVar29 = *unaff_s4;\n                    goto LAB_0004d460;\n                  }\n                }\n                else if ((int)puVar36 + iVar29 <= (int)uVar6) {\n                  iVar30 = *(int *)(*param_2 + ((int)puVar36 + iVar29) * 4);\n                  if (iVar30 != 0) {\n                    param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                  iVar29 = *unaff_s4;\nLAB_0004d460:\n                  iVar29 = iVar29 + unaff_s8;\n                  goto LAB_0004d464;\n                }\nLAB_0004d4b4:\n                if (param_2[5] != 0) {\n                  local_80 = (uint *)((int)puVar36 + iVar29);\n                  param_3 = param_2 + 6;\n                  param_4 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                  local_7c = puVar39;\n                  local_78 = puVar36;\n                  iVar29 = (*pcVar7)(param_1,param_2 + 5);\n                  if (iVar29 != 0) goto LAB_0004d510;\n                }\n                puVar23 = puVar39;\n                iVar29 = (*pcVar8)(&local_38);\n                if (iVar29 == 0) {\n                  uVar6 = 0xc;\n                  goto LAB_0004d62c;\n                }\n              }\nLAB_0004d510:\n              unaff_s5 = unaff_s5 + 1;\n              param_4 = &local_38;\n            } while (unaff_s5 < *(int *)(unaff_s6 + 0x14));\n          }\n          puVar23 = param_2;\n          param_3 = puVar36;\n          param_4 = &local_38;\n          uVar6 = (*pcVar45)(param_1);\n          if (uVar6 != 0) goto LAB_0004d62c;\n        } while (puVar36 != (uint *)0x0);" do (compound_statement "{\n          unaff_s7 = (uint *)((int)puVar36 * 4);\n          if (*(int *)(*param_2 + (int)unaff_s7) == 0) {\n            local_64 = local_64 + 1;\n            if ((int)param_1[0x1e] < local_64) goto LAB_0004d6a0;\n          }\n          else {\n            local_64 = 0;\n            if ((int)param_1[0x1e] < 0) {\nLAB_0004d6a0:\n              puVar23 = (uint *)0x0;\n              param_3 = unaff_s7;\n              (*(code *)PTR_memset_00075ad4)();\n              (*(code *)PTR_free_00075bfc)(local_30);\n              uVar6 = 0;\n              goto LAB_0004d644;\n            }\n          }\n          local_34 = 0;\n          unaff_s6 = *(int *)((int)unaff_s7 + (param_1[0x19] - 4));\n          puVar36 = (uint *)((int)puVar36 + -1);\n          if ((unaff_s6 != 0) && (unaff_s4 = (int *)param_1[0x15], 0 < *(int *)(unaff_s6 + 0x14))) {\n            unaff_s5 = 0;\n            do {\n              puVar39 = *(uint **)(*(int *)(unaff_s6 + 0x18) + unaff_s5 * 4);\n              unaff_s8 = (int)puVar39 * 8;\n              iVar29 = *unaff_s4 + unaff_s8;\n              if ((*(uint *)(iVar29 + 4) & 0x800) == 0) {\nLAB_0004d464:\n                iVar29 = FUN_00047bf8(param_1,iVar29,puVar36);\n                if (iVar29 != 0) {\n                  iVar29 = *(int *)(*param_2 + (int)unaff_s7);\n                  if (iVar29 != 0) {\n                    param_3 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc);\n                    iVar29 = 1;\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                }\n              }\n              else {\n                puVar35 = (undefined4 *)param_1[0x15];\n                uVar6 = param_2[3];\n                param_3 = puVar39;\n                param_4 = param_1;\n                local_80 = puVar36;\n                iVar29 = FUN_0004b150(*puVar35,puVar35 + 0x20);\n                if (iVar29 < 1) {\n                  if (iVar29 == 0) {\n                    iVar29 = *unaff_s4;\n                    goto LAB_0004d460;\n                  }\n                }\n                else if ((int)puVar36 + iVar29 <= (int)uVar6) {\n                  iVar30 = *(int *)(*param_2 + ((int)puVar36 + iVar29) * 4);\n                  if (iVar30 != 0) {\n                    param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                  iVar29 = *unaff_s4;\nLAB_0004d460:\n                  iVar29 = iVar29 + unaff_s8;\n                  goto LAB_0004d464;\n                }\nLAB_0004d4b4:\n                if (param_2[5] != 0) {\n                  local_80 = (uint *)((int)puVar36 + iVar29);\n                  param_3 = param_2 + 6;\n                  param_4 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                  local_7c = puVar39;\n                  local_78 = puVar36;\n                  iVar29 = (*pcVar7)(param_1,param_2 + 5);\n                  if (iVar29 != 0) goto LAB_0004d510;\n                }\n                puVar23 = puVar39;\n                iVar29 = (*pcVar8)(&local_38);\n                if (iVar29 == 0) {\n                  uVar6 = 0xc;\n                  goto LAB_0004d62c;\n                }\n              }\nLAB_0004d510:\n              unaff_s5 = unaff_s5 + 1;\n              param_4 = &local_38;\n            } while (unaff_s5 < *(int *)(unaff_s6 + 0x14));\n          }\n          puVar23 = param_2;\n          param_3 = puVar36;\n          param_4 = &local_38;\n          uVar6 = (*pcVar45)(param_1);\n          if (uVar6 != 0) goto LAB_0004d62c;\n        }" { (expression_statement "unaff_s7 = (uint *)((int)puVar36 * 4);" (assignment_expression "unaff_s7 = (uint *)((int)puVar36 * 4)" identifier = (cast_expression "(uint *)((int)puVar36 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar36 * 4)" ( (binary_expression "(int)puVar36 * 4" (cast_expression "(int)puVar36" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (if_statement "if (*(int *)(*param_2 + (int)unaff_s7) == 0) {\n            local_64 = local_64 + 1;\n            if ((int)param_1[0x1e] < local_64) goto LAB_0004d6a0;\n          }\n          else {\n            local_64 = 0;\n            if ((int)param_1[0x1e] < 0) {\nLAB_0004d6a0:\n              puVar23 = (uint *)0x0;\n              param_3 = unaff_s7;\n              (*(code *)PTR_memset_00075ad4)();\n              (*(code *)PTR_free_00075bfc)(local_30);\n              uVar6 = 0;\n              goto LAB_0004d644;\n            }\n          }" if (parenthesized_expression "(*(int *)(*param_2 + (int)unaff_s7) == 0)" ( (binary_expression "*(int *)(*param_2 + (int)unaff_s7) == 0" (pointer_expression "*(int *)(*param_2 + (int)unaff_s7)" * (cast_expression "(int *)(*param_2 + (int)unaff_s7)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_2 + (int)unaff_s7)" ( (binary_expression "*param_2 + (int)unaff_s7" (pointer_expression "*param_2" * identifier) + (cast_expression "(int)unaff_s7" ( (type_descriptor "int" primitive_type) ) identifier)) )))) == number_literal) )) (compound_statement "{\n            local_64 = local_64 + 1;\n            if ((int)param_1[0x1e] < local_64) goto LAB_0004d6a0;\n          }" { (expression_statement "local_64 = local_64 + 1;" (assignment_expression "local_64 = local_64 + 1" identifier = (binary_expression "local_64 + 1" identifier + number_literal)) ;) (if_statement "if ((int)param_1[0x1e] < local_64) goto LAB_0004d6a0;" if (parenthesized_expression "((int)param_1[0x1e] < local_64)" ( (binary_expression "(int)param_1[0x1e] < local_64" (cast_expression "(int)param_1[0x1e]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[0x1e]" identifier [ number_literal ])) < identifier) )) (goto_statement "goto LAB_0004d6a0;" goto statement_identifier ;)) }) (else_clause "else {\n            local_64 = 0;\n            if ((int)param_1[0x1e] < 0) {\nLAB_0004d6a0:\n              puVar23 = (uint *)0x0;\n              param_3 = unaff_s7;\n              (*(code *)PTR_memset_00075ad4)();\n              (*(code *)PTR_free_00075bfc)(local_30);\n              uVar6 = 0;\n              goto LAB_0004d644;\n            }\n          }" else (compound_statement "{\n            local_64 = 0;\n            if ((int)param_1[0x1e] < 0) {\nLAB_0004d6a0:\n              puVar23 = (uint *)0x0;\n              param_3 = unaff_s7;\n              (*(code *)PTR_memset_00075ad4)();\n              (*(code *)PTR_free_00075bfc)(local_30);\n              uVar6 = 0;\n              goto LAB_0004d644;\n            }\n          }" { (expression_statement "local_64 = 0;" (assignment_expression "local_64 = 0" identifier = number_literal) ;) (if_statement "if ((int)param_1[0x1e] < 0) {\nLAB_0004d6a0:\n              puVar23 = (uint *)0x0;\n              param_3 = unaff_s7;\n              (*(code *)PTR_memset_00075ad4)();\n              (*(code *)PTR_free_00075bfc)(local_30);\n              uVar6 = 0;\n              goto LAB_0004d644;\n            }" if (parenthesized_expression "((int)param_1[0x1e] < 0)" ( (binary_expression "(int)param_1[0x1e] < 0" (cast_expression "(int)param_1[0x1e]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[0x1e]" identifier [ number_literal ])) < number_literal) )) (compound_statement "{\nLAB_0004d6a0:\n              puVar23 = (uint *)0x0;\n              param_3 = unaff_s7;\n              (*(code *)PTR_memset_00075ad4)();\n              (*(code *)PTR_free_00075bfc)(local_30);\n              uVar6 = 0;\n              goto LAB_0004d644;\n            }" { (labeled_statement "LAB_0004d6a0:\n              puVar23 = (uint *)0x0;" statement_identifier : (expression_statement "puVar23 = (uint *)0x0;" (assignment_expression "puVar23 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "param_3 = unaff_s7;" (assignment_expression "param_3 = unaff_s7" identifier = identifier) ;) (expression_statement "(*(code *)PTR_memset_00075ad4)();" (call_expression "(*(code *)PTR_memset_00075ad4)()" (parenthesized_expression "(*(code *)PTR_memset_00075ad4)" ( (pointer_expression "*(code *)PTR_memset_00075ad4" * (cast_expression "(code *)PTR_memset_00075ad4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "(*(code *)PTR_free_00075bfc)(local_30);" (call_expression "(*(code *)PTR_free_00075bfc)(local_30)" (parenthesized_expression "(*(code *)PTR_free_00075bfc)" ( (pointer_expression "*(code *)PTR_free_00075bfc" * (cast_expression "(code *)PTR_free_00075bfc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_30)" ( identifier ))) ;) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0004d644;" goto statement_identifier ;) })) }))) (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" identifier = number_literal) ;) (expression_statement "unaff_s6 = *(int *)((int)unaff_s7 + (param_1[0x19] - 4));" (assignment_expression "unaff_s6 = *(int *)((int)unaff_s7 + (param_1[0x19] - 4))" identifier = (pointer_expression "*(int *)((int)unaff_s7 + (param_1[0x19] - 4))" * (cast_expression "(int *)((int)unaff_s7 + (param_1[0x19] - 4))" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s7 + (param_1[0x19] - 4))" ( (binary_expression "(int)unaff_s7 + (param_1[0x19] - 4)" (cast_expression "(int)unaff_s7" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(param_1[0x19] - 4)" ( (binary_expression "param_1[0x19] - 4" (subscript_expression "param_1[0x19]" identifier [ number_literal ]) - number_literal) ))) ))))) ;) (expression_statement "puVar36 = (uint *)((int)puVar36 + -1);" (assignment_expression "puVar36 = (uint *)((int)puVar36 + -1)" identifier = (cast_expression "(uint *)((int)puVar36 + -1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar36 + -1)" ( (binary_expression "(int)puVar36 + -1" (cast_expression "(int)puVar36" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if ((unaff_s6 != 0) && (unaff_s4 = (int *)param_1[0x15], 0 < *(int *)(unaff_s6 + 0x14))) {\n            unaff_s5 = 0;\n            do {\n              puVar39 = *(uint **)(*(int *)(unaff_s6 + 0x18) + unaff_s5 * 4);\n              unaff_s8 = (int)puVar39 * 8;\n              iVar29 = *unaff_s4 + unaff_s8;\n              if ((*(uint *)(iVar29 + 4) & 0x800) == 0) {\nLAB_0004d464:\n                iVar29 = FUN_00047bf8(param_1,iVar29,puVar36);\n                if (iVar29 != 0) {\n                  iVar29 = *(int *)(*param_2 + (int)unaff_s7);\n                  if (iVar29 != 0) {\n                    param_3 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc);\n                    iVar29 = 1;\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                }\n              }\n              else {\n                puVar35 = (undefined4 *)param_1[0x15];\n                uVar6 = param_2[3];\n                param_3 = puVar39;\n                param_4 = param_1;\n                local_80 = puVar36;\n                iVar29 = FUN_0004b150(*puVar35,puVar35 + 0x20);\n                if (iVar29 < 1) {\n                  if (iVar29 == 0) {\n                    iVar29 = *unaff_s4;\n                    goto LAB_0004d460;\n                  }\n                }\n                else if ((int)puVar36 + iVar29 <= (int)uVar6) {\n                  iVar30 = *(int *)(*param_2 + ((int)puVar36 + iVar29) * 4);\n                  if (iVar30 != 0) {\n                    param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                  iVar29 = *unaff_s4;\nLAB_0004d460:\n                  iVar29 = iVar29 + unaff_s8;\n                  goto LAB_0004d464;\n                }\nLAB_0004d4b4:\n                if (param_2[5] != 0) {\n                  local_80 = (uint *)((int)puVar36 + iVar29);\n                  param_3 = param_2 + 6;\n                  param_4 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                  local_7c = puVar39;\n                  local_78 = puVar36;\n                  iVar29 = (*pcVar7)(param_1,param_2 + 5);\n                  if (iVar29 != 0) goto LAB_0004d510;\n                }\n                puVar23 = puVar39;\n                iVar29 = (*pcVar8)(&local_38);\n                if (iVar29 == 0) {\n                  uVar6 = 0xc;\n                  goto LAB_0004d62c;\n                }\n              }\nLAB_0004d510:\n              unaff_s5 = unaff_s5 + 1;\n              param_4 = &local_38;\n            } while (unaff_s5 < *(int *)(unaff_s6 + 0x14));\n          }" if (parenthesized_expression "((unaff_s6 != 0) && (unaff_s4 = (int *)param_1[0x15], 0 < *(int *)(unaff_s6 + 0x14)))" ( (binary_expression "(unaff_s6 != 0) && (unaff_s4 = (int *)param_1[0x15], 0 < *(int *)(unaff_s6 + 0x14))" (parenthesized_expression "(unaff_s6 != 0)" ( (binary_expression "unaff_s6 != 0" identifier != number_literal) )) && (parenthesized_expression "(unaff_s4 = (int *)param_1[0x15], 0 < *(int *)(unaff_s6 + 0x14))" ( (comma_expression "unaff_s4 = (int *)param_1[0x15], 0 < *(int *)(unaff_s6 + 0x14)" (assignment_expression "unaff_s4 = (int *)param_1[0x15]" identifier = (cast_expression "(int *)param_1[0x15]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x15]" identifier [ number_literal ]))) , (binary_expression "0 < *(int *)(unaff_s6 + 0x14)" number_literal < (pointer_expression "*(int *)(unaff_s6 + 0x14)" * (cast_expression "(int *)(unaff_s6 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s6 + 0x14)" ( (binary_expression "unaff_s6 + 0x14" identifier + number_literal) )))))) ))) )) (compound_statement "{\n            unaff_s5 = 0;\n            do {\n              puVar39 = *(uint **)(*(int *)(unaff_s6 + 0x18) + unaff_s5 * 4);\n              unaff_s8 = (int)puVar39 * 8;\n              iVar29 = *unaff_s4 + unaff_s8;\n              if ((*(uint *)(iVar29 + 4) & 0x800) == 0) {\nLAB_0004d464:\n                iVar29 = FUN_00047bf8(param_1,iVar29,puVar36);\n                if (iVar29 != 0) {\n                  iVar29 = *(int *)(*param_2 + (int)unaff_s7);\n                  if (iVar29 != 0) {\n                    param_3 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc);\n                    iVar29 = 1;\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                }\n              }\n              else {\n                puVar35 = (undefined4 *)param_1[0x15];\n                uVar6 = param_2[3];\n                param_3 = puVar39;\n                param_4 = param_1;\n                local_80 = puVar36;\n                iVar29 = FUN_0004b150(*puVar35,puVar35 + 0x20);\n                if (iVar29 < 1) {\n                  if (iVar29 == 0) {\n                    iVar29 = *unaff_s4;\n                    goto LAB_0004d460;\n                  }\n                }\n                else if ((int)puVar36 + iVar29 <= (int)uVar6) {\n                  iVar30 = *(int *)(*param_2 + ((int)puVar36 + iVar29) * 4);\n                  if (iVar30 != 0) {\n                    param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                  iVar29 = *unaff_s4;\nLAB_0004d460:\n                  iVar29 = iVar29 + unaff_s8;\n                  goto LAB_0004d464;\n                }\nLAB_0004d4b4:\n                if (param_2[5] != 0) {\n                  local_80 = (uint *)((int)puVar36 + iVar29);\n                  param_3 = param_2 + 6;\n                  param_4 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                  local_7c = puVar39;\n                  local_78 = puVar36;\n                  iVar29 = (*pcVar7)(param_1,param_2 + 5);\n                  if (iVar29 != 0) goto LAB_0004d510;\n                }\n                puVar23 = puVar39;\n                iVar29 = (*pcVar8)(&local_38);\n                if (iVar29 == 0) {\n                  uVar6 = 0xc;\n                  goto LAB_0004d62c;\n                }\n              }\nLAB_0004d510:\n              unaff_s5 = unaff_s5 + 1;\n              param_4 = &local_38;\n            } while (unaff_s5 < *(int *)(unaff_s6 + 0x14));\n          }" { (expression_statement "unaff_s5 = 0;" (assignment_expression "unaff_s5 = 0" identifier = number_literal) ;) (do_statement "do {\n              puVar39 = *(uint **)(*(int *)(unaff_s6 + 0x18) + unaff_s5 * 4);\n              unaff_s8 = (int)puVar39 * 8;\n              iVar29 = *unaff_s4 + unaff_s8;\n              if ((*(uint *)(iVar29 + 4) & 0x800) == 0) {\nLAB_0004d464:\n                iVar29 = FUN_00047bf8(param_1,iVar29,puVar36);\n                if (iVar29 != 0) {\n                  iVar29 = *(int *)(*param_2 + (int)unaff_s7);\n                  if (iVar29 != 0) {\n                    param_3 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc);\n                    iVar29 = 1;\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                }\n              }\n              else {\n                puVar35 = (undefined4 *)param_1[0x15];\n                uVar6 = param_2[3];\n                param_3 = puVar39;\n                param_4 = param_1;\n                local_80 = puVar36;\n                iVar29 = FUN_0004b150(*puVar35,puVar35 + 0x20);\n                if (iVar29 < 1) {\n                  if (iVar29 == 0) {\n                    iVar29 = *unaff_s4;\n                    goto LAB_0004d460;\n                  }\n                }\n                else if ((int)puVar36 + iVar29 <= (int)uVar6) {\n                  iVar30 = *(int *)(*param_2 + ((int)puVar36 + iVar29) * 4);\n                  if (iVar30 != 0) {\n                    param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                  iVar29 = *unaff_s4;\nLAB_0004d460:\n                  iVar29 = iVar29 + unaff_s8;\n                  goto LAB_0004d464;\n                }\nLAB_0004d4b4:\n                if (param_2[5] != 0) {\n                  local_80 = (uint *)((int)puVar36 + iVar29);\n                  param_3 = param_2 + 6;\n                  param_4 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                  local_7c = puVar39;\n                  local_78 = puVar36;\n                  iVar29 = (*pcVar7)(param_1,param_2 + 5);\n                  if (iVar29 != 0) goto LAB_0004d510;\n                }\n                puVar23 = puVar39;\n                iVar29 = (*pcVar8)(&local_38);\n                if (iVar29 == 0) {\n                  uVar6 = 0xc;\n                  goto LAB_0004d62c;\n                }\n              }\nLAB_0004d510:\n              unaff_s5 = unaff_s5 + 1;\n              param_4 = &local_38;\n            } while (unaff_s5 < *(int *)(unaff_s6 + 0x14));" do (compound_statement "{\n              puVar39 = *(uint **)(*(int *)(unaff_s6 + 0x18) + unaff_s5 * 4);\n              unaff_s8 = (int)puVar39 * 8;\n              iVar29 = *unaff_s4 + unaff_s8;\n              if ((*(uint *)(iVar29 + 4) & 0x800) == 0) {\nLAB_0004d464:\n                iVar29 = FUN_00047bf8(param_1,iVar29,puVar36);\n                if (iVar29 != 0) {\n                  iVar29 = *(int *)(*param_2 + (int)unaff_s7);\n                  if (iVar29 != 0) {\n                    param_3 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc);\n                    iVar29 = 1;\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                }\n              }\n              else {\n                puVar35 = (undefined4 *)param_1[0x15];\n                uVar6 = param_2[3];\n                param_3 = puVar39;\n                param_4 = param_1;\n                local_80 = puVar36;\n                iVar29 = FUN_0004b150(*puVar35,puVar35 + 0x20);\n                if (iVar29 < 1) {\n                  if (iVar29 == 0) {\n                    iVar29 = *unaff_s4;\n                    goto LAB_0004d460;\n                  }\n                }\n                else if ((int)puVar36 + iVar29 <= (int)uVar6) {\n                  iVar30 = *(int *)(*param_2 + ((int)puVar36 + iVar29) * 4);\n                  if (iVar30 != 0) {\n                    param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                  iVar29 = *unaff_s4;\nLAB_0004d460:\n                  iVar29 = iVar29 + unaff_s8;\n                  goto LAB_0004d464;\n                }\nLAB_0004d4b4:\n                if (param_2[5] != 0) {\n                  local_80 = (uint *)((int)puVar36 + iVar29);\n                  param_3 = param_2 + 6;\n                  param_4 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                  local_7c = puVar39;\n                  local_78 = puVar36;\n                  iVar29 = (*pcVar7)(param_1,param_2 + 5);\n                  if (iVar29 != 0) goto LAB_0004d510;\n                }\n                puVar23 = puVar39;\n                iVar29 = (*pcVar8)(&local_38);\n                if (iVar29 == 0) {\n                  uVar6 = 0xc;\n                  goto LAB_0004d62c;\n                }\n              }\nLAB_0004d510:\n              unaff_s5 = unaff_s5 + 1;\n              param_4 = &local_38;\n            }" { (expression_statement "puVar39 = *(uint **)(*(int *)(unaff_s6 + 0x18) + unaff_s5 * 4);" (assignment_expression "puVar39 = *(uint **)(*(int *)(unaff_s6 + 0x18) + unaff_s5 * 4)" identifier = (pointer_expression "*(uint **)(*(int *)(unaff_s6 + 0x18) + unaff_s5 * 4)" * (cast_expression "(uint **)(*(int *)(unaff_s6 + 0x18) + unaff_s5 * 4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(unaff_s6 + 0x18) + unaff_s5 * 4)" ( (binary_expression "*(int *)(unaff_s6 + 0x18) + unaff_s5 * 4" (pointer_expression "*(int *)(unaff_s6 + 0x18)" * (cast_expression "(int *)(unaff_s6 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s6 + 0x18)" ( (binary_expression "unaff_s6 + 0x18" identifier + number_literal) )))) + (binary_expression "unaff_s5 * 4" identifier * number_literal)) ))))) ;) (expression_statement "unaff_s8 = (int)puVar39 * 8;" (assignment_expression "unaff_s8 = (int)puVar39 * 8" identifier = (binary_expression "(int)puVar39 * 8" (cast_expression "(int)puVar39" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (expression_statement "iVar29 = *unaff_s4 + unaff_s8;" (assignment_expression "iVar29 = *unaff_s4 + unaff_s8" identifier = (binary_expression "*unaff_s4 + unaff_s8" (pointer_expression "*unaff_s4" * identifier) + identifier)) ;) (if_statement "if ((*(uint *)(iVar29 + 4) & 0x800) == 0) {\nLAB_0004d464:\n                iVar29 = FUN_00047bf8(param_1,iVar29,puVar36);\n                if (iVar29 != 0) {\n                  iVar29 = *(int *)(*param_2 + (int)unaff_s7);\n                  if (iVar29 != 0) {\n                    param_3 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc);\n                    iVar29 = 1;\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                }\n              }\n              else {\n                puVar35 = (undefined4 *)param_1[0x15];\n                uVar6 = param_2[3];\n                param_3 = puVar39;\n                param_4 = param_1;\n                local_80 = puVar36;\n                iVar29 = FUN_0004b150(*puVar35,puVar35 + 0x20);\n                if (iVar29 < 1) {\n                  if (iVar29 == 0) {\n                    iVar29 = *unaff_s4;\n                    goto LAB_0004d460;\n                  }\n                }\n                else if ((int)puVar36 + iVar29 <= (int)uVar6) {\n                  iVar30 = *(int *)(*param_2 + ((int)puVar36 + iVar29) * 4);\n                  if (iVar30 != 0) {\n                    param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                  iVar29 = *unaff_s4;\nLAB_0004d460:\n                  iVar29 = iVar29 + unaff_s8;\n                  goto LAB_0004d464;\n                }\nLAB_0004d4b4:\n                if (param_2[5] != 0) {\n                  local_80 = (uint *)((int)puVar36 + iVar29);\n                  param_3 = param_2 + 6;\n                  param_4 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                  local_7c = puVar39;\n                  local_78 = puVar36;\n                  iVar29 = (*pcVar7)(param_1,param_2 + 5);\n                  if (iVar29 != 0) goto LAB_0004d510;\n                }\n                puVar23 = puVar39;\n                iVar29 = (*pcVar8)(&local_38);\n                if (iVar29 == 0) {\n                  uVar6 = 0xc;\n                  goto LAB_0004d62c;\n                }\n              }" if (parenthesized_expression "((*(uint *)(iVar29 + 4) & 0x800) == 0)" ( (binary_expression "(*(uint *)(iVar29 + 4) & 0x800) == 0" (parenthesized_expression "(*(uint *)(iVar29 + 4) & 0x800)" ( (binary_expression "*(uint *)(iVar29 + 4) & 0x800" (pointer_expression "*(uint *)(iVar29 + 4)" * (cast_expression "(uint *)(iVar29 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar29 + 4)" ( (binary_expression "iVar29 + 4" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_0004d464:\n                iVar29 = FUN_00047bf8(param_1,iVar29,puVar36);\n                if (iVar29 != 0) {\n                  iVar29 = *(int *)(*param_2 + (int)unaff_s7);\n                  if (iVar29 != 0) {\n                    param_3 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc);\n                    iVar29 = 1;\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                }\n              }" { (labeled_statement "LAB_0004d464:\n                iVar29 = FUN_00047bf8(param_1,iVar29,puVar36);" statement_identifier : (expression_statement "iVar29 = FUN_00047bf8(param_1,iVar29,puVar36);" (assignment_expression "iVar29 = FUN_00047bf8(param_1,iVar29,puVar36)" identifier = (call_expression "FUN_00047bf8(param_1,iVar29,puVar36)" identifier (argument_list "(param_1,iVar29,puVar36)" ( identifier , identifier , identifier )))) ;)) (if_statement "if (iVar29 != 0) {\n                  iVar29 = *(int *)(*param_2 + (int)unaff_s7);\n                  if (iVar29 != 0) {\n                    param_3 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc);\n                    iVar29 = 1;\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                }" if (parenthesized_expression "(iVar29 != 0)" ( (binary_expression "iVar29 != 0" identifier != number_literal) )) (compound_statement "{\n                  iVar29 = *(int *)(*param_2 + (int)unaff_s7);\n                  if (iVar29 != 0) {\n                    param_3 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc);\n                    iVar29 = 1;\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                }" { (expression_statement "iVar29 = *(int *)(*param_2 + (int)unaff_s7);" (assignment_expression "iVar29 = *(int *)(*param_2 + (int)unaff_s7)" identifier = (pointer_expression "*(int *)(*param_2 + (int)unaff_s7)" * (cast_expression "(int *)(*param_2 + (int)unaff_s7)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_2 + (int)unaff_s7)" ( (binary_expression "*param_2 + (int)unaff_s7" (pointer_expression "*param_2" * identifier) + (cast_expression "(int)unaff_s7" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (if_statement "if (iVar29 != 0) {\n                    param_3 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc);\n                    iVar29 = 1;\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }" if (parenthesized_expression "(iVar29 != 0)" ( (binary_expression "iVar29 != 0" identifier != number_literal) )) (compound_statement "{\n                    param_3 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc);\n                    iVar29 = 1;\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }" { (expression_statement "param_3 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);" (assignment_expression "param_3 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4)" identifier = (pointer_expression "*(uint **)(unaff_s4[3] + (int)puVar39 * 4)" * (cast_expression "(uint **)(unaff_s4[3] + (int)puVar39 * 4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_s4[3] + (int)puVar39 * 4)" ( (binary_expression "unaff_s4[3] + (int)puVar39 * 4" (subscript_expression "unaff_s4[3]" identifier [ number_literal ]) + (binary_expression "(int)puVar39 * 4" (cast_expression "(int)puVar39" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))))) ;) (expression_statement "iVar30 = (*pcVar9)(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc);" (assignment_expression "iVar30 = (*pcVar9)(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc)" identifier = (call_expression "(*pcVar9)(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc)" (parenthesized_expression "(*pcVar9)" ( (pointer_expression "*pcVar9" * identifier) )) (argument_list "(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc)" ( (pointer_expression "*(undefined4 *)(iVar29 + 8)" * (cast_expression "(undefined4 *)(iVar29 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar29 + 8)" ( (binary_expression "iVar29 + 8" identifier + number_literal) )))) , (binary_expression "iVar29 + 0xc" identifier + number_literal) )))) ;) (expression_statement "iVar29 = 1;" (assignment_expression "iVar29 = 1" identifier = number_literal) ;) (if_statement "if (iVar30 != 0) goto LAB_0004d4b4;" if (parenthesized_expression "(iVar30 != 0)" ( (binary_expression "iVar30 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0004d4b4;" goto statement_identifier ;)) })) })) }) (else_clause "else {\n                puVar35 = (undefined4 *)param_1[0x15];\n                uVar6 = param_2[3];\n                param_3 = puVar39;\n                param_4 = param_1;\n                local_80 = puVar36;\n                iVar29 = FUN_0004b150(*puVar35,puVar35 + 0x20);\n                if (iVar29 < 1) {\n                  if (iVar29 == 0) {\n                    iVar29 = *unaff_s4;\n                    goto LAB_0004d460;\n                  }\n                }\n                else if ((int)puVar36 + iVar29 <= (int)uVar6) {\n                  iVar30 = *(int *)(*param_2 + ((int)puVar36 + iVar29) * 4);\n                  if (iVar30 != 0) {\n                    param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                  iVar29 = *unaff_s4;\nLAB_0004d460:\n                  iVar29 = iVar29 + unaff_s8;\n                  goto LAB_0004d464;\n                }\nLAB_0004d4b4:\n                if (param_2[5] != 0) {\n                  local_80 = (uint *)((int)puVar36 + iVar29);\n                  param_3 = param_2 + 6;\n                  param_4 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                  local_7c = puVar39;\n                  local_78 = puVar36;\n                  iVar29 = (*pcVar7)(param_1,param_2 + 5);\n                  if (iVar29 != 0) goto LAB_0004d510;\n                }\n                puVar23 = puVar39;\n                iVar29 = (*pcVar8)(&local_38);\n                if (iVar29 == 0) {\n                  uVar6 = 0xc;\n                  goto LAB_0004d62c;\n                }\n              }" else (compound_statement "{\n                puVar35 = (undefined4 *)param_1[0x15];\n                uVar6 = param_2[3];\n                param_3 = puVar39;\n                param_4 = param_1;\n                local_80 = puVar36;\n                iVar29 = FUN_0004b150(*puVar35,puVar35 + 0x20);\n                if (iVar29 < 1) {\n                  if (iVar29 == 0) {\n                    iVar29 = *unaff_s4;\n                    goto LAB_0004d460;\n                  }\n                }\n                else if ((int)puVar36 + iVar29 <= (int)uVar6) {\n                  iVar30 = *(int *)(*param_2 + ((int)puVar36 + iVar29) * 4);\n                  if (iVar30 != 0) {\n                    param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                  iVar29 = *unaff_s4;\nLAB_0004d460:\n                  iVar29 = iVar29 + unaff_s8;\n                  goto LAB_0004d464;\n                }\nLAB_0004d4b4:\n                if (param_2[5] != 0) {\n                  local_80 = (uint *)((int)puVar36 + iVar29);\n                  param_3 = param_2 + 6;\n                  param_4 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                  local_7c = puVar39;\n                  local_78 = puVar36;\n                  iVar29 = (*pcVar7)(param_1,param_2 + 5);\n                  if (iVar29 != 0) goto LAB_0004d510;\n                }\n                puVar23 = puVar39;\n                iVar29 = (*pcVar8)(&local_38);\n                if (iVar29 == 0) {\n                  uVar6 = 0xc;\n                  goto LAB_0004d62c;\n                }\n              }" { (expression_statement "puVar35 = (undefined4 *)param_1[0x15];" (assignment_expression "puVar35 = (undefined4 *)param_1[0x15]" identifier = (cast_expression "(undefined4 *)param_1[0x15]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x15]" identifier [ number_literal ]))) ;) (expression_statement "uVar6 = param_2[3];" (assignment_expression "uVar6 = param_2[3]" identifier = (subscript_expression "param_2[3]" identifier [ number_literal ])) ;) (expression_statement "param_3 = puVar39;" (assignment_expression "param_3 = puVar39" identifier = identifier) ;) (expression_statement "param_4 = param_1;" (assignment_expression "param_4 = param_1" identifier = identifier) ;) (expression_statement "local_80 = puVar36;" (assignment_expression "local_80 = puVar36" identifier = identifier) ;) (expression_statement "iVar29 = FUN_0004b150(*puVar35,puVar35 + 0x20);" (assignment_expression "iVar29 = FUN_0004b150(*puVar35,puVar35 + 0x20)" identifier = (call_expression "FUN_0004b150(*puVar35,puVar35 + 0x20)" identifier (argument_list "(*puVar35,puVar35 + 0x20)" ( (pointer_expression "*puVar35" * identifier) , (binary_expression "puVar35 + 0x20" identifier + number_literal) )))) ;) (if_statement "if (iVar29 < 1) {\n                  if (iVar29 == 0) {\n                    iVar29 = *unaff_s4;\n                    goto LAB_0004d460;\n                  }\n                }\n                else if ((int)puVar36 + iVar29 <= (int)uVar6) {\n                  iVar30 = *(int *)(*param_2 + ((int)puVar36 + iVar29) * 4);\n                  if (iVar30 != 0) {\n                    param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                  iVar29 = *unaff_s4;\nLAB_0004d460:\n                  iVar29 = iVar29 + unaff_s8;\n                  goto LAB_0004d464;\n                }" if (parenthesized_expression "(iVar29 < 1)" ( (binary_expression "iVar29 < 1" identifier < number_literal) )) (compound_statement "{\n                  if (iVar29 == 0) {\n                    iVar29 = *unaff_s4;\n                    goto LAB_0004d460;\n                  }\n                }" { (if_statement "if (iVar29 == 0) {\n                    iVar29 = *unaff_s4;\n                    goto LAB_0004d460;\n                  }" if (parenthesized_expression "(iVar29 == 0)" ( (binary_expression "iVar29 == 0" identifier == number_literal) )) (compound_statement "{\n                    iVar29 = *unaff_s4;\n                    goto LAB_0004d460;\n                  }" { (expression_statement "iVar29 = *unaff_s4;" (assignment_expression "iVar29 = *unaff_s4" identifier = (pointer_expression "*unaff_s4" * identifier)) ;) (goto_statement "goto LAB_0004d460;" goto statement_identifier ;) })) }) (else_clause "else if ((int)puVar36 + iVar29 <= (int)uVar6) {\n                  iVar30 = *(int *)(*param_2 + ((int)puVar36 + iVar29) * 4);\n                  if (iVar30 != 0) {\n                    param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                  iVar29 = *unaff_s4;\nLAB_0004d460:\n                  iVar29 = iVar29 + unaff_s8;\n                  goto LAB_0004d464;\n                }" else (if_statement "if ((int)puVar36 + iVar29 <= (int)uVar6) {\n                  iVar30 = *(int *)(*param_2 + ((int)puVar36 + iVar29) * 4);\n                  if (iVar30 != 0) {\n                    param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                  iVar29 = *unaff_s4;\nLAB_0004d460:\n                  iVar29 = iVar29 + unaff_s8;\n                  goto LAB_0004d464;\n                }" if (parenthesized_expression "((int)puVar36 + iVar29 <= (int)uVar6)" ( (binary_expression "(int)puVar36 + iVar29 <= (int)uVar6" (binary_expression "(int)puVar36 + iVar29" (cast_expression "(int)puVar36" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) <= (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  iVar30 = *(int *)(*param_2 + ((int)puVar36 + iVar29) * 4);\n                  if (iVar30 != 0) {\n                    param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                  iVar29 = *unaff_s4;\nLAB_0004d460:\n                  iVar29 = iVar29 + unaff_s8;\n                  goto LAB_0004d464;\n                }" { (expression_statement "iVar30 = *(int *)(*param_2 + ((int)puVar36 + iVar29) * 4);" (assignment_expression "iVar30 = *(int *)(*param_2 + ((int)puVar36 + iVar29) * 4)" identifier = (pointer_expression "*(int *)(*param_2 + ((int)puVar36 + iVar29) * 4)" * (cast_expression "(int *)(*param_2 + ((int)puVar36 + iVar29) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_2 + ((int)puVar36 + iVar29) * 4)" ( (binary_expression "*param_2 + ((int)puVar36 + iVar29) * 4" (pointer_expression "*param_2" * identifier) + (binary_expression "((int)puVar36 + iVar29) * 4" (parenthesized_expression "((int)puVar36 + iVar29)" ( (binary_expression "(int)puVar36 + iVar29" (cast_expression "(int)puVar36" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )) * number_literal)) ))))) ;) (if_statement "if (iVar30 != 0) {\n                    param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }" if (parenthesized_expression "(iVar30 != 0)" ( (binary_expression "iVar30 != 0" identifier != number_literal) )) (compound_statement "{\n                    param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }" { (expression_statement "param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);" (assignment_expression "param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4)" identifier = (pointer_expression "*(uint **)(puVar35[3] + (int)puVar39 * 4)" * (cast_expression "(uint **)(puVar35[3] + (int)puVar39 * 4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35[3] + (int)puVar39 * 4)" ( (binary_expression "puVar35[3] + (int)puVar39 * 4" (subscript_expression "puVar35[3]" identifier [ number_literal ]) + (binary_expression "(int)puVar39 * 4" (cast_expression "(int)puVar39" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))))) ;) (expression_statement "iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);" (assignment_expression "iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc)" identifier = (call_expression "(*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc)" (parenthesized_expression "(*pcVar9)" ( (pointer_expression "*pcVar9" * identifier) )) (argument_list "(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc)" ( (pointer_expression "*(undefined4 *)(iVar30 + 8)" * (cast_expression "(undefined4 *)(iVar30 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar30 + 8)" ( (binary_expression "iVar30 + 8" identifier + number_literal) )))) , (binary_expression "iVar30 + 0xc" identifier + number_literal) )))) ;) (if_statement "if (iVar30 != 0) goto LAB_0004d4b4;" if (parenthesized_expression "(iVar30 != 0)" ( (binary_expression "iVar30 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0004d4b4;" goto statement_identifier ;)) })) (expression_statement "iVar29 = *unaff_s4;" (assignment_expression "iVar29 = *unaff_s4" identifier = (pointer_expression "*unaff_s4" * identifier)) ;) (labeled_statement "LAB_0004d460:\n                  iVar29 = iVar29 + unaff_s8;" statement_identifier : (expression_statement "iVar29 = iVar29 + unaff_s8;" (assignment_expression "iVar29 = iVar29 + unaff_s8" identifier = (binary_expression "iVar29 + unaff_s8" identifier + identifier)) ;)) (goto_statement "goto LAB_0004d464;" goto statement_identifier ;) })))) (labeled_statement "LAB_0004d4b4:\n                if (param_2[5] != 0) {\n                  local_80 = (uint *)((int)puVar36 + iVar29);\n                  param_3 = param_2 + 6;\n                  param_4 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                  local_7c = puVar39;\n                  local_78 = puVar36;\n                  iVar29 = (*pcVar7)(param_1,param_2 + 5);\n                  if (iVar29 != 0) goto LAB_0004d510;\n                }" statement_identifier : (if_statement "if (param_2[5] != 0) {\n                  local_80 = (uint *)((int)puVar36 + iVar29);\n                  param_3 = param_2 + 6;\n                  param_4 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                  local_7c = puVar39;\n                  local_78 = puVar36;\n                  iVar29 = (*pcVar7)(param_1,param_2 + 5);\n                  if (iVar29 != 0) goto LAB_0004d510;\n                }" if (parenthesized_expression "(param_2[5] != 0)" ( (binary_expression "param_2[5] != 0" (subscript_expression "param_2[5]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n                  local_80 = (uint *)((int)puVar36 + iVar29);\n                  param_3 = param_2 + 6;\n                  param_4 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                  local_7c = puVar39;\n                  local_78 = puVar36;\n                  iVar29 = (*pcVar7)(param_1,param_2 + 5);\n                  if (iVar29 != 0) goto LAB_0004d510;\n                }" { (expression_statement "local_80 = (uint *)((int)puVar36 + iVar29);" (assignment_expression "local_80 = (uint *)((int)puVar36 + iVar29)" identifier = (cast_expression "(uint *)((int)puVar36 + iVar29)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar36 + iVar29)" ( (binary_expression "(int)puVar36 + iVar29" (cast_expression "(int)puVar36" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "param_3 = param_2 + 6;" (assignment_expression "param_3 = param_2 + 6" identifier = (binary_expression "param_2 + 6" identifier + number_literal)) ;) (expression_statement "param_4 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);" (assignment_expression "param_4 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4)" identifier = (pointer_expression "*(uint **)(unaff_s4[3] + (int)puVar39 * 4)" * (cast_expression "(uint **)(unaff_s4[3] + (int)puVar39 * 4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_s4[3] + (int)puVar39 * 4)" ( (binary_expression "unaff_s4[3] + (int)puVar39 * 4" (subscript_expression "unaff_s4[3]" identifier [ number_literal ]) + (binary_expression "(int)puVar39 * 4" (cast_expression "(int)puVar39" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))))) ;) (expression_statement "local_7c = puVar39;" (assignment_expression "local_7c = puVar39" identifier = identifier) ;) (expression_statement "local_78 = puVar36;" (assignment_expression "local_78 = puVar36" identifier = identifier) ;) (expression_statement "iVar29 = (*pcVar7)(param_1,param_2 + 5);" (assignment_expression "iVar29 = (*pcVar7)(param_1,param_2 + 5)" identifier = (call_expression "(*pcVar7)(param_1,param_2 + 5)" (parenthesized_expression "(*pcVar7)" ( (pointer_expression "*pcVar7" * identifier) )) (argument_list "(param_1,param_2 + 5)" ( identifier , (binary_expression "param_2 + 5" identifier + number_literal) )))) ;) (if_statement "if (iVar29 != 0) goto LAB_0004d510;" if (parenthesized_expression "(iVar29 != 0)" ( (binary_expression "iVar29 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0004d510;" goto statement_identifier ;)) }))) (expression_statement "puVar23 = puVar39;" (assignment_expression "puVar23 = puVar39" identifier = identifier) ;) (expression_statement "iVar29 = (*pcVar8)(&local_38);" (assignment_expression "iVar29 = (*pcVar8)(&local_38)" identifier = (call_expression "(*pcVar8)(&local_38)" (parenthesized_expression "(*pcVar8)" ( (pointer_expression "*pcVar8" * identifier) )) (argument_list "(&local_38)" ( (pointer_expression "&local_38" & identifier) )))) ;) (if_statement "if (iVar29 == 0) {\n                  uVar6 = 0xc;\n                  goto LAB_0004d62c;\n                }" if (parenthesized_expression "(iVar29 == 0)" ( (binary_expression "iVar29 == 0" identifier == number_literal) )) (compound_statement "{\n                  uVar6 = 0xc;\n                  goto LAB_0004d62c;\n                }" { (expression_statement "uVar6 = 0xc;" (assignment_expression "uVar6 = 0xc" identifier = number_literal) ;) (goto_statement "goto LAB_0004d62c;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_0004d510:\n              unaff_s5 = unaff_s5 + 1;" statement_identifier : (expression_statement "unaff_s5 = unaff_s5 + 1;" (assignment_expression "unaff_s5 = unaff_s5 + 1" identifier = (binary_expression "unaff_s5 + 1" identifier + number_literal)) ;)) (expression_statement "param_4 = &local_38;" (assignment_expression "param_4 = &local_38" identifier = (pointer_expression "&local_38" & identifier)) ;) }) while (parenthesized_expression "(unaff_s5 < *(int *)(unaff_s6 + 0x14))" ( (binary_expression "unaff_s5 < *(int *)(unaff_s6 + 0x14)" identifier < (pointer_expression "*(int *)(unaff_s6 + 0x14)" * (cast_expression "(int *)(unaff_s6 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s6 + 0x14)" ( (binary_expression "unaff_s6 + 0x14" identifier + number_literal) ))))) )) ;) })) (expression_statement "puVar23 = param_2;" (assignment_expression "puVar23 = param_2" identifier = identifier) ;) (expression_statement "param_3 = puVar36;" (assignment_expression "param_3 = puVar36" identifier = identifier) ;) (expression_statement "param_4 = &local_38;" (assignment_expression "param_4 = &local_38" identifier = (pointer_expression "&local_38" & identifier)) ;) (expression_statement "uVar6 = (*pcVar45)(param_1);" (assignment_expression "uVar6 = (*pcVar45)(param_1)" identifier = (call_expression "(*pcVar45)(param_1)" (parenthesized_expression "(*pcVar45)" ( (pointer_expression "*pcVar45" * identifier) )) (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (uVar6 != 0) goto LAB_0004d62c;" if (parenthesized_expression "(uVar6 != 0)" ( (binary_expression "uVar6 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0004d62c;" goto statement_identifier ;)) }) while (parenthesized_expression "(puVar36 != (uint *)0x0)" ( (binary_expression "puVar36 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) })) (labeled_statement "LAB_0004d62c:\n    (*(code *)PTR_free_00075bfc)(local_30);" statement_identifier : (expression_statement "(*(code *)PTR_free_00075bfc)(local_30);" (call_expression "(*(code *)PTR_free_00075bfc)(local_30)" (parenthesized_expression "(*(code *)PTR_free_00075bfc)" ( (pointer_expression "*(code *)PTR_free_00075bfc" * (cast_expression "(code *)PTR_free_00075bfc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_30)" ( identifier ))) ;)) }))) (labeled_statement "LAB_0004d644:\n  if (local_2c == *(uint ***)puVar46) {\n    return uVar6;\n  }" statement_identifier : (if_statement "if (local_2c == *(uint ***)puVar46) {\n    return uVar6;\n  }" if (parenthesized_expression "(local_2c == *(uint ***)puVar46)" ( (binary_expression "local_2c == *(uint ***)puVar46" identifier == (pointer_expression "*(uint ***)puVar46" * (cast_expression "(uint ***)puVar46" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier))) )) (compound_statement "{\n    return uVar6;\n  }" { (return_statement "return uVar6;" return identifier ;) }))) (expression_statement "pcVar45 = FUN_0004d6dc;" (assignment_expression "pcVar45 = FUN_0004d6dc" identifier = identifier) ;) (expression_statement "ppuVar24 = local_2c;" (assignment_expression "ppuVar24 = local_2c" identifier = identifier) ;) (expression_statement "puVar46 = PTR___stack_chk_fail_00075ba8;" (assignment_expression "puVar46 = PTR___stack_chk_fail_00075ba8" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_00075ba8)();" (call_expression "(*(code *)PTR___stack_chk_fail_00075ba8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00075ba8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00075ba8" * (cast_expression "(code *)PTR___stack_chk_fail_00075ba8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puVar32 = local_7c;" (assignment_expression "puVar32 = local_7c" identifier = identifier) ;) (expression_statement "puVar38 = local_80;" (assignment_expression "puVar38 = local_80" identifier = identifier) ;) (expression_statement "piVar10 = *(int **)(puVar46 + 0x2850c);" (assignment_expression "piVar10 = *(int **)(puVar46 + 0x2850c)" identifier = (pointer_expression "*(int **)(puVar46 + 0x2850c)" * (cast_expression "(int **)(puVar46 + 0x2850c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar46 + 0x2850c)" ( (binary_expression "puVar46 + 0x2850c" identifier + number_literal) ))))) ;) (expression_statement "iStack_bc = *piVar10;" (assignment_expression "iStack_bc = *piVar10" identifier = (pointer_expression "*piVar10" * identifier)) ;) (expression_statement "puVar43 = *ppuVar24;" (assignment_expression "puVar43 = *ppuVar24" identifier = (pointer_expression "*ppuVar24" * identifier)) ;) (expression_statement "puStack_b8 = puVar36;" (assignment_expression "puStack_b8 = puVar36" identifier = identifier) ;) (expression_statement "puStack_b4 = param_2;" (assignment_expression "puStack_b4 = param_2" identifier = identifier) ;) (expression_statement "puStack_b0 = param_1;" (assignment_expression "puStack_b0 = param_1" identifier = identifier) ;) (expression_statement "puStack_ac = puVar39;" (assignment_expression "puStack_ac = puVar39" identifier = identifier) ;) (expression_statement "piStack_a8 = unaff_s4;" (assignment_expression "piStack_a8 = unaff_s4" identifier = identifier) ;) (expression_statement "iStack_a4 = unaff_s5;" (assignment_expression "iStack_a4 = unaff_s5" identifier = identifier) ;) (expression_statement "iStack_a0 = unaff_s6;" (assignment_expression "iStack_a0 = unaff_s6" identifier = identifier) ;) (expression_statement "puStack_9c = unaff_s7;" (assignment_expression "puStack_9c = unaff_s7" identifier = identifier) ;) (expression_statement "iStack_98 = unaff_s8;" (assignment_expression "iStack_98 = unaff_s8" identifier = identifier) ;) (expression_statement "pcStack_94 = pcVar45;" (assignment_expression "pcStack_94 = pcVar45" identifier = identifier) ;) (expression_statement "puStack_88 = param_3;" (assignment_expression "puStack_88 = param_3" identifier = identifier) ;) (expression_statement "(**(code **)(puVar46 + 0x283f8))(&puStack_144,0,0x88);" (call_expression "(**(code **)(puVar46 + 0x283f8))(&puStack_144,0,0x88)" (parenthesized_expression "(**(code **)(puVar46 + 0x283f8))" ( (pointer_expression "**(code **)(puVar46 + 0x283f8)" * (pointer_expression "*(code **)(puVar46 + 0x283f8)" * (cast_expression "(code **)(puVar46 + 0x283f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar46 + 0x283f8)" ( (binary_expression "puVar46 + 0x283f8" identifier + number_literal) ))))) )) (argument_list "(&puStack_144,0,0x88)" ( (pointer_expression "&puStack_144" & identifier) , number_literal , number_literal ))) ;) (expression_statement "puStack_1e0 = ppuVar24[4];" (assignment_expression "puStack_1e0 = ppuVar24[4]" identifier = (subscript_expression "ppuVar24[4]" identifier [ number_literal ])) ;) (if_statement "if (puStack_1e0 != (uint *)0x0) {\n    if (((*(byte *)(ppuVar24 + 7) & 0x10) == 0) || (param_4 == puVar38)) {\n      puStack_1e0 = (uint *)0x0;\n    }\n    else if ((char)*(byte *)(ppuVar24 + 7) < '\0') {\n      puStack_1e0 = (uint *)0x0;\n    }\n  }" if (parenthesized_expression "(puStack_1e0 != (uint *)0x0)" ( (binary_expression "puStack_1e0 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (((*(byte *)(ppuVar24 + 7) & 0x10) == 0) || (param_4 == puVar38)) {\n      puStack_1e0 = (uint *)0x0;\n    }\n    else if ((char)*(byte *)(ppuVar24 + 7) < '\0') {\n      puStack_1e0 = (uint *)0x0;\n    }\n  }" { (if_statement "if (((*(byte *)(ppuVar24 + 7) & 0x10) == 0) || (param_4 == puVar38)) {\n      puStack_1e0 = (uint *)0x0;\n    }\n    else if ((char)*(byte *)(ppuVar24 + 7) < '\0') {\n      puStack_1e0 = (uint *)0x0;\n    }" if (parenthesized_expression "(((*(byte *)(ppuVar24 + 7) & 0x10) == 0) || (param_4 == puVar38))" ( (binary_expression "((*(byte *)(ppuVar24 + 7) & 0x10) == 0) || (param_4 == puVar38)" (parenthesized_expression "((*(byte *)(ppuVar24 + 7) & 0x10) == 0)" ( (binary_expression "(*(byte *)(ppuVar24 + 7) & 0x10) == 0" (parenthesized_expression "(*(byte *)(ppuVar24 + 7) & 0x10)" ( (binary_expression "*(byte *)(ppuVar24 + 7) & 0x10" (pointer_expression "*(byte *)(ppuVar24 + 7)" * (cast_expression "(byte *)(ppuVar24 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppuVar24 + 7)" ( (binary_expression "ppuVar24 + 7" identifier + number_literal) )))) & number_literal) )) == number_literal) )) || (parenthesized_expression "(param_4 == puVar38)" ( (binary_expression "param_4 == puVar38" identifier == identifier) ))) )) (compound_statement "{\n      puStack_1e0 = (uint *)0x0;\n    }" { (expression_statement "puStack_1e0 = (uint *)0x0;" (assignment_expression "puStack_1e0 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else if ((char)*(byte *)(ppuVar24 + 7) < '\0') {\n      puStack_1e0 = (uint *)0x0;\n    }" else (if_statement "if ((char)*(byte *)(ppuVar24 + 7) < '\0') {\n      puStack_1e0 = (uint *)0x0;\n    }" if (parenthesized_expression "((char)*(byte *)(ppuVar24 + 7) < '\0')" ( (binary_expression "(char)*(byte *)(ppuVar24 + 7) < '\0'" (cast_expression "(char)*(byte *)(ppuVar24 + 7)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)(ppuVar24 + 7)" * (cast_expression "(byte *)(ppuVar24 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppuVar24 + 7)" ( (binary_expression "ppuVar24 + 7" identifier + number_literal) ))))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      puStack_1e0 = (uint *)0x0;\n    }" { (expression_statement "puStack_1e0 = (uint *)0x0;" (assignment_expression "puStack_1e0 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })))) })) (expression_statement "puVar36 = ppuVar24[6];" (assignment_expression "puVar36 = ppuVar24[6]" identifier = (subscript_expression "ppuVar24[6]" identifier [ number_literal ])) ;) (if_statement "if (puVar36 < local_78) {\n    iStack_180 = ((int)local_78 + -1) - (int)puVar36;\n    local_78 = (uint *)((int)local_78 + ((int)puVar36 - ((int)local_78 + -1)));\n    puVar36 = ppuVar24[2];\n  }\n  else {\n    puVar36 = ppuVar24[2];\n    iStack_180 = 0;\n  }" if (parenthesized_expression "(puVar36 < local_78)" ( (binary_expression "puVar36 < local_78" identifier < identifier) )) (compound_statement "{\n    iStack_180 = ((int)local_78 + -1) - (int)puVar36;\n    local_78 = (uint *)((int)local_78 + ((int)puVar36 - ((int)local_78 + -1)));\n    puVar36 = ppuVar24[2];\n  }" { (expression_statement "iStack_180 = ((int)local_78 + -1) - (int)puVar36;" (assignment_expression "iStack_180 = ((int)local_78 + -1) - (int)puVar36" identifier = (binary_expression "((int)local_78 + -1) - (int)puVar36" (parenthesized_expression "((int)local_78 + -1)" ( (binary_expression "(int)local_78 + -1" (cast_expression "(int)local_78" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) - (cast_expression "(int)puVar36" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "local_78 = (uint *)((int)local_78 + ((int)puVar36 - ((int)local_78 + -1)));" (assignment_expression "local_78 = (uint *)((int)local_78 + ((int)puVar36 - ((int)local_78 + -1)))" identifier = (cast_expression "(uint *)((int)local_78 + ((int)puVar36 - ((int)local_78 + -1)))" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_78 + ((int)puVar36 - ((int)local_78 + -1)))" ( (binary_expression "(int)local_78 + ((int)puVar36 - ((int)local_78 + -1))" (cast_expression "(int)local_78" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "((int)puVar36 - ((int)local_78 + -1))" ( (binary_expression "(int)puVar36 - ((int)local_78 + -1)" (cast_expression "(int)puVar36" ( (type_descriptor "int" primitive_type) ) identifier) - (parenthesized_expression "((int)local_78 + -1)" ( (binary_expression "(int)local_78 + -1" (cast_expression "(int)local_78" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) ))) )))) ;) (expression_statement "puVar36 = ppuVar24[2];" (assignment_expression "puVar36 = ppuVar24[2]" identifier = (subscript_expression "ppuVar24[2]" identifier [ number_literal ])) ;) }) (else_clause "else {\n    puVar36 = ppuVar24[2];\n    iStack_180 = 0;\n  }" else (compound_statement "{\n    puVar36 = ppuVar24[2];\n    iStack_180 = 0;\n  }" { (expression_statement "puVar36 = ppuVar24[2];" (assignment_expression "puVar36 = ppuVar24[2]" identifier = (subscript_expression "ppuVar24[2]" identifier [ number_literal ])) ;) (expression_statement "iStack_180 = 0;" (assignment_expression "iStack_180 = 0" identifier = number_literal) ;) }))) (expression_statement "puStack_f0 = puVar43;" (assignment_expression "puStack_f0 = puVar43" identifier = identifier) ;) (if_statement "if ((((puVar36 == (uint *)0x0) || (puVar43[9] == 0)) || (puVar43[10] == 0)) ||\n     ((puVar43[0xb] == 0 || (puVar43[0xc] == 0)))) {\nLAB_0004db54:\n    uStack_1e4 = 1;\n    goto LAB_0004db58;\n  }" if (parenthesized_expression "((((puVar36 == (uint *)0x0) || (puVar43[9] == 0)) || (puVar43[10] == 0)) ||\n     ((puVar43[0xb] == 0 || (puVar43[0xc] == 0))))" ( (binary_expression "(((puVar36 == (uint *)0x0) || (puVar43[9] == 0)) || (puVar43[10] == 0)) ||\n     ((puVar43[0xb] == 0 || (puVar43[0xc] == 0)))" (parenthesized_expression "(((puVar36 == (uint *)0x0) || (puVar43[9] == 0)) || (puVar43[10] == 0))" ( (binary_expression "((puVar36 == (uint *)0x0) || (puVar43[9] == 0)) || (puVar43[10] == 0)" (parenthesized_expression "((puVar36 == (uint *)0x0) || (puVar43[9] == 0))" ( (binary_expression "(puVar36 == (uint *)0x0) || (puVar43[9] == 0)" (parenthesized_expression "(puVar36 == (uint *)0x0)" ( (binary_expression "puVar36 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(puVar43[9] == 0)" ( (binary_expression "puVar43[9] == 0" (subscript_expression "puVar43[9]" identifier [ number_literal ]) == number_literal) ))) )) || (parenthesized_expression "(puVar43[10] == 0)" ( (binary_expression "puVar43[10] == 0" (subscript_expression "puVar43[10]" identifier [ number_literal ]) == number_literal) ))) )) || (parenthesized_expression "((puVar43[0xb] == 0 || (puVar43[0xc] == 0)))" ( (parenthesized_expression "(puVar43[0xb] == 0 || (puVar43[0xc] == 0))" ( (binary_expression "puVar43[0xb] == 0 || (puVar43[0xc] == 0)" (binary_expression "puVar43[0xb] == 0" (subscript_expression "puVar43[0xb]" identifier [ number_literal ]) == number_literal) || (parenthesized_expression "(puVar43[0xc] == 0)" ( (binary_expression "puVar43[0xc] == 0" (subscript_expression "puVar43[0xc]" identifier [ number_literal ]) == number_literal) ))) )) ))) )) (compound_statement "{\nLAB_0004db54:\n    uStack_1e4 = 1;\n    goto LAB_0004db58;\n  }" { (labeled_statement "LAB_0004db54:\n    uStack_1e4 = 1;" statement_identifier : (expression_statement "uStack_1e4 = 1;" (assignment_expression "uStack_1e4 = 1" identifier = number_literal) ;)) (goto_statement "goto LAB_0004db58;" goto statement_identifier ;) })) (if_statement "if (((*(int *)(puVar43[9] + 8) == 0) && (*(int *)(puVar43[10] + 8) == 0)) &&\n     ((*(int *)(puVar43[0xb] + 8) == 0 || (((uint)ppuVar24[7] & 0x1000000) == 0)))) {\n    if (param_4 == (uint *)0x0) {\n      puVar38 = (uint *)0x0;\n    }\n    else {\n      if (puVar38 != (uint *)0x0) goto LAB_0004db54;\n      param_4 = (uint *)0x0;\n    }\n  }" if (parenthesized_expression "(((*(int *)(puVar43[9] + 8) == 0) && (*(int *)(puVar43[10] + 8) == 0)) &&\n     ((*(int *)(puVar43[0xb] + 8) == 0 || (((uint)ppuVar24[7] & 0x1000000) == 0))))" ( (binary_expression "((*(int *)(puVar43[9] + 8) == 0) && (*(int *)(puVar43[10] + 8) == 0)) &&\n     ((*(int *)(puVar43[0xb] + 8) == 0 || (((uint)ppuVar24[7] & 0x1000000) == 0)))" (parenthesized_expression "((*(int *)(puVar43[9] + 8) == 0) && (*(int *)(puVar43[10] + 8) == 0))" ( (binary_expression "(*(int *)(puVar43[9] + 8) == 0) && (*(int *)(puVar43[10] + 8) == 0)" (parenthesized_expression "(*(int *)(puVar43[9] + 8) == 0)" ( (binary_expression "*(int *)(puVar43[9] + 8) == 0" (pointer_expression "*(int *)(puVar43[9] + 8)" * (cast_expression "(int *)(puVar43[9] + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar43[9] + 8)" ( (binary_expression "puVar43[9] + 8" (subscript_expression "puVar43[9]" identifier [ number_literal ]) + number_literal) )))) == number_literal) )) && (parenthesized_expression "(*(int *)(puVar43[10] + 8) == 0)" ( (binary_expression "*(int *)(puVar43[10] + 8) == 0" (pointer_expression "*(int *)(puVar43[10] + 8)" * (cast_expression "(int *)(puVar43[10] + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar43[10] + 8)" ( (binary_expression "puVar43[10] + 8" (subscript_expression "puVar43[10]" identifier [ number_literal ]) + number_literal) )))) == number_literal) ))) )) && (parenthesized_expression "((*(int *)(puVar43[0xb] + 8) == 0 || (((uint)ppuVar24[7] & 0x1000000) == 0)))" ( (parenthesized_expression "(*(int *)(puVar43[0xb] + 8) == 0 || (((uint)ppuVar24[7] & 0x1000000) == 0))" ( (binary_expression "*(int *)(puVar43[0xb] + 8) == 0 || (((uint)ppuVar24[7] & 0x1000000) == 0)" (binary_expression "*(int *)(puVar43[0xb] + 8) == 0" (pointer_expression "*(int *)(puVar43[0xb] + 8)" * (cast_expression "(int *)(puVar43[0xb] + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar43[0xb] + 8)" ( (binary_expression "puVar43[0xb] + 8" (subscript_expression "puVar43[0xb]" identifier [ number_literal ]) + number_literal) )))) == number_literal) || (parenthesized_expression "(((uint)ppuVar24[7] & 0x1000000) == 0)" ( (binary_expression "((uint)ppuVar24[7] & 0x1000000) == 0" (parenthesized_expression "((uint)ppuVar24[7] & 0x1000000)" ( (binary_expression "(uint)ppuVar24[7] & 0x1000000" (cast_expression "(uint)ppuVar24[7]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppuVar24[7]" identifier [ number_literal ])) & number_literal) )) == number_literal) ))) )) ))) )) (compound_statement "{\n    if (param_4 == (uint *)0x0) {\n      puVar38 = (uint *)0x0;\n    }\n    else {\n      if (puVar38 != (uint *)0x0) goto LAB_0004db54;\n      param_4 = (uint *)0x0;\n    }\n  }" { (if_statement "if (param_4 == (uint *)0x0) {\n      puVar38 = (uint *)0x0;\n    }\n    else {\n      if (puVar38 != (uint *)0x0) goto LAB_0004db54;\n      param_4 = (uint *)0x0;\n    }" if (parenthesized_expression "(param_4 == (uint *)0x0)" ( (binary_expression "param_4 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      puVar38 = (uint *)0x0;\n    }" { (expression_statement "puVar38 = (uint *)0x0;" (assignment_expression "puVar38 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n      if (puVar38 != (uint *)0x0) goto LAB_0004db54;\n      param_4 = (uint *)0x0;\n    }" else (compound_statement "{\n      if (puVar38 != (uint *)0x0) goto LAB_0004db54;\n      param_4 = (uint *)0x0;\n    }" { (if_statement "if (puVar38 != (uint *)0x0) goto LAB_0004db54;" if (parenthesized_expression "(puVar38 != (uint *)0x0)" ( (binary_expression "puVar38 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004db54;" goto statement_identifier ;)) (expression_statement "param_4 = (uint *)0x0;" (assignment_expression "param_4 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) })) (if_statement "if (local_78 == (uint *)0x0) {\n    bVar22 = puVar43[0x13] != 0;\n  }\n  else {\n    bVar22 = true;\n  }" if (parenthesized_expression "(local_78 == (uint *)0x0)" ( (binary_expression "local_78 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    bVar22 = puVar43[0x13] != 0;\n  }" { (expression_statement "bVar22 = puVar43[0x13] != 0;" (assignment_expression "bVar22 = puVar43[0x13] != 0" identifier = (binary_expression "puVar43[0x13] != 0" (subscript_expression "puVar43[0x13]" identifier [ number_literal ]) != number_literal)) ;) }) (else_clause "else {\n    bVar22 = true;\n  }" else (compound_statement "{\n    bVar22 = true;\n  }" { (expression_statement "bVar22 = true;" (assignment_expression "bVar22 = true" identifier = true) ;) }))) (expression_statement "uStack_f4 = puVar43[0x17];" (assignment_expression "uStack_f4 = puVar43[0x17]" identifier = (subscript_expression "puVar43[0x17]" identifier [ number_literal ])) ;) (expression_statement "puVar36 = ppuVar24[5];" (assignment_expression "puVar36 = ppuVar24[5]" identifier = (subscript_expression "ppuVar24[5]" identifier [ number_literal ])) ;) (expression_statement "uVar6 = puVar43[2] + 1;" (assignment_expression "uVar6 = puVar43[2] + 1" identifier = (binary_expression "puVar43[2] + 1" (subscript_expression "puVar43[2]" identifier [ number_literal ]) + number_literal)) ;) (if_statement "if ((int)(puVar43[2] + 1) < (int)uStack_f4) {\n    uVar6 = uStack_f4;\n  }" if (parenthesized_expression "((int)(puVar43[2] + 1) < (int)uStack_f4)" ( (binary_expression "(int)(puVar43[2] + 1) < (int)uStack_f4" (cast_expression "(int)(puVar43[2] + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar43[2] + 1)" ( (binary_expression "puVar43[2] + 1" (subscript_expression "puVar43[2]" identifier [ number_literal ]) + number_literal) ))) < (cast_expression "(int)uStack_f4" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    uVar6 = uStack_f4;\n  }" { (expression_statement "uVar6 = uStack_f4;" (assignment_expression "uVar6 = uStack_f4" identifier = identifier) ;) })) (expression_statement "bStack_fc = (byte)((uint)((int)ppuVar24[3] << 9) >> 0x18);" (assignment_expression "bStack_fc = (byte)((uint)((int)ppuVar24[3] << 9) >> 0x18)" identifier = (call_expression "(byte)((uint)((int)ppuVar24[3] << 9) >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)((int)ppuVar24[3] << 9) >> 0x18)" ( (binary_expression "(uint)((int)ppuVar24[3] << 9) >> 0x18" (call_expression "(uint)((int)ppuVar24[3] << 9)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)ppuVar24[3] << 9)" ( (binary_expression "(int)ppuVar24[3] << 9" (cast_expression "(int)ppuVar24[3]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppuVar24[3]" identifier [ number_literal ])) << number_literal) ))) >> number_literal) )))) ;) (expression_statement "bStack_f9 = 1;" (assignment_expression "bStack_f9 = 1" identifier = number_literal) ;) (if_statement "if (puVar36 == (uint *)0x0) {\n    bStack_f9 = bStack_fc >> 7;\n  }" if (parenthesized_expression "(puVar36 == (uint *)0x0)" ( (binary_expression "puVar36 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    bStack_f9 = bStack_fc >> 7;\n  }" { (expression_statement "bStack_f9 = bStack_fc >> 7;" (assignment_expression "bStack_f9 = bStack_fc >> 7" identifier = (binary_expression "bStack_fc >> 7" identifier >> number_literal)) ;) })) (expression_statement "uVar34 = (int)puStack_88 + 1U;" (assignment_expression "uVar34 = (int)puStack_88 + 1U" identifier = (binary_expression "(int)puStack_88 + 1U" (cast_expression "(int)puStack_88" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (if_statement "if ((int)uVar6 <= (int)((int)puStack_88 + 1U)) {\n    uVar34 = uVar6;\n  }" if (parenthesized_expression "((int)uVar6 <= (int)((int)puStack_88 + 1U))" ( (binary_expression "(int)uVar6 <= (int)((int)puStack_88 + 1U)" (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)((int)puStack_88 + 1U)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)puStack_88 + 1U)" ( (binary_expression "(int)puStack_88 + 1U" (cast_expression "(int)puStack_88" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )) (compound_statement "{\n    uVar34 = uVar6;\n  }" { (expression_statement "uVar34 = uVar6;" (assignment_expression "uVar34 = uVar6" identifier = identifier) ;) })) (expression_statement "bStack_fc = bStack_fc >> 7;" (assignment_expression "bStack_fc = bStack_fc >> 7" identifier = (binary_expression "bStack_fc >> 7" identifier >> number_literal)) ;) (expression_statement "bStack_fb = (byte)((puVar43[0x16] << 2) >> 0x1f);" (assignment_expression "bStack_fb = (byte)((puVar43[0x16] << 2) >> 0x1f)" identifier = (call_expression "(byte)((puVar43[0x16] << 2) >> 0x1f)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((puVar43[0x16] << 2) >> 0x1f)" ( (binary_expression "(puVar43[0x16] << 2) >> 0x1f" (parenthesized_expression "(puVar43[0x16] << 2)" ( (binary_expression "puVar43[0x16] << 2" (subscript_expression "puVar43[0x16]" identifier [ number_literal ]) << number_literal) )) >> number_literal) )))) ;) (expression_statement "bStack_fa = (byte)((puVar43[0x16] << 3) >> 0x1f);" (assignment_expression "bStack_fa = (byte)((puVar43[0x16] << 3) >> 0x1f)" identifier = (call_expression "(byte)((puVar43[0x16] << 3) >> 0x1f)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((puVar43[0x16] << 3) >> 0x1f)" ( (binary_expression "(puVar43[0x16] << 3) >> 0x1f" (parenthesized_expression "(puVar43[0x16] << 3)" ( (binary_expression "puVar43[0x16] << 3" (subscript_expression "puVar43[0x16]" identifier [ number_literal ]) << number_literal) )) >> number_literal) )))) ;) (expression_statement "puStack_114 = puStack_88;" (assignment_expression "puStack_114 = puStack_88" identifier = identifier) ;) (expression_statement "puStack_118 = puStack_88;" (assignment_expression "puStack_118 = puStack_88" identifier = identifier) ;) (expression_statement "puStack_10c = puStack_88;" (assignment_expression "puStack_10c = puStack_88" identifier = identifier) ;) (expression_statement "puStack_110 = puStack_88;" (assignment_expression "puStack_110 = puStack_88" identifier = identifier) ;) (expression_statement "puStack_144 = puVar23;" (assignment_expression "puStack_144 = puVar23" identifier = identifier) ;) (expression_statement "puStack_104 = puVar36;" (assignment_expression "puStack_104 = puVar36" identifier = identifier) ;) (expression_statement "uStack_1e4 = FUN_00043278(&puStack_144,uVar34);" (assignment_expression "uStack_1e4 = FUN_00043278(&puStack_144,uVar34)" identifier = (call_expression "FUN_00043278(&puStack_144,uVar34)" identifier (argument_list "(&puStack_144,uVar34)" ( (pointer_expression "&puStack_144" & identifier) , identifier )))) ;) (expression_statement "piVar17 = piStack_e0;" (assignment_expression "piVar17 = piStack_e0" identifier = identifier) ;) (if_statement "if (uStack_1e4 != 0) {\nLAB_0004dbbc:\n    while( true ) {\n      pcVar45 = *(code **)(puVar46 + 0x28520);\nLAB_0004dbc0:\n      (*pcVar45)(piVar17);\n      if (puVar43[0x13] != 0) {\nLAB_0004dc14:\n        FUN_00044db0(&puStack_144);\n        (**(code **)(puVar46 + 0x28520))(iStack_c0);\n        (**(code **)(puVar46 + 0x28520))(iStack_d0);\n      }\nLAB_0004dbd4:\n      FUN_00044d40(&puStack_144);\nLAB_0004db58:\n      if (iStack_bc == *piVar10) break;\n      uStack_1e4 = (**(code **)(puVar46 + 0x284cc))();\n      piVar17 = piStack_e0;\n    }\n    return uStack_1e4;\n  }" if (parenthesized_expression "(uStack_1e4 != 0)" ( (binary_expression "uStack_1e4 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_0004dbbc:\n    while( true ) {\n      pcVar45 = *(code **)(puVar46 + 0x28520);\nLAB_0004dbc0:\n      (*pcVar45)(piVar17);\n      if (puVar43[0x13] != 0) {\nLAB_0004dc14:\n        FUN_00044db0(&puStack_144);\n        (**(code **)(puVar46 + 0x28520))(iStack_c0);\n        (**(code **)(puVar46 + 0x28520))(iStack_d0);\n      }\nLAB_0004dbd4:\n      FUN_00044d40(&puStack_144);\nLAB_0004db58:\n      if (iStack_bc == *piVar10) break;\n      uStack_1e4 = (**(code **)(puVar46 + 0x284cc))();\n      piVar17 = piStack_e0;\n    }\n    return uStack_1e4;\n  }" { (labeled_statement "LAB_0004dbbc:\n    while( true ) {\n      pcVar45 = *(code **)(puVar46 + 0x28520);\nLAB_0004dbc0:\n      (*pcVar45)(piVar17);\n      if (puVar43[0x13] != 0) {\nLAB_0004dc14:\n        FUN_00044db0(&puStack_144);\n        (**(code **)(puVar46 + 0x28520))(iStack_c0);\n        (**(code **)(puVar46 + 0x28520))(iStack_d0);\n      }\nLAB_0004dbd4:\n      FUN_00044d40(&puStack_144);\nLAB_0004db58:\n      if (iStack_bc == *piVar10) break;\n      uStack_1e4 = (**(code **)(puVar46 + 0x284cc))();\n      piVar17 = piStack_e0;\n    }" statement_identifier : (while_statement "while( true ) {\n      pcVar45 = *(code **)(puVar46 + 0x28520);\nLAB_0004dbc0:\n      (*pcVar45)(piVar17);\n      if (puVar43[0x13] != 0) {\nLAB_0004dc14:\n        FUN_00044db0(&puStack_144);\n        (**(code **)(puVar46 + 0x28520))(iStack_c0);\n        (**(code **)(puVar46 + 0x28520))(iStack_d0);\n      }\nLAB_0004dbd4:\n      FUN_00044d40(&puStack_144);\nLAB_0004db58:\n      if (iStack_bc == *piVar10) break;\n      uStack_1e4 = (**(code **)(puVar46 + 0x284cc))();\n      piVar17 = piStack_e0;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      pcVar45 = *(code **)(puVar46 + 0x28520);\nLAB_0004dbc0:\n      (*pcVar45)(piVar17);\n      if (puVar43[0x13] != 0) {\nLAB_0004dc14:\n        FUN_00044db0(&puStack_144);\n        (**(code **)(puVar46 + 0x28520))(iStack_c0);\n        (**(code **)(puVar46 + 0x28520))(iStack_d0);\n      }\nLAB_0004dbd4:\n      FUN_00044d40(&puStack_144);\nLAB_0004db58:\n      if (iStack_bc == *piVar10) break;\n      uStack_1e4 = (**(code **)(puVar46 + 0x284cc))();\n      piVar17 = piStack_e0;\n    }" { (expression_statement "pcVar45 = *(code **)(puVar46 + 0x28520);" (assignment_expression "pcVar45 = *(code **)(puVar46 + 0x28520)" identifier = (pointer_expression "*(code **)(puVar46 + 0x28520)" * (cast_expression "(code **)(puVar46 + 0x28520)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar46 + 0x28520)" ( (binary_expression "puVar46 + 0x28520" identifier + number_literal) ))))) ;) (labeled_statement "LAB_0004dbc0:\n      (*pcVar45)(piVar17);" statement_identifier : (expression_statement "(*pcVar45)(piVar17);" (call_expression "(*pcVar45)(piVar17)" (parenthesized_expression "(*pcVar45)" ( (pointer_expression "*pcVar45" * identifier) )) (argument_list "(piVar17)" ( identifier ))) ;)) (if_statement "if (puVar43[0x13] != 0) {\nLAB_0004dc14:\n        FUN_00044db0(&puStack_144);\n        (**(code **)(puVar46 + 0x28520))(iStack_c0);\n        (**(code **)(puVar46 + 0x28520))(iStack_d0);\n      }" if (parenthesized_expression "(puVar43[0x13] != 0)" ( (binary_expression "puVar43[0x13] != 0" (subscript_expression "puVar43[0x13]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\nLAB_0004dc14:\n        FUN_00044db0(&puStack_144);\n        (**(code **)(puVar46 + 0x28520))(iStack_c0);\n        (**(code **)(puVar46 + 0x28520))(iStack_d0);\n      }" { (labeled_statement "LAB_0004dc14:\n        FUN_00044db0(&puStack_144);" statement_identifier : (expression_statement "FUN_00044db0(&puStack_144);" (call_expression "FUN_00044db0(&puStack_144)" identifier (argument_list "(&puStack_144)" ( (pointer_expression "&puStack_144" & identifier) ))) ;)) (expression_statement "(**(code **)(puVar46 + 0x28520))(iStack_c0);" (call_expression "(**(code **)(puVar46 + 0x28520))(iStack_c0)" (parenthesized_expression "(**(code **)(puVar46 + 0x28520))" ( (pointer_expression "**(code **)(puVar46 + 0x28520)" * (pointer_expression "*(code **)(puVar46 + 0x28520)" * (cast_expression "(code **)(puVar46 + 0x28520)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar46 + 0x28520)" ( (binary_expression "puVar46 + 0x28520" identifier + number_literal) ))))) )) (argument_list "(iStack_c0)" ( identifier ))) ;) (expression_statement "(**(code **)(puVar46 + 0x28520))(iStack_d0);" (call_expression "(**(code **)(puVar46 + 0x28520))(iStack_d0)" (parenthesized_expression "(**(code **)(puVar46 + 0x28520))" ( (pointer_expression "**(code **)(puVar46 + 0x28520)" * (pointer_expression "*(code **)(puVar46 + 0x28520)" * (cast_expression "(code **)(puVar46 + 0x28520)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar46 + 0x28520)" ( (binary_expression "puVar46 + 0x28520" identifier + number_literal) ))))) )) (argument_list "(iStack_d0)" ( identifier ))) ;) })) (labeled_statement "LAB_0004dbd4:\n      FUN_00044d40(&puStack_144);" statement_identifier : (expression_statement "FUN_00044d40(&puStack_144);" (call_expression "FUN_00044d40(&puStack_144)" identifier (argument_list "(&puStack_144)" ( (pointer_expression "&puStack_144" & identifier) ))) ;)) (labeled_statement "LAB_0004db58:\n      if (iStack_bc == *piVar10) break;" statement_identifier : (if_statement "if (iStack_bc == *piVar10) break;" if (parenthesized_expression "(iStack_bc == *piVar10)" ( (binary_expression "iStack_bc == *piVar10" identifier == (pointer_expression "*piVar10" * identifier)) )) (break_statement "break;" break ;))) (expression_statement "uStack_1e4 = (**(code **)(puVar46 + 0x284cc))();" (assignment_expression "uStack_1e4 = (**(code **)(puVar46 + 0x284cc))()" identifier = (call_expression "(**(code **)(puVar46 + 0x284cc))()" (parenthesized_expression "(**(code **)(puVar46 + 0x284cc))" ( (pointer_expression "**(code **)(puVar46 + 0x284cc)" * (pointer_expression "*(code **)(puVar46 + 0x284cc)" * (cast_expression "(code **)(puVar46 + 0x284cc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar46 + 0x284cc)" ( (binary_expression "puVar46 + 0x284cc" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "piVar17 = piStack_e0;" (assignment_expression "piVar17 = piStack_e0" identifier = identifier) ;) }))) (return_statement "return uStack_1e4;" return identifier ;) })) (expression_statement "puStack_100 = puVar43 + 0x18;" (assignment_expression "puStack_100 = puVar43 + 0x18" identifier = (binary_expression "puVar43 + 0x18" identifier + number_literal)) ;) (expression_statement "bStack_f6 = (byte)((puVar43[0x16] << 4) >> 0x1f);" (assignment_expression "bStack_f6 = (byte)((puVar43[0x16] << 4) >> 0x1f)" identifier = (call_expression "(byte)((puVar43[0x16] << 4) >> 0x1f)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((puVar43[0x16] << 4) >> 0x1f)" ( (binary_expression "(puVar43[0x16] << 4) >> 0x1f" (parenthesized_expression "(puVar43[0x16] << 4)" ( (binary_expression "puVar43[0x16] << 4" (subscript_expression "puVar43[0x16]" identifier [ number_literal ]) << number_literal) )) >> number_literal) )))) ;) (if_statement "if ((bStack_f9 != 0) || (puStack_140 = puVar23, puStack_128 = puStack_88, 1 < (int)puVar43[0x17]))\n  {\n    puStack_128 = (uint *)0x0;\n  }" if (parenthesized_expression "((bStack_f9 != 0) || (puStack_140 = puVar23, puStack_128 = puStack_88, 1 < (int)puVar43[0x17]))" ( (binary_expression "(bStack_f9 != 0) || (puStack_140 = puVar23, puStack_128 = puStack_88, 1 < (int)puVar43[0x17])" (parenthesized_expression "(bStack_f9 != 0)" ( (binary_expression "bStack_f9 != 0" identifier != number_literal) )) || (parenthesized_expression "(puStack_140 = puVar23, puStack_128 = puStack_88, 1 < (int)puVar43[0x17])" ( (comma_expression "puStack_140 = puVar23, puStack_128 = puStack_88, 1 < (int)puVar43[0x17]" (assignment_expression "puStack_140 = puVar23" identifier = identifier) , (comma_expression "puStack_128 = puStack_88, 1 < (int)puVar43[0x17]" (assignment_expression "puStack_128 = puStack_88" identifier = identifier) , (binary_expression "1 < (int)puVar43[0x17]" number_literal < (cast_expression "(int)puVar43[0x17]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar43[0x17]" identifier [ number_literal ]))))) ))) )) (compound_statement "{\n    puStack_128 = (uint *)0x0;\n  }" { (expression_statement "puStack_128 = (uint *)0x0;" (assignment_expression "puStack_128 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "puStack_10c = puVar32;" (assignment_expression "puStack_10c = puVar32" identifier = identifier) ;) (expression_statement "puStack_110 = puVar32;" (assignment_expression "puStack_110 = puVar32" identifier = identifier) ;) (expression_statement "puStack_124 = puStack_128;" (assignment_expression "puStack_124 = puStack_128" identifier = identifier) ;) (expression_statement "bStack_f7 = (byte)((uint)((int)ppuVar24[7] << 7) >> 0x1f);" (assignment_expression "bStack_f7 = (byte)((uint)((int)ppuVar24[7] << 7) >> 0x1f)" identifier = (call_expression "(byte)((uint)((int)ppuVar24[7] << 7) >> 0x1f)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)((int)ppuVar24[7] << 7) >> 0x1f)" ( (binary_expression "(uint)((int)ppuVar24[7] << 7) >> 0x1f" (call_expression "(uint)((int)ppuVar24[7] << 7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)ppuVar24[7] << 7)" ( (binary_expression "(int)ppuVar24[7] << 7" (cast_expression "(int)ppuVar24[7]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppuVar24[7]" identifier [ number_literal ])) << number_literal) ))) >> number_literal) )))) ;) (expression_statement "uVar6 = puVar43[0x13];" (assignment_expression "uVar6 = puVar43[0x13]" identifier = (subscript_expression "puVar43[0x13]" identifier [ number_literal ])) ;) (expression_statement "iVar29 = uVar6 * 2;" (assignment_expression "iVar29 = uVar6 * 2" identifier = (binary_expression "uVar6 * 2" identifier * number_literal)) ;) (expression_statement "puStack_ec = &_gp_1;" (assignment_expression "puStack_ec = &_gp_1" identifier = (pointer_expression "&_gp_1" & identifier)) ;) (expression_statement "uStack_e8 = 0xffffffff;" (assignment_expression "uStack_e8 = 0xffffffff" identifier = number_literal) ;) (if_statement "if (0 < iVar29) {\n    if (0xccccccc < iVar29) goto LAB_0004dbf8;\n    iVar30 = (**(code **)(puVar46 + 0x28450))(uVar6 * 0x28);\n    iStack_d0 = iVar30;\n    iStack_c0 = (**(code **)(puVar46 + 0x28450))(uVar6 * 8);\n    if ((iVar30 == 0) || (iStack_c0 == 0)) goto LAB_0004dbf8;\n  }" if (parenthesized_expression "(0 < iVar29)" ( (binary_expression "0 < iVar29" number_literal < identifier) )) (compound_statement "{\n    if (0xccccccc < iVar29) goto LAB_0004dbf8;\n    iVar30 = (**(code **)(puVar46 + 0x28450))(uVar6 * 0x28);\n    iStack_d0 = iVar30;\n    iStack_c0 = (**(code **)(puVar46 + 0x28450))(uVar6 * 8);\n    if ((iVar30 == 0) || (iStack_c0 == 0)) goto LAB_0004dbf8;\n  }" { (if_statement "if (0xccccccc < iVar29) goto LAB_0004dbf8;" if (parenthesized_expression "(0xccccccc < iVar29)" ( (binary_expression "0xccccccc < iVar29" number_literal < identifier) )) (goto_statement "goto LAB_0004dbf8;" goto statement_identifier ;)) (expression_statement "iVar30 = (**(code **)(puVar46 + 0x28450))(uVar6 * 0x28);" (assignment_expression "iVar30 = (**(code **)(puVar46 + 0x28450))(uVar6 * 0x28)" identifier = (call_expression "(**(code **)(puVar46 + 0x28450))(uVar6 * 0x28)" (parenthesized_expression "(**(code **)(puVar46 + 0x28450))" ( (pointer_expression "**(code **)(puVar46 + 0x28450)" * (pointer_expression "*(code **)(puVar46 + 0x28450)" * (cast_expression "(code **)(puVar46 + 0x28450)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar46 + 0x28450)" ( (binary_expression "puVar46 + 0x28450" identifier + number_literal) ))))) )) (argument_list "(uVar6 * 0x28)" ( (binary_expression "uVar6 * 0x28" identifier * number_literal) )))) ;) (expression_statement "iStack_d0 = iVar30;" (assignment_expression "iStack_d0 = iVar30" identifier = identifier) ;) (expression_statement "iStack_c0 = (**(code **)(puVar46 + 0x28450))(uVar6 * 8);" (assignment_expression "iStack_c0 = (**(code **)(puVar46 + 0x28450))(uVar6 * 8)" identifier = (call_expression "(**(code **)(puVar46 + 0x28450))(uVar6 * 8)" (parenthesized_expression "(**(code **)(puVar46 + 0x28450))" ( (pointer_expression "**(code **)(puVar46 + 0x28450)" * (pointer_expression "*(code **)(puVar46 + 0x28450)" * (cast_expression "(code **)(puVar46 + 0x28450)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar46 + 0x28450)" ( (binary_expression "puVar46 + 0x28450" identifier + number_literal) ))))) )) (argument_list "(uVar6 * 8)" ( (binary_expression "uVar6 * 8" identifier * number_literal) )))) ;) (if_statement "if ((iVar30 == 0) || (iStack_c0 == 0)) goto LAB_0004dbf8;" if (parenthesized_expression "((iVar30 == 0) || (iStack_c0 == 0))" ( (binary_expression "(iVar30 == 0) || (iStack_c0 == 0)" (parenthesized_expression "(iVar30 == 0)" ( (binary_expression "iVar30 == 0" identifier == number_literal) )) || (parenthesized_expression "(iStack_c0 == 0)" ( (binary_expression "iStack_c0 == 0" identifier == number_literal) ))) )) (goto_statement "goto LAB_0004dbf8;" goto statement_identifier ;)) })) (expression_statement "iStack_d4 = iVar29;" (assignment_expression "iStack_d4 = iVar29" identifier = identifier) ;) (expression_statement "iStack_c4 = iVar29;" (assignment_expression "iStack_c4 = iVar29" identifier = identifier) ;) (expression_statement "bVar1 = (uint *)0x1 < local_78;" (assignment_expression "bVar1 = (uint *)0x1 < local_78" identifier = (binary_expression "(uint *)0x1 < local_78" (cast_expression "(uint *)0x1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < identifier)) ;) (expression_statement "iStack_cc = 1;" (assignment_expression "iStack_cc = 1" identifier = number_literal) ;) (if_statement "if ((bVar1) || ((puVar43[0x16] & 0x40000000) != 0)) {\n    if (0x3ffffffe < uStack_120) {\nLAB_0004dbf8:\n      uStack_1e4 = 0xc;\n      (**(code **)(puVar46 + 0x28520))(piStack_e0);\n      if (puVar43[0x13] == 0) goto LAB_0004dbd4;\n      goto LAB_0004dc14;\n    }\n    piStack_e0 = (int *)(**(code **)(puVar46 + 0x28450))((uStack_120 + 1) * 4);\n    piVar17 = piStack_e0;\n    if (piStack_e0 == (int *)0x0) {\nLAB_0004dbb4:\n      uStack_1e4 = 0xc;\n      goto LAB_0004dbbc;\n    }\n  }\n  else {\n    piStack_e0 = (int *)0x0;\n  }" if (parenthesized_expression "((bVar1) || ((puVar43[0x16] & 0x40000000) != 0))" ( (binary_expression "(bVar1) || ((puVar43[0x16] & 0x40000000) != 0)" (parenthesized_expression "(bVar1)" ( identifier )) || (parenthesized_expression "((puVar43[0x16] & 0x40000000) != 0)" ( (binary_expression "(puVar43[0x16] & 0x40000000) != 0" (parenthesized_expression "(puVar43[0x16] & 0x40000000)" ( (binary_expression "puVar43[0x16] & 0x40000000" (subscript_expression "puVar43[0x16]" identifier [ number_literal ]) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n    if (0x3ffffffe < uStack_120) {\nLAB_0004dbf8:\n      uStack_1e4 = 0xc;\n      (**(code **)(puVar46 + 0x28520))(piStack_e0);\n      if (puVar43[0x13] == 0) goto LAB_0004dbd4;\n      goto LAB_0004dc14;\n    }\n    piStack_e0 = (int *)(**(code **)(puVar46 + 0x28450))((uStack_120 + 1) * 4);\n    piVar17 = piStack_e0;\n    if (piStack_e0 == (int *)0x0) {\nLAB_0004dbb4:\n      uStack_1e4 = 0xc;\n      goto LAB_0004dbbc;\n    }\n  }" { (if_statement "if (0x3ffffffe < uStack_120) {\nLAB_0004dbf8:\n      uStack_1e4 = 0xc;\n      (**(code **)(puVar46 + 0x28520))(piStack_e0);\n      if (puVar43[0x13] == 0) goto LAB_0004dbd4;\n      goto LAB_0004dc14;\n    }" if (parenthesized_expression "(0x3ffffffe < uStack_120)" ( (binary_expression "0x3ffffffe < uStack_120" number_literal < identifier) )) (compound_statement "{\nLAB_0004dbf8:\n      uStack_1e4 = 0xc;\n      (**(code **)(puVar46 + 0x28520))(piStack_e0);\n      if (puVar43[0x13] == 0) goto LAB_0004dbd4;\n      goto LAB_0004dc14;\n    }" { (labeled_statement "LAB_0004dbf8:\n      uStack_1e4 = 0xc;" statement_identifier : (expression_statement "uStack_1e4 = 0xc;" (assignment_expression "uStack_1e4 = 0xc" identifier = number_literal) ;)) (expression_statement "(**(code **)(puVar46 + 0x28520))(piStack_e0);" (call_expression "(**(code **)(puVar46 + 0x28520))(piStack_e0)" (parenthesized_expression "(**(code **)(puVar46 + 0x28520))" ( (pointer_expression "**(code **)(puVar46 + 0x28520)" * (pointer_expression "*(code **)(puVar46 + 0x28520)" * (cast_expression "(code **)(puVar46 + 0x28520)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar46 + 0x28520)" ( (binary_expression "puVar46 + 0x28520" identifier + number_literal) ))))) )) (argument_list "(piStack_e0)" ( identifier ))) ;) (if_statement "if (puVar43[0x13] == 0) goto LAB_0004dbd4;" if (parenthesized_expression "(puVar43[0x13] == 0)" ( (binary_expression "puVar43[0x13] == 0" (subscript_expression "puVar43[0x13]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto LAB_0004dbd4;" goto statement_identifier ;)) (goto_statement "goto LAB_0004dc14;" goto statement_identifier ;) })) (expression_statement "piStack_e0 = (int *)(**(code **)(puVar46 + 0x28450))((uStack_120 + 1) * 4);" (assignment_expression "piStack_e0 = (int *)(**(code **)(puVar46 + 0x28450))((uStack_120 + 1) * 4)" identifier = (cast_expression "(int *)(**(code **)(puVar46 + 0x28450))((uStack_120 + 1) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar46 + 0x28450))((uStack_120 + 1) * 4)" (parenthesized_expression "(**(code **)(puVar46 + 0x28450))" ( (pointer_expression "**(code **)(puVar46 + 0x28450)" * (pointer_expression "*(code **)(puVar46 + 0x28450)" * (cast_expression "(code **)(puVar46 + 0x28450)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar46 + 0x28450)" ( (binary_expression "puVar46 + 0x28450" identifier + number_literal) ))))) )) (argument_list "((uStack_120 + 1) * 4)" ( (binary_expression "(uStack_120 + 1) * 4" (parenthesized_expression "(uStack_120 + 1)" ( (binary_expression "uStack_120 + 1" identifier + number_literal) )) * number_literal) ))))) ;) (expression_statement "piVar17 = piStack_e0;" (assignment_expression "piVar17 = piStack_e0" identifier = identifier) ;) (if_statement "if (piStack_e0 == (int *)0x0) {\nLAB_0004dbb4:\n      uStack_1e4 = 0xc;\n      goto LAB_0004dbbc;\n    }" if (parenthesized_expression "(piStack_e0 == (int *)0x0)" ( (binary_expression "piStack_e0 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0004dbb4:\n      uStack_1e4 = 0xc;\n      goto LAB_0004dbbc;\n    }" { (labeled_statement "LAB_0004dbb4:\n      uStack_1e4 = 0xc;" statement_identifier : (expression_statement "uStack_1e4 = 0xc;" (assignment_expression "uStack_1e4 = 0xc" identifier = number_literal) ;)) (goto_statement "goto LAB_0004dbbc;" goto statement_identifier ;) })) }) (else_clause "else {\n    piStack_e0 = (int *)0x0;\n  }" else (compound_statement "{\n    piStack_e0 = (int *)0x0;\n  }" { (expression_statement "piStack_e0 = (int *)0x0;" (assignment_expression "piStack_e0 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (expression_statement "uVar34 = puVar43[0x17];" (assignment_expression "uVar34 = puVar43[0x17]" identifier = (subscript_expression "puVar43[0x17]" identifier [ number_literal ])) ;) (expression_statement "iVar29 = -1;" (assignment_expression "iVar29 = -1" identifier = number_literal) ;) (expression_statement "puStack_16c = param_4;" (assignment_expression "puStack_16c = param_4" identifier = identifier) ;) (expression_statement "uStack_108 = 6;" (assignment_expression "uStack_108 = 6" identifier = number_literal) ;) (expression_statement "uVar6 = (uint)((int)puVar38 < (int)param_4);" (assignment_expression "uVar6 = (uint)((int)puVar38 < (int)param_4)" identifier = (call_expression "(uint)((int)puVar38 < (int)param_4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)puVar38 < (int)param_4)" ( (binary_expression "(int)puVar38 < (int)param_4" (cast_expression "(int)puVar38" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "puVar23 = puVar38;" (assignment_expression "puVar23 = puVar38" identifier = identifier) ;) (if_statement "if (uVar6 == 0) {\n    iVar29 = 1;\n    puVar23 = param_4;\n  }" if (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar29 = 1;\n    puVar23 = param_4;\n  }" { (expression_statement "iVar29 = 1;" (assignment_expression "iVar29 = 1" identifier = number_literal) ;) (expression_statement "puVar23 = param_4;" (assignment_expression "puVar23 = param_4" identifier = identifier) ;) })) (if_statement "if ((int)puVar38 <= (int)param_4) {\n    puVar38 = param_4;\n  }" if (parenthesized_expression "((int)puVar38 <= (int)param_4)" ( (binary_expression "(int)puVar38 <= (int)param_4" (cast_expression "(int)puVar38" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    puVar38 = param_4;\n  }" { (expression_statement "puVar38 = param_4;" (assignment_expression "puVar38 = param_4" identifier = identifier) ;) })) (if_statement "if (puStack_1e0 == (uint *)0x0) goto LAB_0004eabc;" if (parenthesized_expression "(puStack_1e0 == (uint *)0x0)" ( (binary_expression "puStack_1e0 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004eabc;" goto statement_identifier ;)) (expression_statement "uVar11 = 4;" (assignment_expression "uVar11 = 4" identifier = number_literal) ;) (if_statement "if (((uVar34 != 1) && (uVar11 = 0, -1 < (int)ppuVar24[3] << 9)) &&\n     (uVar11 = 4, puVar36 != (uint *)0x0)) {\n    uVar11 = 0;\n  }" if (parenthesized_expression "(((uVar34 != 1) && (uVar11 = 0, -1 < (int)ppuVar24[3] << 9)) &&\n     (uVar11 = 4, puVar36 != (uint *)0x0))" ( (binary_expression "((uVar34 != 1) && (uVar11 = 0, -1 < (int)ppuVar24[3] << 9)) &&\n     (uVar11 = 4, puVar36 != (uint *)0x0)" (parenthesized_expression "((uVar34 != 1) && (uVar11 = 0, -1 < (int)ppuVar24[3] << 9))" ( (binary_expression "(uVar34 != 1) && (uVar11 = 0, -1 < (int)ppuVar24[3] << 9)" (parenthesized_expression "(uVar34 != 1)" ( (binary_expression "uVar34 != 1" identifier != number_literal) )) && (parenthesized_expression "(uVar11 = 0, -1 < (int)ppuVar24[3] << 9)" ( (comma_expression "uVar11 = 0, -1 < (int)ppuVar24[3] << 9" (assignment_expression "uVar11 = 0" identifier = number_literal) , (binary_expression "-1 < (int)ppuVar24[3] << 9" number_literal < (binary_expression "(int)ppuVar24[3] << 9" (cast_expression "(int)ppuVar24[3]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppuVar24[3]" identifier [ number_literal ])) << number_literal))) ))) )) && (parenthesized_expression "(uVar11 = 4, puVar36 != (uint *)0x0)" ( (comma_expression "uVar11 = 4, puVar36 != (uint *)0x0" (assignment_expression "uVar11 = 4" identifier = number_literal) , (binary_expression "puVar36 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n    uVar11 = 0;\n  }" { (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) })) (expression_statement "uVar31 = 2;" (assignment_expression "uVar31 = 2" identifier = number_literal) ;) (if_statement "if (uVar6 != 0) {\n    uVar31 = 0;\n  }" if (parenthesized_expression "(uVar6 != 0)" ( (binary_expression "uVar6 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar31 = 0;\n  }" { (expression_statement "uVar31 = 0;" (assignment_expression "uVar31 = 0" identifier = number_literal) ;) })) (expression_statement "uVar31 = puVar36 != (uint *)0x0 | uVar11 | uVar31;" (assignment_expression "uVar31 = puVar36 != (uint *)0x0 | uVar11 | uVar31" identifier = (binary_expression "puVar36 != (uint *)0x0 | uVar11 | uVar31" (binary_expression "puVar36 != (uint *)0x0 | uVar11" (binary_expression "puVar36 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) | identifier) | identifier)) ;) (labeled_statement "LAB_0004dab0:\n  if (((int)puVar23 <= (int)param_4) && ((int)param_4 <= (int)puVar38)) {\n    ppuVar12 = &puStack_16c;\n    if (uVar6 != 0) {\n      ppuVar12 = (uint **)0x0;\n    }\n    iVar25 = *(int *)(puVar46 + 0x28244);\n    iVar13 = *(int *)(puVar46 + 0x27edc);\n    iVar26 = *(int *)(puVar46 + 0x2829c);\n    iVar30 = iStack_12c;\n    puVar36 = puStack_88;\n    do {\n      puStack_88 = puVar36;\n      if (uVar31 - 4 < 5) {\n                    \n                    \n        uVar6 = (*(code *)(puVar46 + *(int *)(iVar13 + 0x2be4 + (uVar31 - 4) * 4) + 0x2fea4))();\n        return uVar6;\n      }\n      iStack_12c = iVar30;\n      while( true ) {\n        puVar39 = (uint *)((int)param_4 - iVar30);\n        if (puStack_124 <= puVar39) {\n          uStack_1e4 = (*(code *)(iVar25 + 0x7eac))(&puStack_144,param_4,&_gp_1);\n          piVar17 = piStack_e0;\n          if (uStack_1e4 != 0) goto LAB_0004dbbc;\n          puVar39 = (uint *)((int)param_4 - iStack_12c);\n          iVar30 = iStack_12c;\n        }\n        if ((int)param_4 < (int)puVar36) {\n          cVar21 = *(char *)((int)puStack_1e0 + (uint)*(byte *)((int)puStack_140 + (int)puVar39));\n        }\n        else {\n          cVar21 = *(char *)puStack_1e0;\n        }\n        if (cVar21 != '\0') break;\n        param_4 = (uint *)((int)param_4 + iVar29);\n        puStack_16c = param_4;\n        if (((int)param_4 < (int)puVar23) || ((int)puVar38 < (int)param_4)) goto LAB_0004df68;\n      }\n      uVar11 = FUN_00047eac(&puStack_144,param_4,&_gp_1);\n      puVar36 = puStack_f0;\n      uVar6 = uStack_11c;\n      piVar17 = piStack_e0;\n      uStack_1e4 = uVar11;\n      if (uVar11 != 0) goto LAB_0004dbbc;\n      if (((uVar34 == 1) || (puStack_128 == (uint *)0x0)) || (*piStack_13c != -1)) {\n        iStack_cc = 0;\n        uStack_d8 = 0;\n        uVar41 = puStack_f0[9];\n        uStack_1d0 = uStack_11c;\n        iStack_dc = 0;\n        uStack_168 = 0;\n        if ((*(byte *)(uVar41 + 0x34) & 1) != 0) {\n          uVar14 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n          if ((uVar14 & 1) == 0) {\n            if (uVar14 == 0) goto LAB_0004dd24;\n            if ((uVar14 & 6) == 6) {\n              uVar41 = puVar36[0xc];\n            }\n            else if ((uVar14 & 2) == 0) {\n              if ((uVar14 & 4) == 0) goto LAB_0004dd24;\n              uVar41 = FUN_00046cac(&uStack_168,puVar36,*(undefined4 *)(uVar41 + 0x28),uVar14);\n            }\n            else {\n              uVar41 = puVar36[0xb];\n            }\n          }\n          else {\n            uVar41 = puVar36[10];\n          }\n          if (uVar41 == 0) goto code_r0x0004ea7c;\n        }\nLAB_0004dd24:\n        bVar4 = ppuVar12 != (uint **)0x0;\n        if ((piStack_e0 == (int *)0x0) ||\n           (uVar14 = puVar36[0x13], piStack_e0[uVar6] = uVar41, uVar14 == 0)) {\nLAB_0004dd48:\n          if (*(int *)(uVar41 + 0x34) << 4 < 0) {\n            if (((*(byte *)(uVar41 + 0x34) & 1) == 0) ||\n               (iVar30 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar41 + 8),uVar41 + 0xc,uVar6),\n               iVar30 != 0)) {\n              uVar14 = uVar6;\n              bVar5 = bVar22;\n              if (!bVar22) goto LAB_0004e0e4;\n            }\n            else {\n              uVar6 = 0xffffffff;\n              bVar5 = false;\n            }\n          }\n          else {\n            uVar6 = 0xffffffff;\n            bVar5 = false;\n          }\n          iVar30 = *(int *)(puVar46 + 0x28244);\n          iVar15 = *(int *)(puVar46 + 0x2829c);\n          uVar14 = uStack_11c;\n          ppuStack_1dc = ppuVar12;\n          while ((int)uVar14 < (int)puStack_10c) {\n            uVar40 = uVar14 + 1;\n            if ((((int)uVar40 < (int)uStack_120) || ((int)puStack_114 <= (int)uStack_120)) &&\n               (((int)uVar40 < (int)puStack_128 || ((int)puStack_114 <= (int)puStack_128)))) {\n              iVar16 = *(int *)(uVar41 + 0x34);\n              puVar36 = puStack_f0;\n            }\n            else {\n              uStack_168 = (*(code *)(iVar30 + 0x41e4))(&puStack_144,uVar14 + 2);\n              if (uStack_168 != 0) {\n                if (uStack_168 == 0xc) goto LAB_0004dbf8;\n                uVar20 = 0x46c;\n                goto LAB_0004ea9c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x34);\n              uVar14 = uStack_11c;\n              puVar36 = puStack_f0;\n            }\n            puStack_f0 = puVar36;\n            if (iVar16 << 5 < 0) {\n              iVar16 = *(int *)(uVar41 + 8);\n              if (0 < iVar16) {\n                param_4 = (uint *)0x0;\n                iVar18 = *(int *)(puVar46 + 0x28244);\n                pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7ab0);\n                do {\n                  uVar42 = *puVar36;\n                  iVar44 = *(int *)(*(int *)(uVar41 + 0xc) + (int)param_4 * 4);\n                  uVar37 = *(uint *)(uVar42 + iVar44 * 8 + 4);\n                  if ((uVar37 & 0x800) != 0) {\n                    if ((uVar37 & 0xffc000) != 0) {\n                      uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec);\n                      uVar37 = (uVar37 << 8) >> 0x16;\n                      if ((uVar37 & 4) == 0) {\n                        uVar27 = uVar19 & 1;\n                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    iVar16 = (*(code *)(iVar15 + -0x4eb0))\n                                       (uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14);\n                    if (iVar16 != 0) {\n                      if (iStack_cc < iVar16) {\n                        iStack_cc = iVar16;\n                      }\n                      iVar16 = iVar16 + uStack_11c;\n                      uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16);\n                      uVar14 = uStack_164;\n                      if (uStack_164 != 0) goto joined_r0x0004e770;\n                      piVar33 = piStack_e0 + iVar16;\n                      iVar28 = *piVar33;\n                      piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc);\n                      if (iVar28 == 0) {\n                        piStack_160 = (int *)*piVar17;\n                        piStack_15c = (int *)piVar17[1];\n                        iStack_158 = piVar17[2];\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        *piVar33 = iVar44;\n                      }\n                      else {\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }\n                      if ((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar16 = *(int *)(uVar41 + 8);\n                    uVar14 = uStack_11c;\n                  }\nLAB_0004e670:\n                  param_4 = (uint *)((int)param_4 + 1);\n                } while ((int)param_4 < iVar16);\n              }\n              uStack_168 = 0;\n            }\n            uStack_11c = uVar14 + 1;\n            uVar14 = (uint)*(byte *)((int)puStack_140 + uVar14);\n            do {\n              if (*(int *)(uVar41 + 0x2c) != 0) {\n                uVar37 = *(uint *)(*(int *)(uVar41 + 0x2c) + uVar14 * 4);\nLAB_0004ddf0:\n                if (piStack_e0 != (int *)0x0) goto LAB_0004ddfc;\n                goto LAB_0004de1c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x30);\n              if (iVar16 != 0) {\n                uVar37 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n                if ((uVar37 & 1) == 0) {\n                  uVar37 = *(uint *)(iVar16 + uVar14 * 4);\n                }\n                else {\n                  uVar37 = *(uint *)(iVar16 + (uVar14 + 0x100) * 4);\n                }\n                goto LAB_0004ddf0;\n              }\n              iVar16 = (*(code *)(iVar26 + -0x7510))(puStack_f0,uVar41);\n            } while (iVar16 != 0);\n            uStack_168 = 0xc;\n            uVar14 = uStack_168;\njoined_r0x0004e770:\n            uStack_168 = uVar14;\n            if (piStack_e0 == (int *)0x0) {\n              piVar17 = (int *)0x0;\n              goto LAB_0004dbb4;\n            }\n            uVar37 = 0;\nLAB_0004ddfc:\n            uVar37 = FUN_0004d0a8(&uStack_168,&puStack_144,uVar37);\nLAB_0004de1c:\n            uVar14 = uStack_11c;\n            if (uVar37 == 0) {\n              piVar17 = piStack_e0;\n              if (uStack_168 != 0) goto LAB_0004dbb4;\n              if ((piStack_e0 == (int *)0x0) || ((bVar5 && (!bVar22)))) break;\n              param_4 = &uStack_168;\n              do {\n                bVar2 = false;\n                piVar17 = piStack_e0 + uStack_11c;\n                uVar14 = uStack_11c;\n                do {\n                  uVar37 = uVar14 + 1;\n                  piVar17 = piVar17 + 1;\n                  if (iStack_dc < (int)uVar37) {\n                    if (bVar2) {\n                      uStack_11c = uVar14;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar2 = true;\n                  uVar14 = uVar37;\n                } while (*piVar17 == 0);\n                uStack_11c = uVar37;\n                uVar37 = FUN_0004d0a8(param_4,&puStack_144,0);\n                uVar14 = uStack_11c;\n                if (uStack_168 != 0) {\n                  if (uVar37 == 0) goto LAB_0004e0cc;\n                  break;\n                }\n              } while (uVar37 == 0);\n            }\n            uVar42 = uStack_1d0;\n            if ((bVar4) && (uVar42 = uVar40, uVar41 != uVar37)) {\n              bVar4 = false;\n              uVar42 = uStack_1d0;\n            }\n            uStack_1d0 = uVar42;\n            uVar41 = uVar37;\n            uStack_11c = uVar14;\n            if (((*(byte *)(uVar37 + 0x34) & 8) != 0) &&\n               (((*(byte *)(uVar37 + 0x34) & 1) == 0 ||\n                (iVar16 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar37 + 8),uVar37 + 0xc,uVar14)\n                , iVar16 != 0)))) {\n              if (!bVar22) goto LAB_0004e0e4;\n              ppuStack_1dc = (uint **)0x0;\n              uVar6 = uVar14;\n              bVar5 = bVar22;\n            }\n          }\nLAB_0004e0cc:\n          uVar14 = uVar6;\n          if (ppuStack_1dc != (uint **)0x0) {\n            *ppuStack_1dc = (uint *)((int)*ppuStack_1dc + uStack_1d0);\n          }\n        }\n        else {\n          uVar14 = FUN_00047924(&puStack_144,uVar41 + 8,uVar41 + 0xc,0);\n          uStack_168 = uVar14;\n          if (uVar14 == 0) {\n            if ((*(byte *)(uVar41 + 0x34) & 2) == 0) {\n              bVar4 = false;\n            }\n            else {\n              uVar14 = FUN_0004c6a8(&puStack_144,uVar41 + 8,uVar41 + 0xc);\n              uStack_168 = uVar14;\n              if (uVar14 != 0) goto LAB_0004e0e4;\n              bVar4 = false;\n            }\n            goto LAB_0004dd48;\n          }\n        }\nLAB_0004e0e4:\n        piVar17 = piStack_e0;\n        if (uVar14 != 0xffffffff) {\n          if (uVar14 == 0xfffffffe) goto LAB_0004dbf8;\n          uStack_e8 = uVar14;\n          if (((uint)ppuVar24[7] & 0x8000000) == 0) {\n            if (!bVar1) {\n              uVar6 = puVar43[0x13];\n              goto joined_r0x0004e94c;\n            }\n            pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n            iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                     piStack_e0[uVar14] + 0xc,uVar14);\n            if ((*(char *)(puVar43 + 0x16) < '\0') || (puVar43[0x13] != 0)) goto LAB_0004e170;\n          }\n          else {\n            uVar6 = puVar43[0x13];\njoined_r0x0004e94c:\n            if (uVar6 != 0) {\n              pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n              iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                       piStack_e0[uVar14] + 0xc,uVar14);\nLAB_0004e170:\n              iVar30 = iStack_e4;\n              puVar36 = puStack_f0;\n              if (uVar14 < 0x3fffffff) {\n                uStack_1f0 = uVar14 + 1;\n                piVar17 = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                if (piVar17 == (int *)0x0) goto LAB_0004dbf8;\n                if (puVar36[0x13] == 0) {\n                  piStack_15c = (int *)0x0;\n                  uStack_150 = 0;\n                  uStack_14c = 0;\n                  uStack_148 = 0;\n                  piStack_160 = piVar17;\n                  iStack_158 = iVar30;\n                  uStack_154 = uVar14;\n                  uStack_1e4 = FUN_0004d30c(&puStack_144,&piStack_160);\n                  (**(code **)(puVar46 + 0x28520))(uStack_148);\n                  if (uStack_1e4 == 0) {\n                    if (*piVar17 == 0) {\n                      (**(code **)(puVar46 + 0x28520))(piVar17);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar46 + 0x28520))(piStack_e0);\n                    uStack_e8 = uVar14;\n                    iStack_e4 = iVar30;\n                    piStack_e0 = piVar17;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  piStack_1ec = (int *)0x0;\n                }\n                else {\n                  piStack_1ec = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                  if (piStack_1ec == (int *)0x0) {\n                    (**(code **)(puVar46 + 0x28520))(piVar17);\n                    uStack_1e4 = 0xc;\n                    piVar17 = piStack_e0;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar15 = *(int *)(puVar46 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);\n                    uStack_150 = 0;\n                    uStack_14c = 0;\n                    uStack_148 = 0;\n                    piStack_160 = piVar17;\n                    piStack_15c = piStack_1ec;\n                    iStack_158 = iVar30;\n                    uStack_154 = uVar14;\n                    uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);\n                    (**(code **)(puVar46 + 0x28520))(uStack_148);\n                    if (uStack_1e4 != 0) break;\n                    if ((*piVar17 != 0) || (*piStack_1ec != 0)) {\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    piVar33 = piStack_e0 + (uStack_1f0 - 1);\n                    uStack_1f0 = uVar14;\n                    while( true ) {\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }\n                    iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       );\n                  }\n                }\n                (**(code **)(puVar46 + 0x28520))(piVar17);\n                (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                piVar17 = piStack_e0;\n                if (uStack_1e4 == 1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }\n              uStack_1e4 = 0xc;\n              goto LAB_0004dbbc;\n            }\n          }\nLAB_0004e7e0:\n          piVar17 = piStack_e0;\n          uStack_1e4 = uVar11;\n          if (local_78 == (uint *)0x0) goto LAB_0004dbbc;\n          puVar23 = ppuVar24[7];\n          if (bVar1) {\n            piVar17 = piStack_74 + 2;\n            do {\n              piVar17[1] = -1;\n              piVar33 = piVar17 + 2;\n              *piVar17 = -1;\n              piVar17 = piVar33;\n            } while (piStack_74 + (int)local_78 * 2 != piVar33);\n            *piStack_74 = 0;\n            piStack_74[1] = uStack_e8;\n            if (((uint)puVar23 & 0x8000000) == 0) {\n              if (*(char *)(puVar43 + 0x16) < '\0') {\n                bVar22 = 0 < (int)puVar43[0x13];\n              }\n              else {\n                bVar22 = false;\n              }\n              uStack_1e4 = FUN_0004bc00(ppuVar24,&puStack_144,local_78,piStack_74,bVar22);\n              piVar17 = piStack_e0;\n              if (uStack_1e4 != 0) goto LAB_0004dbbc;\n              puVar23 = (uint *)*piStack_74;\n            }\n            else {\nLAB_0004e838:\n              puVar23 = (uint *)0x0;\n            }\n            puVar36 = (uint *)0x0;\n            piVar17 = piStack_74;\n            while( true ) {\n              if (puVar23 != (uint *)0xffffffff) {\n                puVar32 = (uint *)piVar17[1];\n                puVar39 = puVar23;\n                puVar38 = puVar32;\n                if (cStack_f8 != '\0') {\n                  puVar39 = puStack_124;\n                  if (puStack_128 != puVar23) {\n                    puVar39 = *(uint **)(iStack_138 + (int)puVar23 * 4);\n                  }\n                  *piVar17 = (int)puVar39;\n                  puVar38 = puStack_124;\n                  if (puStack_128 != puVar32) {\n                    puVar38 = *(uint **)(iStack_138 + (int)puVar32 * 4);\n                  }\n                }\n                *piVar17 = (int)puStack_16c + (int)puVar39;\n                piVar17[1] = (int)puStack_16c + (int)puVar38;\n              }\n              puVar36 = (uint *)((int)puVar36 + 1);\n              piVar17 = piVar17 + 2;\n              if (puVar36 == local_78) break;\n              puVar23 = (uint *)*piVar17;\n            }\n            if (0 < iStack_180) {\n              piVar17 = piStack_74 + (int)local_78 * 2;\n              do {\n                *piVar17 = -1;\n                piVar33 = piVar17 + 2;\n                piVar17[1] = -1;\n                piVar17 = piVar33;\n              } while (piStack_74 + (iStack_180 + (int)local_78) * 2 != piVar33);\n            }\n            piVar33 = (int *)puVar43[0x21];\n            piVar17 = piStack_e0;\n            uStack_1e4 = uVar11;\n            if (piVar33 != (int *)0x0) {\n              iVar29 = 0;\n              piVar3 = piStack_74;\n              do {\n                pcVar45 = *(code **)(puVar46 + 0x28520);\n                if (iVar29 == (int)local_78 + -1) goto LAB_0004dbc0;\n                if (*piVar33 != iVar29) {\n                  piVar3[2] = piStack_74[(*piVar33 + 1) * 2];\n                  piVar3[3] = piStack_74[(*piVar33 + 1) * 2 + 1];\n                }\n                iVar29 = iVar29 + 1;\n                piVar33 = piVar33 + 1;\n                piVar3 = piVar3 + 2;\n              } while( true );\n            }\n            goto LAB_0004dbbc;\n          }\n          *piStack_74 = 0;\n          piStack_74[1] = uStack_e8;\n          goto LAB_0004e838;\n        }\nLAB_0004e2d4:\n        FUN_00044db0(&puStack_144);\n        param_4 = puStack_16c;\n      }\n      param_4 = (uint *)((int)param_4 + iVar29);\n      puStack_16c = param_4;\n      if (((int)param_4 < (int)puVar23) ||\n         (iVar30 = iStack_12c, puVar36 = puStack_88, (int)puVar38 < (int)param_4)) break;\n    } while( true );\n  }" statement_identifier : (if_statement "if (((int)puVar23 <= (int)param_4) && ((int)param_4 <= (int)puVar38)) {\n    ppuVar12 = &puStack_16c;\n    if (uVar6 != 0) {\n      ppuVar12 = (uint **)0x0;\n    }\n    iVar25 = *(int *)(puVar46 + 0x28244);\n    iVar13 = *(int *)(puVar46 + 0x27edc);\n    iVar26 = *(int *)(puVar46 + 0x2829c);\n    iVar30 = iStack_12c;\n    puVar36 = puStack_88;\n    do {\n      puStack_88 = puVar36;\n      if (uVar31 - 4 < 5) {\n                    \n                    \n        uVar6 = (*(code *)(puVar46 + *(int *)(iVar13 + 0x2be4 + (uVar31 - 4) * 4) + 0x2fea4))();\n        return uVar6;\n      }\n      iStack_12c = iVar30;\n      while( true ) {\n        puVar39 = (uint *)((int)param_4 - iVar30);\n        if (puStack_124 <= puVar39) {\n          uStack_1e4 = (*(code *)(iVar25 + 0x7eac))(&puStack_144,param_4,&_gp_1);\n          piVar17 = piStack_e0;\n          if (uStack_1e4 != 0) goto LAB_0004dbbc;\n          puVar39 = (uint *)((int)param_4 - iStack_12c);\n          iVar30 = iStack_12c;\n        }\n        if ((int)param_4 < (int)puVar36) {\n          cVar21 = *(char *)((int)puStack_1e0 + (uint)*(byte *)((int)puStack_140 + (int)puVar39));\n        }\n        else {\n          cVar21 = *(char *)puStack_1e0;\n        }\n        if (cVar21 != '\0') break;\n        param_4 = (uint *)((int)param_4 + iVar29);\n        puStack_16c = param_4;\n        if (((int)param_4 < (int)puVar23) || ((int)puVar38 < (int)param_4)) goto LAB_0004df68;\n      }\n      uVar11 = FUN_00047eac(&puStack_144,param_4,&_gp_1);\n      puVar36 = puStack_f0;\n      uVar6 = uStack_11c;\n      piVar17 = piStack_e0;\n      uStack_1e4 = uVar11;\n      if (uVar11 != 0) goto LAB_0004dbbc;\n      if (((uVar34 == 1) || (puStack_128 == (uint *)0x0)) || (*piStack_13c != -1)) {\n        iStack_cc = 0;\n        uStack_d8 = 0;\n        uVar41 = puStack_f0[9];\n        uStack_1d0 = uStack_11c;\n        iStack_dc = 0;\n        uStack_168 = 0;\n        if ((*(byte *)(uVar41 + 0x34) & 1) != 0) {\n          uVar14 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n          if ((uVar14 & 1) == 0) {\n            if (uVar14 == 0) goto LAB_0004dd24;\n            if ((uVar14 & 6) == 6) {\n              uVar41 = puVar36[0xc];\n            }\n            else if ((uVar14 & 2) == 0) {\n              if ((uVar14 & 4) == 0) goto LAB_0004dd24;\n              uVar41 = FUN_00046cac(&uStack_168,puVar36,*(undefined4 *)(uVar41 + 0x28),uVar14);\n            }\n            else {\n              uVar41 = puVar36[0xb];\n            }\n          }\n          else {\n            uVar41 = puVar36[10];\n          }\n          if (uVar41 == 0) goto code_r0x0004ea7c;\n        }\nLAB_0004dd24:\n        bVar4 = ppuVar12 != (uint **)0x0;\n        if ((piStack_e0 == (int *)0x0) ||\n           (uVar14 = puVar36[0x13], piStack_e0[uVar6] = uVar41, uVar14 == 0)) {\nLAB_0004dd48:\n          if (*(int *)(uVar41 + 0x34) << 4 < 0) {\n            if (((*(byte *)(uVar41 + 0x34) & 1) == 0) ||\n               (iVar30 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar41 + 8),uVar41 + 0xc,uVar6),\n               iVar30 != 0)) {\n              uVar14 = uVar6;\n              bVar5 = bVar22;\n              if (!bVar22) goto LAB_0004e0e4;\n            }\n            else {\n              uVar6 = 0xffffffff;\n              bVar5 = false;\n            }\n          }\n          else {\n            uVar6 = 0xffffffff;\n            bVar5 = false;\n          }\n          iVar30 = *(int *)(puVar46 + 0x28244);\n          iVar15 = *(int *)(puVar46 + 0x2829c);\n          uVar14 = uStack_11c;\n          ppuStack_1dc = ppuVar12;\n          while ((int)uVar14 < (int)puStack_10c) {\n            uVar40 = uVar14 + 1;\n            if ((((int)uVar40 < (int)uStack_120) || ((int)puStack_114 <= (int)uStack_120)) &&\n               (((int)uVar40 < (int)puStack_128 || ((int)puStack_114 <= (int)puStack_128)))) {\n              iVar16 = *(int *)(uVar41 + 0x34);\n              puVar36 = puStack_f0;\n            }\n            else {\n              uStack_168 = (*(code *)(iVar30 + 0x41e4))(&puStack_144,uVar14 + 2);\n              if (uStack_168 != 0) {\n                if (uStack_168 == 0xc) goto LAB_0004dbf8;\n                uVar20 = 0x46c;\n                goto LAB_0004ea9c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x34);\n              uVar14 = uStack_11c;\n              puVar36 = puStack_f0;\n            }\n            puStack_f0 = puVar36;\n            if (iVar16 << 5 < 0) {\n              iVar16 = *(int *)(uVar41 + 8);\n              if (0 < iVar16) {\n                param_4 = (uint *)0x0;\n                iVar18 = *(int *)(puVar46 + 0x28244);\n                pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7ab0);\n                do {\n                  uVar42 = *puVar36;\n                  iVar44 = *(int *)(*(int *)(uVar41 + 0xc) + (int)param_4 * 4);\n                  uVar37 = *(uint *)(uVar42 + iVar44 * 8 + 4);\n                  if ((uVar37 & 0x800) != 0) {\n                    if ((uVar37 & 0xffc000) != 0) {\n                      uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec);\n                      uVar37 = (uVar37 << 8) >> 0x16;\n                      if ((uVar37 & 4) == 0) {\n                        uVar27 = uVar19 & 1;\n                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    iVar16 = (*(code *)(iVar15 + -0x4eb0))\n                                       (uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14);\n                    if (iVar16 != 0) {\n                      if (iStack_cc < iVar16) {\n                        iStack_cc = iVar16;\n                      }\n                      iVar16 = iVar16 + uStack_11c;\n                      uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16);\n                      uVar14 = uStack_164;\n                      if (uStack_164 != 0) goto joined_r0x0004e770;\n                      piVar33 = piStack_e0 + iVar16;\n                      iVar28 = *piVar33;\n                      piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc);\n                      if (iVar28 == 0) {\n                        piStack_160 = (int *)*piVar17;\n                        piStack_15c = (int *)piVar17[1];\n                        iStack_158 = piVar17[2];\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        *piVar33 = iVar44;\n                      }\n                      else {\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }\n                      if ((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar16 = *(int *)(uVar41 + 8);\n                    uVar14 = uStack_11c;\n                  }\nLAB_0004e670:\n                  param_4 = (uint *)((int)param_4 + 1);\n                } while ((int)param_4 < iVar16);\n              }\n              uStack_168 = 0;\n            }\n            uStack_11c = uVar14 + 1;\n            uVar14 = (uint)*(byte *)((int)puStack_140 + uVar14);\n            do {\n              if (*(int *)(uVar41 + 0x2c) != 0) {\n                uVar37 = *(uint *)(*(int *)(uVar41 + 0x2c) + uVar14 * 4);\nLAB_0004ddf0:\n                if (piStack_e0 != (int *)0x0) goto LAB_0004ddfc;\n                goto LAB_0004de1c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x30);\n              if (iVar16 != 0) {\n                uVar37 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n                if ((uVar37 & 1) == 0) {\n                  uVar37 = *(uint *)(iVar16 + uVar14 * 4);\n                }\n                else {\n                  uVar37 = *(uint *)(iVar16 + (uVar14 + 0x100) * 4);\n                }\n                goto LAB_0004ddf0;\n              }\n              iVar16 = (*(code *)(iVar26 + -0x7510))(puStack_f0,uVar41);\n            } while (iVar16 != 0);\n            uStack_168 = 0xc;\n            uVar14 = uStack_168;\njoined_r0x0004e770:\n            uStack_168 = uVar14;\n            if (piStack_e0 == (int *)0x0) {\n              piVar17 = (int *)0x0;\n              goto LAB_0004dbb4;\n            }\n            uVar37 = 0;\nLAB_0004ddfc:\n            uVar37 = FUN_0004d0a8(&uStack_168,&puStack_144,uVar37);\nLAB_0004de1c:\n            uVar14 = uStack_11c;\n            if (uVar37 == 0) {\n              piVar17 = piStack_e0;\n              if (uStack_168 != 0) goto LAB_0004dbb4;\n              if ((piStack_e0 == (int *)0x0) || ((bVar5 && (!bVar22)))) break;\n              param_4 = &uStack_168;\n              do {\n                bVar2 = false;\n                piVar17 = piStack_e0 + uStack_11c;\n                uVar14 = uStack_11c;\n                do {\n                  uVar37 = uVar14 + 1;\n                  piVar17 = piVar17 + 1;\n                  if (iStack_dc < (int)uVar37) {\n                    if (bVar2) {\n                      uStack_11c = uVar14;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar2 = true;\n                  uVar14 = uVar37;\n                } while (*piVar17 == 0);\n                uStack_11c = uVar37;\n                uVar37 = FUN_0004d0a8(param_4,&puStack_144,0);\n                uVar14 = uStack_11c;\n                if (uStack_168 != 0) {\n                  if (uVar37 == 0) goto LAB_0004e0cc;\n                  break;\n                }\n              } while (uVar37 == 0);\n            }\n            uVar42 = uStack_1d0;\n            if ((bVar4) && (uVar42 = uVar40, uVar41 != uVar37)) {\n              bVar4 = false;\n              uVar42 = uStack_1d0;\n            }\n            uStack_1d0 = uVar42;\n            uVar41 = uVar37;\n            uStack_11c = uVar14;\n            if (((*(byte *)(uVar37 + 0x34) & 8) != 0) &&\n               (((*(byte *)(uVar37 + 0x34) & 1) == 0 ||\n                (iVar16 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar37 + 8),uVar37 + 0xc,uVar14)\n                , iVar16 != 0)))) {\n              if (!bVar22) goto LAB_0004e0e4;\n              ppuStack_1dc = (uint **)0x0;\n              uVar6 = uVar14;\n              bVar5 = bVar22;\n            }\n          }\nLAB_0004e0cc:\n          uVar14 = uVar6;\n          if (ppuStack_1dc != (uint **)0x0) {\n            *ppuStack_1dc = (uint *)((int)*ppuStack_1dc + uStack_1d0);\n          }\n        }\n        else {\n          uVar14 = FUN_00047924(&puStack_144,uVar41 + 8,uVar41 + 0xc,0);\n          uStack_168 = uVar14;\n          if (uVar14 == 0) {\n            if ((*(byte *)(uVar41 + 0x34) & 2) == 0) {\n              bVar4 = false;\n            }\n            else {\n              uVar14 = FUN_0004c6a8(&puStack_144,uVar41 + 8,uVar41 + 0xc);\n              uStack_168 = uVar14;\n              if (uVar14 != 0) goto LAB_0004e0e4;\n              bVar4 = false;\n            }\n            goto LAB_0004dd48;\n          }\n        }\nLAB_0004e0e4:\n        piVar17 = piStack_e0;\n        if (uVar14 != 0xffffffff) {\n          if (uVar14 == 0xfffffffe) goto LAB_0004dbf8;\n          uStack_e8 = uVar14;\n          if (((uint)ppuVar24[7] & 0x8000000) == 0) {\n            if (!bVar1) {\n              uVar6 = puVar43[0x13];\n              goto joined_r0x0004e94c;\n            }\n            pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n            iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                     piStack_e0[uVar14] + 0xc,uVar14);\n            if ((*(char *)(puVar43 + 0x16) < '\0') || (puVar43[0x13] != 0)) goto LAB_0004e170;\n          }\n          else {\n            uVar6 = puVar43[0x13];\njoined_r0x0004e94c:\n            if (uVar6 != 0) {\n              pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n              iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                       piStack_e0[uVar14] + 0xc,uVar14);\nLAB_0004e170:\n              iVar30 = iStack_e4;\n              puVar36 = puStack_f0;\n              if (uVar14 < 0x3fffffff) {\n                uStack_1f0 = uVar14 + 1;\n                piVar17 = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                if (piVar17 == (int *)0x0) goto LAB_0004dbf8;\n                if (puVar36[0x13] == 0) {\n                  piStack_15c = (int *)0x0;\n                  uStack_150 = 0;\n                  uStack_14c = 0;\n                  uStack_148 = 0;\n                  piStack_160 = piVar17;\n                  iStack_158 = iVar30;\n                  uStack_154 = uVar14;\n                  uStack_1e4 = FUN_0004d30c(&puStack_144,&piStack_160);\n                  (**(code **)(puVar46 + 0x28520))(uStack_148);\n                  if (uStack_1e4 == 0) {\n                    if (*piVar17 == 0) {\n                      (**(code **)(puVar46 + 0x28520))(piVar17);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar46 + 0x28520))(piStack_e0);\n                    uStack_e8 = uVar14;\n                    iStack_e4 = iVar30;\n                    piStack_e0 = piVar17;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  piStack_1ec = (int *)0x0;\n                }\n                else {\n                  piStack_1ec = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                  if (piStack_1ec == (int *)0x0) {\n                    (**(code **)(puVar46 + 0x28520))(piVar17);\n                    uStack_1e4 = 0xc;\n                    piVar17 = piStack_e0;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar15 = *(int *)(puVar46 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);\n                    uStack_150 = 0;\n                    uStack_14c = 0;\n                    uStack_148 = 0;\n                    piStack_160 = piVar17;\n                    piStack_15c = piStack_1ec;\n                    iStack_158 = iVar30;\n                    uStack_154 = uVar14;\n                    uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);\n                    (**(code **)(puVar46 + 0x28520))(uStack_148);\n                    if (uStack_1e4 != 0) break;\n                    if ((*piVar17 != 0) || (*piStack_1ec != 0)) {\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    piVar33 = piStack_e0 + (uStack_1f0 - 1);\n                    uStack_1f0 = uVar14;\n                    while( true ) {\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }\n                    iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       );\n                  }\n                }\n                (**(code **)(puVar46 + 0x28520))(piVar17);\n                (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                piVar17 = piStack_e0;\n                if (uStack_1e4 == 1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }\n              uStack_1e4 = 0xc;\n              goto LAB_0004dbbc;\n            }\n          }\nLAB_0004e7e0:\n          piVar17 = piStack_e0;\n          uStack_1e4 = uVar11;\n          if (local_78 == (uint *)0x0) goto LAB_0004dbbc;\n          puVar23 = ppuVar24[7];\n          if (bVar1) {\n            piVar17 = piStack_74 + 2;\n            do {\n              piVar17[1] = -1;\n              piVar33 = piVar17 + 2;\n              *piVar17 = -1;\n              piVar17 = piVar33;\n            } while (piStack_74 + (int)local_78 * 2 != piVar33);\n            *piStack_74 = 0;\n            piStack_74[1] = uStack_e8;\n            if (((uint)puVar23 & 0x8000000) == 0) {\n              if (*(char *)(puVar43 + 0x16) < '\0') {\n                bVar22 = 0 < (int)puVar43[0x13];\n              }\n              else {\n                bVar22 = false;\n              }\n              uStack_1e4 = FUN_0004bc00(ppuVar24,&puStack_144,local_78,piStack_74,bVar22);\n              piVar17 = piStack_e0;\n              if (uStack_1e4 != 0) goto LAB_0004dbbc;\n              puVar23 = (uint *)*piStack_74;\n            }\n            else {\nLAB_0004e838:\n              puVar23 = (uint *)0x0;\n            }\n            puVar36 = (uint *)0x0;\n            piVar17 = piStack_74;\n            while( true ) {\n              if (puVar23 != (uint *)0xffffffff) {\n                puVar32 = (uint *)piVar17[1];\n                puVar39 = puVar23;\n                puVar38 = puVar32;\n                if (cStack_f8 != '\0') {\n                  puVar39 = puStack_124;\n                  if (puStack_128 != puVar23) {\n                    puVar39 = *(uint **)(iStack_138 + (int)puVar23 * 4);\n                  }\n                  *piVar17 = (int)puVar39;\n                  puVar38 = puStack_124;\n                  if (puStack_128 != puVar32) {\n                    puVar38 = *(uint **)(iStack_138 + (int)puVar32 * 4);\n                  }\n                }\n                *piVar17 = (int)puStack_16c + (int)puVar39;\n                piVar17[1] = (int)puStack_16c + (int)puVar38;\n              }\n              puVar36 = (uint *)((int)puVar36 + 1);\n              piVar17 = piVar17 + 2;\n              if (puVar36 == local_78) break;\n              puVar23 = (uint *)*piVar17;\n            }\n            if (0 < iStack_180) {\n              piVar17 = piStack_74 + (int)local_78 * 2;\n              do {\n                *piVar17 = -1;\n                piVar33 = piVar17 + 2;\n                piVar17[1] = -1;\n                piVar17 = piVar33;\n              } while (piStack_74 + (iStack_180 + (int)local_78) * 2 != piVar33);\n            }\n            piVar33 = (int *)puVar43[0x21];\n            piVar17 = piStack_e0;\n            uStack_1e4 = uVar11;\n            if (piVar33 != (int *)0x0) {\n              iVar29 = 0;\n              piVar3 = piStack_74;\n              do {\n                pcVar45 = *(code **)(puVar46 + 0x28520);\n                if (iVar29 == (int)local_78 + -1) goto LAB_0004dbc0;\n                if (*piVar33 != iVar29) {\n                  piVar3[2] = piStack_74[(*piVar33 + 1) * 2];\n                  piVar3[3] = piStack_74[(*piVar33 + 1) * 2 + 1];\n                }\n                iVar29 = iVar29 + 1;\n                piVar33 = piVar33 + 1;\n                piVar3 = piVar3 + 2;\n              } while( true );\n            }\n            goto LAB_0004dbbc;\n          }\n          *piStack_74 = 0;\n          piStack_74[1] = uStack_e8;\n          goto LAB_0004e838;\n        }\nLAB_0004e2d4:\n        FUN_00044db0(&puStack_144);\n        param_4 = puStack_16c;\n      }\n      param_4 = (uint *)((int)param_4 + iVar29);\n      puStack_16c = param_4;\n      if (((int)param_4 < (int)puVar23) ||\n         (iVar30 = iStack_12c, puVar36 = puStack_88, (int)puVar38 < (int)param_4)) break;\n    } while( true );\n  }" if (parenthesized_expression "(((int)puVar23 <= (int)param_4) && ((int)param_4 <= (int)puVar38))" ( (binary_expression "((int)puVar23 <= (int)param_4) && ((int)param_4 <= (int)puVar38)" (parenthesized_expression "((int)puVar23 <= (int)param_4)" ( (binary_expression "(int)puVar23 <= (int)param_4" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "((int)param_4 <= (int)puVar38)" ( (binary_expression "(int)param_4 <= (int)puVar38" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)puVar38" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (compound_statement "{\n    ppuVar12 = &puStack_16c;\n    if (uVar6 != 0) {\n      ppuVar12 = (uint **)0x0;\n    }\n    iVar25 = *(int *)(puVar46 + 0x28244);\n    iVar13 = *(int *)(puVar46 + 0x27edc);\n    iVar26 = *(int *)(puVar46 + 0x2829c);\n    iVar30 = iStack_12c;\n    puVar36 = puStack_88;\n    do {\n      puStack_88 = puVar36;\n      if (uVar31 - 4 < 5) {\n                    \n                    \n        uVar6 = (*(code *)(puVar46 + *(int *)(iVar13 + 0x2be4 + (uVar31 - 4) * 4) + 0x2fea4))();\n        return uVar6;\n      }\n      iStack_12c = iVar30;\n      while( true ) {\n        puVar39 = (uint *)((int)param_4 - iVar30);\n        if (puStack_124 <= puVar39) {\n          uStack_1e4 = (*(code *)(iVar25 + 0x7eac))(&puStack_144,param_4,&_gp_1);\n          piVar17 = piStack_e0;\n          if (uStack_1e4 != 0) goto LAB_0004dbbc;\n          puVar39 = (uint *)((int)param_4 - iStack_12c);\n          iVar30 = iStack_12c;\n        }\n        if ((int)param_4 < (int)puVar36) {\n          cVar21 = *(char *)((int)puStack_1e0 + (uint)*(byte *)((int)puStack_140 + (int)puVar39));\n        }\n        else {\n          cVar21 = *(char *)puStack_1e0;\n        }\n        if (cVar21 != '\0') break;\n        param_4 = (uint *)((int)param_4 + iVar29);\n        puStack_16c = param_4;\n        if (((int)param_4 < (int)puVar23) || ((int)puVar38 < (int)param_4)) goto LAB_0004df68;\n      }\n      uVar11 = FUN_00047eac(&puStack_144,param_4,&_gp_1);\n      puVar36 = puStack_f0;\n      uVar6 = uStack_11c;\n      piVar17 = piStack_e0;\n      uStack_1e4 = uVar11;\n      if (uVar11 != 0) goto LAB_0004dbbc;\n      if (((uVar34 == 1) || (puStack_128 == (uint *)0x0)) || (*piStack_13c != -1)) {\n        iStack_cc = 0;\n        uStack_d8 = 0;\n        uVar41 = puStack_f0[9];\n        uStack_1d0 = uStack_11c;\n        iStack_dc = 0;\n        uStack_168 = 0;\n        if ((*(byte *)(uVar41 + 0x34) & 1) != 0) {\n          uVar14 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n          if ((uVar14 & 1) == 0) {\n            if (uVar14 == 0) goto LAB_0004dd24;\n            if ((uVar14 & 6) == 6) {\n              uVar41 = puVar36[0xc];\n            }\n            else if ((uVar14 & 2) == 0) {\n              if ((uVar14 & 4) == 0) goto LAB_0004dd24;\n              uVar41 = FUN_00046cac(&uStack_168,puVar36,*(undefined4 *)(uVar41 + 0x28),uVar14);\n            }\n            else {\n              uVar41 = puVar36[0xb];\n            }\n          }\n          else {\n            uVar41 = puVar36[10];\n          }\n          if (uVar41 == 0) goto code_r0x0004ea7c;\n        }\nLAB_0004dd24:\n        bVar4 = ppuVar12 != (uint **)0x0;\n        if ((piStack_e0 == (int *)0x0) ||\n           (uVar14 = puVar36[0x13], piStack_e0[uVar6] = uVar41, uVar14 == 0)) {\nLAB_0004dd48:\n          if (*(int *)(uVar41 + 0x34) << 4 < 0) {\n            if (((*(byte *)(uVar41 + 0x34) & 1) == 0) ||\n               (iVar30 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar41 + 8),uVar41 + 0xc,uVar6),\n               iVar30 != 0)) {\n              uVar14 = uVar6;\n              bVar5 = bVar22;\n              if (!bVar22) goto LAB_0004e0e4;\n            }\n            else {\n              uVar6 = 0xffffffff;\n              bVar5 = false;\n            }\n          }\n          else {\n            uVar6 = 0xffffffff;\n            bVar5 = false;\n          }\n          iVar30 = *(int *)(puVar46 + 0x28244);\n          iVar15 = *(int *)(puVar46 + 0x2829c);\n          uVar14 = uStack_11c;\n          ppuStack_1dc = ppuVar12;\n          while ((int)uVar14 < (int)puStack_10c) {\n            uVar40 = uVar14 + 1;\n            if ((((int)uVar40 < (int)uStack_120) || ((int)puStack_114 <= (int)uStack_120)) &&\n               (((int)uVar40 < (int)puStack_128 || ((int)puStack_114 <= (int)puStack_128)))) {\n              iVar16 = *(int *)(uVar41 + 0x34);\n              puVar36 = puStack_f0;\n            }\n            else {\n              uStack_168 = (*(code *)(iVar30 + 0x41e4))(&puStack_144,uVar14 + 2);\n              if (uStack_168 != 0) {\n                if (uStack_168 == 0xc) goto LAB_0004dbf8;\n                uVar20 = 0x46c;\n                goto LAB_0004ea9c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x34);\n              uVar14 = uStack_11c;\n              puVar36 = puStack_f0;\n            }\n            puStack_f0 = puVar36;\n            if (iVar16 << 5 < 0) {\n              iVar16 = *(int *)(uVar41 + 8);\n              if (0 < iVar16) {\n                param_4 = (uint *)0x0;\n                iVar18 = *(int *)(puVar46 + 0x28244);\n                pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7ab0);\n                do {\n                  uVar42 = *puVar36;\n                  iVar44 = *(int *)(*(int *)(uVar41 + 0xc) + (int)param_4 * 4);\n                  uVar37 = *(uint *)(uVar42 + iVar44 * 8 + 4);\n                  if ((uVar37 & 0x800) != 0) {\n                    if ((uVar37 & 0xffc000) != 0) {\n                      uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec);\n                      uVar37 = (uVar37 << 8) >> 0x16;\n                      if ((uVar37 & 4) == 0) {\n                        uVar27 = uVar19 & 1;\n                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    iVar16 = (*(code *)(iVar15 + -0x4eb0))\n                                       (uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14);\n                    if (iVar16 != 0) {\n                      if (iStack_cc < iVar16) {\n                        iStack_cc = iVar16;\n                      }\n                      iVar16 = iVar16 + uStack_11c;\n                      uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16);\n                      uVar14 = uStack_164;\n                      if (uStack_164 != 0) goto joined_r0x0004e770;\n                      piVar33 = piStack_e0 + iVar16;\n                      iVar28 = *piVar33;\n                      piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc);\n                      if (iVar28 == 0) {\n                        piStack_160 = (int *)*piVar17;\n                        piStack_15c = (int *)piVar17[1];\n                        iStack_158 = piVar17[2];\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        *piVar33 = iVar44;\n                      }\n                      else {\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }\n                      if ((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar16 = *(int *)(uVar41 + 8);\n                    uVar14 = uStack_11c;\n                  }\nLAB_0004e670:\n                  param_4 = (uint *)((int)param_4 + 1);\n                } while ((int)param_4 < iVar16);\n              }\n              uStack_168 = 0;\n            }\n            uStack_11c = uVar14 + 1;\n            uVar14 = (uint)*(byte *)((int)puStack_140 + uVar14);\n            do {\n              if (*(int *)(uVar41 + 0x2c) != 0) {\n                uVar37 = *(uint *)(*(int *)(uVar41 + 0x2c) + uVar14 * 4);\nLAB_0004ddf0:\n                if (piStack_e0 != (int *)0x0) goto LAB_0004ddfc;\n                goto LAB_0004de1c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x30);\n              if (iVar16 != 0) {\n                uVar37 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n                if ((uVar37 & 1) == 0) {\n                  uVar37 = *(uint *)(iVar16 + uVar14 * 4);\n                }\n                else {\n                  uVar37 = *(uint *)(iVar16 + (uVar14 + 0x100) * 4);\n                }\n                goto LAB_0004ddf0;\n              }\n              iVar16 = (*(code *)(iVar26 + -0x7510))(puStack_f0,uVar41);\n            } while (iVar16 != 0);\n            uStack_168 = 0xc;\n            uVar14 = uStack_168;\njoined_r0x0004e770:\n            uStack_168 = uVar14;\n            if (piStack_e0 == (int *)0x0) {\n              piVar17 = (int *)0x0;\n              goto LAB_0004dbb4;\n            }\n            uVar37 = 0;\nLAB_0004ddfc:\n            uVar37 = FUN_0004d0a8(&uStack_168,&puStack_144,uVar37);\nLAB_0004de1c:\n            uVar14 = uStack_11c;\n            if (uVar37 == 0) {\n              piVar17 = piStack_e0;\n              if (uStack_168 != 0) goto LAB_0004dbb4;\n              if ((piStack_e0 == (int *)0x0) || ((bVar5 && (!bVar22)))) break;\n              param_4 = &uStack_168;\n              do {\n                bVar2 = false;\n                piVar17 = piStack_e0 + uStack_11c;\n                uVar14 = uStack_11c;\n                do {\n                  uVar37 = uVar14 + 1;\n                  piVar17 = piVar17 + 1;\n                  if (iStack_dc < (int)uVar37) {\n                    if (bVar2) {\n                      uStack_11c = uVar14;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar2 = true;\n                  uVar14 = uVar37;\n                } while (*piVar17 == 0);\n                uStack_11c = uVar37;\n                uVar37 = FUN_0004d0a8(param_4,&puStack_144,0);\n                uVar14 = uStack_11c;\n                if (uStack_168 != 0) {\n                  if (uVar37 == 0) goto LAB_0004e0cc;\n                  break;\n                }\n              } while (uVar37 == 0);\n            }\n            uVar42 = uStack_1d0;\n            if ((bVar4) && (uVar42 = uVar40, uVar41 != uVar37)) {\n              bVar4 = false;\n              uVar42 = uStack_1d0;\n            }\n            uStack_1d0 = uVar42;\n            uVar41 = uVar37;\n            uStack_11c = uVar14;\n            if (((*(byte *)(uVar37 + 0x34) & 8) != 0) &&\n               (((*(byte *)(uVar37 + 0x34) & 1) == 0 ||\n                (iVar16 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar37 + 8),uVar37 + 0xc,uVar14)\n                , iVar16 != 0)))) {\n              if (!bVar22) goto LAB_0004e0e4;\n              ppuStack_1dc = (uint **)0x0;\n              uVar6 = uVar14;\n              bVar5 = bVar22;\n            }\n          }\nLAB_0004e0cc:\n          uVar14 = uVar6;\n          if (ppuStack_1dc != (uint **)0x0) {\n            *ppuStack_1dc = (uint *)((int)*ppuStack_1dc + uStack_1d0);\n          }\n        }\n        else {\n          uVar14 = FUN_00047924(&puStack_144,uVar41 + 8,uVar41 + 0xc,0);\n          uStack_168 = uVar14;\n          if (uVar14 == 0) {\n            if ((*(byte *)(uVar41 + 0x34) & 2) == 0) {\n              bVar4 = false;\n            }\n            else {\n              uVar14 = FUN_0004c6a8(&puStack_144,uVar41 + 8,uVar41 + 0xc);\n              uStack_168 = uVar14;\n              if (uVar14 != 0) goto LAB_0004e0e4;\n              bVar4 = false;\n            }\n            goto LAB_0004dd48;\n          }\n        }\nLAB_0004e0e4:\n        piVar17 = piStack_e0;\n        if (uVar14 != 0xffffffff) {\n          if (uVar14 == 0xfffffffe) goto LAB_0004dbf8;\n          uStack_e8 = uVar14;\n          if (((uint)ppuVar24[7] & 0x8000000) == 0) {\n            if (!bVar1) {\n              uVar6 = puVar43[0x13];\n              goto joined_r0x0004e94c;\n            }\n            pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n            iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                     piStack_e0[uVar14] + 0xc,uVar14);\n            if ((*(char *)(puVar43 + 0x16) < '\0') || (puVar43[0x13] != 0)) goto LAB_0004e170;\n          }\n          else {\n            uVar6 = puVar43[0x13];\njoined_r0x0004e94c:\n            if (uVar6 != 0) {\n              pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n              iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                       piStack_e0[uVar14] + 0xc,uVar14);\nLAB_0004e170:\n              iVar30 = iStack_e4;\n              puVar36 = puStack_f0;\n              if (uVar14 < 0x3fffffff) {\n                uStack_1f0 = uVar14 + 1;\n                piVar17 = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                if (piVar17 == (int *)0x0) goto LAB_0004dbf8;\n                if (puVar36[0x13] == 0) {\n                  piStack_15c = (int *)0x0;\n                  uStack_150 = 0;\n                  uStack_14c = 0;\n                  uStack_148 = 0;\n                  piStack_160 = piVar17;\n                  iStack_158 = iVar30;\n                  uStack_154 = uVar14;\n                  uStack_1e4 = FUN_0004d30c(&puStack_144,&piStack_160);\n                  (**(code **)(puVar46 + 0x28520))(uStack_148);\n                  if (uStack_1e4 == 0) {\n                    if (*piVar17 == 0) {\n                      (**(code **)(puVar46 + 0x28520))(piVar17);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar46 + 0x28520))(piStack_e0);\n                    uStack_e8 = uVar14;\n                    iStack_e4 = iVar30;\n                    piStack_e0 = piVar17;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  piStack_1ec = (int *)0x0;\n                }\n                else {\n                  piStack_1ec = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                  if (piStack_1ec == (int *)0x0) {\n                    (**(code **)(puVar46 + 0x28520))(piVar17);\n                    uStack_1e4 = 0xc;\n                    piVar17 = piStack_e0;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar15 = *(int *)(puVar46 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);\n                    uStack_150 = 0;\n                    uStack_14c = 0;\n                    uStack_148 = 0;\n                    piStack_160 = piVar17;\n                    piStack_15c = piStack_1ec;\n                    iStack_158 = iVar30;\n                    uStack_154 = uVar14;\n                    uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);\n                    (**(code **)(puVar46 + 0x28520))(uStack_148);\n                    if (uStack_1e4 != 0) break;\n                    if ((*piVar17 != 0) || (*piStack_1ec != 0)) {\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    piVar33 = piStack_e0 + (uStack_1f0 - 1);\n                    uStack_1f0 = uVar14;\n                    while( true ) {\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }\n                    iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       );\n                  }\n                }\n                (**(code **)(puVar46 + 0x28520))(piVar17);\n                (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                piVar17 = piStack_e0;\n                if (uStack_1e4 == 1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }\n              uStack_1e4 = 0xc;\n              goto LAB_0004dbbc;\n            }\n          }\nLAB_0004e7e0:\n          piVar17 = piStack_e0;\n          uStack_1e4 = uVar11;\n          if (local_78 == (uint *)0x0) goto LAB_0004dbbc;\n          puVar23 = ppuVar24[7];\n          if (bVar1) {\n            piVar17 = piStack_74 + 2;\n            do {\n              piVar17[1] = -1;\n              piVar33 = piVar17 + 2;\n              *piVar17 = -1;\n              piVar17 = piVar33;\n            } while (piStack_74 + (int)local_78 * 2 != piVar33);\n            *piStack_74 = 0;\n            piStack_74[1] = uStack_e8;\n            if (((uint)puVar23 & 0x8000000) == 0) {\n              if (*(char *)(puVar43 + 0x16) < '\0') {\n                bVar22 = 0 < (int)puVar43[0x13];\n              }\n              else {\n                bVar22 = false;\n              }\n              uStack_1e4 = FUN_0004bc00(ppuVar24,&puStack_144,local_78,piStack_74,bVar22);\n              piVar17 = piStack_e0;\n              if (uStack_1e4 != 0) goto LAB_0004dbbc;\n              puVar23 = (uint *)*piStack_74;\n            }\n            else {\nLAB_0004e838:\n              puVar23 = (uint *)0x0;\n            }\n            puVar36 = (uint *)0x0;\n            piVar17 = piStack_74;\n            while( true ) {\n              if (puVar23 != (uint *)0xffffffff) {\n                puVar32 = (uint *)piVar17[1];\n                puVar39 = puVar23;\n                puVar38 = puVar32;\n                if (cStack_f8 != '\0') {\n                  puVar39 = puStack_124;\n                  if (puStack_128 != puVar23) {\n                    puVar39 = *(uint **)(iStack_138 + (int)puVar23 * 4);\n                  }\n                  *piVar17 = (int)puVar39;\n                  puVar38 = puStack_124;\n                  if (puStack_128 != puVar32) {\n                    puVar38 = *(uint **)(iStack_138 + (int)puVar32 * 4);\n                  }\n                }\n                *piVar17 = (int)puStack_16c + (int)puVar39;\n                piVar17[1] = (int)puStack_16c + (int)puVar38;\n              }\n              puVar36 = (uint *)((int)puVar36 + 1);\n              piVar17 = piVar17 + 2;\n              if (puVar36 == local_78) break;\n              puVar23 = (uint *)*piVar17;\n            }\n            if (0 < iStack_180) {\n              piVar17 = piStack_74 + (int)local_78 * 2;\n              do {\n                *piVar17 = -1;\n                piVar33 = piVar17 + 2;\n                piVar17[1] = -1;\n                piVar17 = piVar33;\n              } while (piStack_74 + (iStack_180 + (int)local_78) * 2 != piVar33);\n            }\n            piVar33 = (int *)puVar43[0x21];\n            piVar17 = piStack_e0;\n            uStack_1e4 = uVar11;\n            if (piVar33 != (int *)0x0) {\n              iVar29 = 0;\n              piVar3 = piStack_74;\n              do {\n                pcVar45 = *(code **)(puVar46 + 0x28520);\n                if (iVar29 == (int)local_78 + -1) goto LAB_0004dbc0;\n                if (*piVar33 != iVar29) {\n                  piVar3[2] = piStack_74[(*piVar33 + 1) * 2];\n                  piVar3[3] = piStack_74[(*piVar33 + 1) * 2 + 1];\n                }\n                iVar29 = iVar29 + 1;\n                piVar33 = piVar33 + 1;\n                piVar3 = piVar3 + 2;\n              } while( true );\n            }\n            goto LAB_0004dbbc;\n          }\n          *piStack_74 = 0;\n          piStack_74[1] = uStack_e8;\n          goto LAB_0004e838;\n        }\nLAB_0004e2d4:\n        FUN_00044db0(&puStack_144);\n        param_4 = puStack_16c;\n      }\n      param_4 = (uint *)((int)param_4 + iVar29);\n      puStack_16c = param_4;\n      if (((int)param_4 < (int)puVar23) ||\n         (iVar30 = iStack_12c, puVar36 = puStack_88, (int)puVar38 < (int)param_4)) break;\n    } while( true );\n  }" { (expression_statement "ppuVar12 = &puStack_16c;" (assignment_expression "ppuVar12 = &puStack_16c" identifier = (pointer_expression "&puStack_16c" & identifier)) ;) (if_statement "if (uVar6 != 0) {\n      ppuVar12 = (uint **)0x0;\n    }" if (parenthesized_expression "(uVar6 != 0)" ( (binary_expression "uVar6 != 0" identifier != number_literal) )) (compound_statement "{\n      ppuVar12 = (uint **)0x0;\n    }" { (expression_statement "ppuVar12 = (uint **)0x0;" (assignment_expression "ppuVar12 = (uint **)0x0" identifier = (cast_expression "(uint **)0x0" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) })) (expression_statement "iVar25 = *(int *)(puVar46 + 0x28244);" (assignment_expression "iVar25 = *(int *)(puVar46 + 0x28244)" identifier = (pointer_expression "*(int *)(puVar46 + 0x28244)" * (cast_expression "(int *)(puVar46 + 0x28244)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar46 + 0x28244)" ( (binary_expression "puVar46 + 0x28244" identifier + number_literal) ))))) ;) (expression_statement "iVar13 = *(int *)(puVar46 + 0x27edc);" (assignment_expression "iVar13 = *(int *)(puVar46 + 0x27edc)" identifier = (pointer_expression "*(int *)(puVar46 + 0x27edc)" * (cast_expression "(int *)(puVar46 + 0x27edc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar46 + 0x27edc)" ( (binary_expression "puVar46 + 0x27edc" identifier + number_literal) ))))) ;) (expression_statement "iVar26 = *(int *)(puVar46 + 0x2829c);" (assignment_expression "iVar26 = *(int *)(puVar46 + 0x2829c)" identifier = (pointer_expression "*(int *)(puVar46 + 0x2829c)" * (cast_expression "(int *)(puVar46 + 0x2829c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar46 + 0x2829c)" ( (binary_expression "puVar46 + 0x2829c" identifier + number_literal) ))))) ;) (expression_statement "iVar30 = iStack_12c;" (assignment_expression "iVar30 = iStack_12c" identifier = identifier) ;) (expression_statement "puVar36 = puStack_88;" (assignment_expression "puVar36 = puStack_88" identifier = identifier) ;) (do_statement "do {\n      puStack_88 = puVar36;\n      if (uVar31 - 4 < 5) {\n                    \n                    \n        uVar6 = (*(code *)(puVar46 + *(int *)(iVar13 + 0x2be4 + (uVar31 - 4) * 4) + 0x2fea4))();\n        return uVar6;\n      }\n      iStack_12c = iVar30;\n      while( true ) {\n        puVar39 = (uint *)((int)param_4 - iVar30);\n        if (puStack_124 <= puVar39) {\n          uStack_1e4 = (*(code *)(iVar25 + 0x7eac))(&puStack_144,param_4,&_gp_1);\n          piVar17 = piStack_e0;\n          if (uStack_1e4 != 0) goto LAB_0004dbbc;\n          puVar39 = (uint *)((int)param_4 - iStack_12c);\n          iVar30 = iStack_12c;\n        }\n        if ((int)param_4 < (int)puVar36) {\n          cVar21 = *(char *)((int)puStack_1e0 + (uint)*(byte *)((int)puStack_140 + (int)puVar39));\n        }\n        else {\n          cVar21 = *(char *)puStack_1e0;\n        }\n        if (cVar21 != '\0') break;\n        param_4 = (uint *)((int)param_4 + iVar29);\n        puStack_16c = param_4;\n        if (((int)param_4 < (int)puVar23) || ((int)puVar38 < (int)param_4)) goto LAB_0004df68;\n      }\n      uVar11 = FUN_00047eac(&puStack_144,param_4,&_gp_1);\n      puVar36 = puStack_f0;\n      uVar6 = uStack_11c;\n      piVar17 = piStack_e0;\n      uStack_1e4 = uVar11;\n      if (uVar11 != 0) goto LAB_0004dbbc;\n      if (((uVar34 == 1) || (puStack_128 == (uint *)0x0)) || (*piStack_13c != -1)) {\n        iStack_cc = 0;\n        uStack_d8 = 0;\n        uVar41 = puStack_f0[9];\n        uStack_1d0 = uStack_11c;\n        iStack_dc = 0;\n        uStack_168 = 0;\n        if ((*(byte *)(uVar41 + 0x34) & 1) != 0) {\n          uVar14 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n          if ((uVar14 & 1) == 0) {\n            if (uVar14 == 0) goto LAB_0004dd24;\n            if ((uVar14 & 6) == 6) {\n              uVar41 = puVar36[0xc];\n            }\n            else if ((uVar14 & 2) == 0) {\n              if ((uVar14 & 4) == 0) goto LAB_0004dd24;\n              uVar41 = FUN_00046cac(&uStack_168,puVar36,*(undefined4 *)(uVar41 + 0x28),uVar14);\n            }\n            else {\n              uVar41 = puVar36[0xb];\n            }\n          }\n          else {\n            uVar41 = puVar36[10];\n          }\n          if (uVar41 == 0) goto code_r0x0004ea7c;\n        }\nLAB_0004dd24:\n        bVar4 = ppuVar12 != (uint **)0x0;\n        if ((piStack_e0 == (int *)0x0) ||\n           (uVar14 = puVar36[0x13], piStack_e0[uVar6] = uVar41, uVar14 == 0)) {\nLAB_0004dd48:\n          if (*(int *)(uVar41 + 0x34) << 4 < 0) {\n            if (((*(byte *)(uVar41 + 0x34) & 1) == 0) ||\n               (iVar30 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar41 + 8),uVar41 + 0xc,uVar6),\n               iVar30 != 0)) {\n              uVar14 = uVar6;\n              bVar5 = bVar22;\n              if (!bVar22) goto LAB_0004e0e4;\n            }\n            else {\n              uVar6 = 0xffffffff;\n              bVar5 = false;\n            }\n          }\n          else {\n            uVar6 = 0xffffffff;\n            bVar5 = false;\n          }\n          iVar30 = *(int *)(puVar46 + 0x28244);\n          iVar15 = *(int *)(puVar46 + 0x2829c);\n          uVar14 = uStack_11c;\n          ppuStack_1dc = ppuVar12;\n          while ((int)uVar14 < (int)puStack_10c) {\n            uVar40 = uVar14 + 1;\n            if ((((int)uVar40 < (int)uStack_120) || ((int)puStack_114 <= (int)uStack_120)) &&\n               (((int)uVar40 < (int)puStack_128 || ((int)puStack_114 <= (int)puStack_128)))) {\n              iVar16 = *(int *)(uVar41 + 0x34);\n              puVar36 = puStack_f0;\n            }\n            else {\n              uStack_168 = (*(code *)(iVar30 + 0x41e4))(&puStack_144,uVar14 + 2);\n              if (uStack_168 != 0) {\n                if (uStack_168 == 0xc) goto LAB_0004dbf8;\n                uVar20 = 0x46c;\n                goto LAB_0004ea9c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x34);\n              uVar14 = uStack_11c;\n              puVar36 = puStack_f0;\n            }\n            puStack_f0 = puVar36;\n            if (iVar16 << 5 < 0) {\n              iVar16 = *(int *)(uVar41 + 8);\n              if (0 < iVar16) {\n                param_4 = (uint *)0x0;\n                iVar18 = *(int *)(puVar46 + 0x28244);\n                pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7ab0);\n                do {\n                  uVar42 = *puVar36;\n                  iVar44 = *(int *)(*(int *)(uVar41 + 0xc) + (int)param_4 * 4);\n                  uVar37 = *(uint *)(uVar42 + iVar44 * 8 + 4);\n                  if ((uVar37 & 0x800) != 0) {\n                    if ((uVar37 & 0xffc000) != 0) {\n                      uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec);\n                      uVar37 = (uVar37 << 8) >> 0x16;\n                      if ((uVar37 & 4) == 0) {\n                        uVar27 = uVar19 & 1;\n                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    iVar16 = (*(code *)(iVar15 + -0x4eb0))\n                                       (uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14);\n                    if (iVar16 != 0) {\n                      if (iStack_cc < iVar16) {\n                        iStack_cc = iVar16;\n                      }\n                      iVar16 = iVar16 + uStack_11c;\n                      uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16);\n                      uVar14 = uStack_164;\n                      if (uStack_164 != 0) goto joined_r0x0004e770;\n                      piVar33 = piStack_e0 + iVar16;\n                      iVar28 = *piVar33;\n                      piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc);\n                      if (iVar28 == 0) {\n                        piStack_160 = (int *)*piVar17;\n                        piStack_15c = (int *)piVar17[1];\n                        iStack_158 = piVar17[2];\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        *piVar33 = iVar44;\n                      }\n                      else {\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }\n                      if ((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar16 = *(int *)(uVar41 + 8);\n                    uVar14 = uStack_11c;\n                  }\nLAB_0004e670:\n                  param_4 = (uint *)((int)param_4 + 1);\n                } while ((int)param_4 < iVar16);\n              }\n              uStack_168 = 0;\n            }\n            uStack_11c = uVar14 + 1;\n            uVar14 = (uint)*(byte *)((int)puStack_140 + uVar14);\n            do {\n              if (*(int *)(uVar41 + 0x2c) != 0) {\n                uVar37 = *(uint *)(*(int *)(uVar41 + 0x2c) + uVar14 * 4);\nLAB_0004ddf0:\n                if (piStack_e0 != (int *)0x0) goto LAB_0004ddfc;\n                goto LAB_0004de1c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x30);\n              if (iVar16 != 0) {\n                uVar37 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n                if ((uVar37 & 1) == 0) {\n                  uVar37 = *(uint *)(iVar16 + uVar14 * 4);\n                }\n                else {\n                  uVar37 = *(uint *)(iVar16 + (uVar14 + 0x100) * 4);\n                }\n                goto LAB_0004ddf0;\n              }\n              iVar16 = (*(code *)(iVar26 + -0x7510))(puStack_f0,uVar41);\n            } while (iVar16 != 0);\n            uStack_168 = 0xc;\n            uVar14 = uStack_168;\njoined_r0x0004e770:\n            uStack_168 = uVar14;\n            if (piStack_e0 == (int *)0x0) {\n              piVar17 = (int *)0x0;\n              goto LAB_0004dbb4;\n            }\n            uVar37 = 0;\nLAB_0004ddfc:\n            uVar37 = FUN_0004d0a8(&uStack_168,&puStack_144,uVar37);\nLAB_0004de1c:\n            uVar14 = uStack_11c;\n            if (uVar37 == 0) {\n              piVar17 = piStack_e0;\n              if (uStack_168 != 0) goto LAB_0004dbb4;\n              if ((piStack_e0 == (int *)0x0) || ((bVar5 && (!bVar22)))) break;\n              param_4 = &uStack_168;\n              do {\n                bVar2 = false;\n                piVar17 = piStack_e0 + uStack_11c;\n                uVar14 = uStack_11c;\n                do {\n                  uVar37 = uVar14 + 1;\n                  piVar17 = piVar17 + 1;\n                  if (iStack_dc < (int)uVar37) {\n                    if (bVar2) {\n                      uStack_11c = uVar14;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar2 = true;\n                  uVar14 = uVar37;\n                } while (*piVar17 == 0);\n                uStack_11c = uVar37;\n                uVar37 = FUN_0004d0a8(param_4,&puStack_144,0);\n                uVar14 = uStack_11c;\n                if (uStack_168 != 0) {\n                  if (uVar37 == 0) goto LAB_0004e0cc;\n                  break;\n                }\n              } while (uVar37 == 0);\n            }\n            uVar42 = uStack_1d0;\n            if ((bVar4) && (uVar42 = uVar40, uVar41 != uVar37)) {\n              bVar4 = false;\n              uVar42 = uStack_1d0;\n            }\n            uStack_1d0 = uVar42;\n            uVar41 = uVar37;\n            uStack_11c = uVar14;\n            if (((*(byte *)(uVar37 + 0x34) & 8) != 0) &&\n               (((*(byte *)(uVar37 + 0x34) & 1) == 0 ||\n                (iVar16 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar37 + 8),uVar37 + 0xc,uVar14)\n                , iVar16 != 0)))) {\n              if (!bVar22) goto LAB_0004e0e4;\n              ppuStack_1dc = (uint **)0x0;\n              uVar6 = uVar14;\n              bVar5 = bVar22;\n            }\n          }\nLAB_0004e0cc:\n          uVar14 = uVar6;\n          if (ppuStack_1dc != (uint **)0x0) {\n            *ppuStack_1dc = (uint *)((int)*ppuStack_1dc + uStack_1d0);\n          }\n        }\n        else {\n          uVar14 = FUN_00047924(&puStack_144,uVar41 + 8,uVar41 + 0xc,0);\n          uStack_168 = uVar14;\n          if (uVar14 == 0) {\n            if ((*(byte *)(uVar41 + 0x34) & 2) == 0) {\n              bVar4 = false;\n            }\n            else {\n              uVar14 = FUN_0004c6a8(&puStack_144,uVar41 + 8,uVar41 + 0xc);\n              uStack_168 = uVar14;\n              if (uVar14 != 0) goto LAB_0004e0e4;\n              bVar4 = false;\n            }\n            goto LAB_0004dd48;\n          }\n        }\nLAB_0004e0e4:\n        piVar17 = piStack_e0;\n        if (uVar14 != 0xffffffff) {\n          if (uVar14 == 0xfffffffe) goto LAB_0004dbf8;\n          uStack_e8 = uVar14;\n          if (((uint)ppuVar24[7] & 0x8000000) == 0) {\n            if (!bVar1) {\n              uVar6 = puVar43[0x13];\n              goto joined_r0x0004e94c;\n            }\n            pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n            iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                     piStack_e0[uVar14] + 0xc,uVar14);\n            if ((*(char *)(puVar43 + 0x16) < '\0') || (puVar43[0x13] != 0)) goto LAB_0004e170;\n          }\n          else {\n            uVar6 = puVar43[0x13];\njoined_r0x0004e94c:\n            if (uVar6 != 0) {\n              pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n              iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                       piStack_e0[uVar14] + 0xc,uVar14);\nLAB_0004e170:\n              iVar30 = iStack_e4;\n              puVar36 = puStack_f0;\n              if (uVar14 < 0x3fffffff) {\n                uStack_1f0 = uVar14 + 1;\n                piVar17 = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                if (piVar17 == (int *)0x0) goto LAB_0004dbf8;\n                if (puVar36[0x13] == 0) {\n                  piStack_15c = (int *)0x0;\n                  uStack_150 = 0;\n                  uStack_14c = 0;\n                  uStack_148 = 0;\n                  piStack_160 = piVar17;\n                  iStack_158 = iVar30;\n                  uStack_154 = uVar14;\n                  uStack_1e4 = FUN_0004d30c(&puStack_144,&piStack_160);\n                  (**(code **)(puVar46 + 0x28520))(uStack_148);\n                  if (uStack_1e4 == 0) {\n                    if (*piVar17 == 0) {\n                      (**(code **)(puVar46 + 0x28520))(piVar17);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar46 + 0x28520))(piStack_e0);\n                    uStack_e8 = uVar14;\n                    iStack_e4 = iVar30;\n                    piStack_e0 = piVar17;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  piStack_1ec = (int *)0x0;\n                }\n                else {\n                  piStack_1ec = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                  if (piStack_1ec == (int *)0x0) {\n                    (**(code **)(puVar46 + 0x28520))(piVar17);\n                    uStack_1e4 = 0xc;\n                    piVar17 = piStack_e0;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar15 = *(int *)(puVar46 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);\n                    uStack_150 = 0;\n                    uStack_14c = 0;\n                    uStack_148 = 0;\n                    piStack_160 = piVar17;\n                    piStack_15c = piStack_1ec;\n                    iStack_158 = iVar30;\n                    uStack_154 = uVar14;\n                    uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);\n                    (**(code **)(puVar46 + 0x28520))(uStack_148);\n                    if (uStack_1e4 != 0) break;\n                    if ((*piVar17 != 0) || (*piStack_1ec != 0)) {\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    piVar33 = piStack_e0 + (uStack_1f0 - 1);\n                    uStack_1f0 = uVar14;\n                    while( true ) {\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }\n                    iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       );\n                  }\n                }\n                (**(code **)(puVar46 + 0x28520))(piVar17);\n                (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                piVar17 = piStack_e0;\n                if (uStack_1e4 == 1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }\n              uStack_1e4 = 0xc;\n              goto LAB_0004dbbc;\n            }\n          }\nLAB_0004e7e0:\n          piVar17 = piStack_e0;\n          uStack_1e4 = uVar11;\n          if (local_78 == (uint *)0x0) goto LAB_0004dbbc;\n          puVar23 = ppuVar24[7];\n          if (bVar1) {\n            piVar17 = piStack_74 + 2;\n            do {\n              piVar17[1] = -1;\n              piVar33 = piVar17 + 2;\n              *piVar17 = -1;\n              piVar17 = piVar33;\n            } while (piStack_74 + (int)local_78 * 2 != piVar33);\n            *piStack_74 = 0;\n            piStack_74[1] = uStack_e8;\n            if (((uint)puVar23 & 0x8000000) == 0) {\n              if (*(char *)(puVar43 + 0x16) < '\0') {\n                bVar22 = 0 < (int)puVar43[0x13];\n              }\n              else {\n                bVar22 = false;\n              }\n              uStack_1e4 = FUN_0004bc00(ppuVar24,&puStack_144,local_78,piStack_74,bVar22);\n              piVar17 = piStack_e0;\n              if (uStack_1e4 != 0) goto LAB_0004dbbc;\n              puVar23 = (uint *)*piStack_74;\n            }\n            else {\nLAB_0004e838:\n              puVar23 = (uint *)0x0;\n            }\n            puVar36 = (uint *)0x0;\n            piVar17 = piStack_74;\n            while( true ) {\n              if (puVar23 != (uint *)0xffffffff) {\n                puVar32 = (uint *)piVar17[1];\n                puVar39 = puVar23;\n                puVar38 = puVar32;\n                if (cStack_f8 != '\0') {\n                  puVar39 = puStack_124;\n                  if (puStack_128 != puVar23) {\n                    puVar39 = *(uint **)(iStack_138 + (int)puVar23 * 4);\n                  }\n                  *piVar17 = (int)puVar39;\n                  puVar38 = puStack_124;\n                  if (puStack_128 != puVar32) {\n                    puVar38 = *(uint **)(iStack_138 + (int)puVar32 * 4);\n                  }\n                }\n                *piVar17 = (int)puStack_16c + (int)puVar39;\n                piVar17[1] = (int)puStack_16c + (int)puVar38;\n              }\n              puVar36 = (uint *)((int)puVar36 + 1);\n              piVar17 = piVar17 + 2;\n              if (puVar36 == local_78) break;\n              puVar23 = (uint *)*piVar17;\n            }\n            if (0 < iStack_180) {\n              piVar17 = piStack_74 + (int)local_78 * 2;\n              do {\n                *piVar17 = -1;\n                piVar33 = piVar17 + 2;\n                piVar17[1] = -1;\n                piVar17 = piVar33;\n              } while (piStack_74 + (iStack_180 + (int)local_78) * 2 != piVar33);\n            }\n            piVar33 = (int *)puVar43[0x21];\n            piVar17 = piStack_e0;\n            uStack_1e4 = uVar11;\n            if (piVar33 != (int *)0x0) {\n              iVar29 = 0;\n              piVar3 = piStack_74;\n              do {\n                pcVar45 = *(code **)(puVar46 + 0x28520);\n                if (iVar29 == (int)local_78 + -1) goto LAB_0004dbc0;\n                if (*piVar33 != iVar29) {\n                  piVar3[2] = piStack_74[(*piVar33 + 1) * 2];\n                  piVar3[3] = piStack_74[(*piVar33 + 1) * 2 + 1];\n                }\n                iVar29 = iVar29 + 1;\n                piVar33 = piVar33 + 1;\n                piVar3 = piVar3 + 2;\n              } while( true );\n            }\n            goto LAB_0004dbbc;\n          }\n          *piStack_74 = 0;\n          piStack_74[1] = uStack_e8;\n          goto LAB_0004e838;\n        }\nLAB_0004e2d4:\n        FUN_00044db0(&puStack_144);\n        param_4 = puStack_16c;\n      }\n      param_4 = (uint *)((int)param_4 + iVar29);\n      puStack_16c = param_4;\n      if (((int)param_4 < (int)puVar23) ||\n         (iVar30 = iStack_12c, puVar36 = puStack_88, (int)puVar38 < (int)param_4)) break;\n    } while( true );" do (compound_statement "{\n      puStack_88 = puVar36;\n      if (uVar31 - 4 < 5) {\n                    \n                    \n        uVar6 = (*(code *)(puVar46 + *(int *)(iVar13 + 0x2be4 + (uVar31 - 4) * 4) + 0x2fea4))();\n        return uVar6;\n      }\n      iStack_12c = iVar30;\n      while( true ) {\n        puVar39 = (uint *)((int)param_4 - iVar30);\n        if (puStack_124 <= puVar39) {\n          uStack_1e4 = (*(code *)(iVar25 + 0x7eac))(&puStack_144,param_4,&_gp_1);\n          piVar17 = piStack_e0;\n          if (uStack_1e4 != 0) goto LAB_0004dbbc;\n          puVar39 = (uint *)((int)param_4 - iStack_12c);\n          iVar30 = iStack_12c;\n        }\n        if ((int)param_4 < (int)puVar36) {\n          cVar21 = *(char *)((int)puStack_1e0 + (uint)*(byte *)((int)puStack_140 + (int)puVar39));\n        }\n        else {\n          cVar21 = *(char *)puStack_1e0;\n        }\n        if (cVar21 != '\0') break;\n        param_4 = (uint *)((int)param_4 + iVar29);\n        puStack_16c = param_4;\n        if (((int)param_4 < (int)puVar23) || ((int)puVar38 < (int)param_4)) goto LAB_0004df68;\n      }\n      uVar11 = FUN_00047eac(&puStack_144,param_4,&_gp_1);\n      puVar36 = puStack_f0;\n      uVar6 = uStack_11c;\n      piVar17 = piStack_e0;\n      uStack_1e4 = uVar11;\n      if (uVar11 != 0) goto LAB_0004dbbc;\n      if (((uVar34 == 1) || (puStack_128 == (uint *)0x0)) || (*piStack_13c != -1)) {\n        iStack_cc = 0;\n        uStack_d8 = 0;\n        uVar41 = puStack_f0[9];\n        uStack_1d0 = uStack_11c;\n        iStack_dc = 0;\n        uStack_168 = 0;\n        if ((*(byte *)(uVar41 + 0x34) & 1) != 0) {\n          uVar14 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n          if ((uVar14 & 1) == 0) {\n            if (uVar14 == 0) goto LAB_0004dd24;\n            if ((uVar14 & 6) == 6) {\n              uVar41 = puVar36[0xc];\n            }\n            else if ((uVar14 & 2) == 0) {\n              if ((uVar14 & 4) == 0) goto LAB_0004dd24;\n              uVar41 = FUN_00046cac(&uStack_168,puVar36,*(undefined4 *)(uVar41 + 0x28),uVar14);\n            }\n            else {\n              uVar41 = puVar36[0xb];\n            }\n          }\n          else {\n            uVar41 = puVar36[10];\n          }\n          if (uVar41 == 0) goto code_r0x0004ea7c;\n        }\nLAB_0004dd24:\n        bVar4 = ppuVar12 != (uint **)0x0;\n        if ((piStack_e0 == (int *)0x0) ||\n           (uVar14 = puVar36[0x13], piStack_e0[uVar6] = uVar41, uVar14 == 0)) {\nLAB_0004dd48:\n          if (*(int *)(uVar41 + 0x34) << 4 < 0) {\n            if (((*(byte *)(uVar41 + 0x34) & 1) == 0) ||\n               (iVar30 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar41 + 8),uVar41 + 0xc,uVar6),\n               iVar30 != 0)) {\n              uVar14 = uVar6;\n              bVar5 = bVar22;\n              if (!bVar22) goto LAB_0004e0e4;\n            }\n            else {\n              uVar6 = 0xffffffff;\n              bVar5 = false;\n            }\n          }\n          else {\n            uVar6 = 0xffffffff;\n            bVar5 = false;\n          }\n          iVar30 = *(int *)(puVar46 + 0x28244);\n          iVar15 = *(int *)(puVar46 + 0x2829c);\n          uVar14 = uStack_11c;\n          ppuStack_1dc = ppuVar12;\n          while ((int)uVar14 < (int)puStack_10c) {\n            uVar40 = uVar14 + 1;\n            if ((((int)uVar40 < (int)uStack_120) || ((int)puStack_114 <= (int)uStack_120)) &&\n               (((int)uVar40 < (int)puStack_128 || ((int)puStack_114 <= (int)puStack_128)))) {\n              iVar16 = *(int *)(uVar41 + 0x34);\n              puVar36 = puStack_f0;\n            }\n            else {\n              uStack_168 = (*(code *)(iVar30 + 0x41e4))(&puStack_144,uVar14 + 2);\n              if (uStack_168 != 0) {\n                if (uStack_168 == 0xc) goto LAB_0004dbf8;\n                uVar20 = 0x46c;\n                goto LAB_0004ea9c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x34);\n              uVar14 = uStack_11c;\n              puVar36 = puStack_f0;\n            }\n            puStack_f0 = puVar36;\n            if (iVar16 << 5 < 0) {\n              iVar16 = *(int *)(uVar41 + 8);\n              if (0 < iVar16) {\n                param_4 = (uint *)0x0;\n                iVar18 = *(int *)(puVar46 + 0x28244);\n                pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7ab0);\n                do {\n                  uVar42 = *puVar36;\n                  iVar44 = *(int *)(*(int *)(uVar41 + 0xc) + (int)param_4 * 4);\n                  uVar37 = *(uint *)(uVar42 + iVar44 * 8 + 4);\n                  if ((uVar37 & 0x800) != 0) {\n                    if ((uVar37 & 0xffc000) != 0) {\n                      uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec);\n                      uVar37 = (uVar37 << 8) >> 0x16;\n                      if ((uVar37 & 4) == 0) {\n                        uVar27 = uVar19 & 1;\n                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    iVar16 = (*(code *)(iVar15 + -0x4eb0))\n                                       (uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14);\n                    if (iVar16 != 0) {\n                      if (iStack_cc < iVar16) {\n                        iStack_cc = iVar16;\n                      }\n                      iVar16 = iVar16 + uStack_11c;\n                      uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16);\n                      uVar14 = uStack_164;\n                      if (uStack_164 != 0) goto joined_r0x0004e770;\n                      piVar33 = piStack_e0 + iVar16;\n                      iVar28 = *piVar33;\n                      piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc);\n                      if (iVar28 == 0) {\n                        piStack_160 = (int *)*piVar17;\n                        piStack_15c = (int *)piVar17[1];\n                        iStack_158 = piVar17[2];\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        *piVar33 = iVar44;\n                      }\n                      else {\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }\n                      if ((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar16 = *(int *)(uVar41 + 8);\n                    uVar14 = uStack_11c;\n                  }\nLAB_0004e670:\n                  param_4 = (uint *)((int)param_4 + 1);\n                } while ((int)param_4 < iVar16);\n              }\n              uStack_168 = 0;\n            }\n            uStack_11c = uVar14 + 1;\n            uVar14 = (uint)*(byte *)((int)puStack_140 + uVar14);\n            do {\n              if (*(int *)(uVar41 + 0x2c) != 0) {\n                uVar37 = *(uint *)(*(int *)(uVar41 + 0x2c) + uVar14 * 4);\nLAB_0004ddf0:\n                if (piStack_e0 != (int *)0x0) goto LAB_0004ddfc;\n                goto LAB_0004de1c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x30);\n              if (iVar16 != 0) {\n                uVar37 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n                if ((uVar37 & 1) == 0) {\n                  uVar37 = *(uint *)(iVar16 + uVar14 * 4);\n                }\n                else {\n                  uVar37 = *(uint *)(iVar16 + (uVar14 + 0x100) * 4);\n                }\n                goto LAB_0004ddf0;\n              }\n              iVar16 = (*(code *)(iVar26 + -0x7510))(puStack_f0,uVar41);\n            } while (iVar16 != 0);\n            uStack_168 = 0xc;\n            uVar14 = uStack_168;\njoined_r0x0004e770:\n            uStack_168 = uVar14;\n            if (piStack_e0 == (int *)0x0) {\n              piVar17 = (int *)0x0;\n              goto LAB_0004dbb4;\n            }\n            uVar37 = 0;\nLAB_0004ddfc:\n            uVar37 = FUN_0004d0a8(&uStack_168,&puStack_144,uVar37);\nLAB_0004de1c:\n            uVar14 = uStack_11c;\n            if (uVar37 == 0) {\n              piVar17 = piStack_e0;\n              if (uStack_168 != 0) goto LAB_0004dbb4;\n              if ((piStack_e0 == (int *)0x0) || ((bVar5 && (!bVar22)))) break;\n              param_4 = &uStack_168;\n              do {\n                bVar2 = false;\n                piVar17 = piStack_e0 + uStack_11c;\n                uVar14 = uStack_11c;\n                do {\n                  uVar37 = uVar14 + 1;\n                  piVar17 = piVar17 + 1;\n                  if (iStack_dc < (int)uVar37) {\n                    if (bVar2) {\n                      uStack_11c = uVar14;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar2 = true;\n                  uVar14 = uVar37;\n                } while (*piVar17 == 0);\n                uStack_11c = uVar37;\n                uVar37 = FUN_0004d0a8(param_4,&puStack_144,0);\n                uVar14 = uStack_11c;\n                if (uStack_168 != 0) {\n                  if (uVar37 == 0) goto LAB_0004e0cc;\n                  break;\n                }\n              } while (uVar37 == 0);\n            }\n            uVar42 = uStack_1d0;\n            if ((bVar4) && (uVar42 = uVar40, uVar41 != uVar37)) {\n              bVar4 = false;\n              uVar42 = uStack_1d0;\n            }\n            uStack_1d0 = uVar42;\n            uVar41 = uVar37;\n            uStack_11c = uVar14;\n            if (((*(byte *)(uVar37 + 0x34) & 8) != 0) &&\n               (((*(byte *)(uVar37 + 0x34) & 1) == 0 ||\n                (iVar16 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar37 + 8),uVar37 + 0xc,uVar14)\n                , iVar16 != 0)))) {\n              if (!bVar22) goto LAB_0004e0e4;\n              ppuStack_1dc = (uint **)0x0;\n              uVar6 = uVar14;\n              bVar5 = bVar22;\n            }\n          }\nLAB_0004e0cc:\n          uVar14 = uVar6;\n          if (ppuStack_1dc != (uint **)0x0) {\n            *ppuStack_1dc = (uint *)((int)*ppuStack_1dc + uStack_1d0);\n          }\n        }\n        else {\n          uVar14 = FUN_00047924(&puStack_144,uVar41 + 8,uVar41 + 0xc,0);\n          uStack_168 = uVar14;\n          if (uVar14 == 0) {\n            if ((*(byte *)(uVar41 + 0x34) & 2) == 0) {\n              bVar4 = false;\n            }\n            else {\n              uVar14 = FUN_0004c6a8(&puStack_144,uVar41 + 8,uVar41 + 0xc);\n              uStack_168 = uVar14;\n              if (uVar14 != 0) goto LAB_0004e0e4;\n              bVar4 = false;\n            }\n            goto LAB_0004dd48;\n          }\n        }\nLAB_0004e0e4:\n        piVar17 = piStack_e0;\n        if (uVar14 != 0xffffffff) {\n          if (uVar14 == 0xfffffffe) goto LAB_0004dbf8;\n          uStack_e8 = uVar14;\n          if (((uint)ppuVar24[7] & 0x8000000) == 0) {\n            if (!bVar1) {\n              uVar6 = puVar43[0x13];\n              goto joined_r0x0004e94c;\n            }\n            pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n            iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                     piStack_e0[uVar14] + 0xc,uVar14);\n            if ((*(char *)(puVar43 + 0x16) < '\0') || (puVar43[0x13] != 0)) goto LAB_0004e170;\n          }\n          else {\n            uVar6 = puVar43[0x13];\njoined_r0x0004e94c:\n            if (uVar6 != 0) {\n              pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n              iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                       piStack_e0[uVar14] + 0xc,uVar14);\nLAB_0004e170:\n              iVar30 = iStack_e4;\n              puVar36 = puStack_f0;\n              if (uVar14 < 0x3fffffff) {\n                uStack_1f0 = uVar14 + 1;\n                piVar17 = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                if (piVar17 == (int *)0x0) goto LAB_0004dbf8;\n                if (puVar36[0x13] == 0) {\n                  piStack_15c = (int *)0x0;\n                  uStack_150 = 0;\n                  uStack_14c = 0;\n                  uStack_148 = 0;\n                  piStack_160 = piVar17;\n                  iStack_158 = iVar30;\n                  uStack_154 = uVar14;\n                  uStack_1e4 = FUN_0004d30c(&puStack_144,&piStack_160);\n                  (**(code **)(puVar46 + 0x28520))(uStack_148);\n                  if (uStack_1e4 == 0) {\n                    if (*piVar17 == 0) {\n                      (**(code **)(puVar46 + 0x28520))(piVar17);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar46 + 0x28520))(piStack_e0);\n                    uStack_e8 = uVar14;\n                    iStack_e4 = iVar30;\n                    piStack_e0 = piVar17;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  piStack_1ec = (int *)0x0;\n                }\n                else {\n                  piStack_1ec = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                  if (piStack_1ec == (int *)0x0) {\n                    (**(code **)(puVar46 + 0x28520))(piVar17);\n                    uStack_1e4 = 0xc;\n                    piVar17 = piStack_e0;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar15 = *(int *)(puVar46 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);\n                    uStack_150 = 0;\n                    uStack_14c = 0;\n                    uStack_148 = 0;\n                    piStack_160 = piVar17;\n                    piStack_15c = piStack_1ec;\n                    iStack_158 = iVar30;\n                    uStack_154 = uVar14;\n                    uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);\n                    (**(code **)(puVar46 + 0x28520))(uStack_148);\n                    if (uStack_1e4 != 0) break;\n                    if ((*piVar17 != 0) || (*piStack_1ec != 0)) {\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    piVar33 = piStack_e0 + (uStack_1f0 - 1);\n                    uStack_1f0 = uVar14;\n                    while( true ) {\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }\n                    iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       );\n                  }\n                }\n                (**(code **)(puVar46 + 0x28520))(piVar17);\n                (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                piVar17 = piStack_e0;\n                if (uStack_1e4 == 1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }\n              uStack_1e4 = 0xc;\n              goto LAB_0004dbbc;\n            }\n          }\nLAB_0004e7e0:\n          piVar17 = piStack_e0;\n          uStack_1e4 = uVar11;\n          if (local_78 == (uint *)0x0) goto LAB_0004dbbc;\n          puVar23 = ppuVar24[7];\n          if (bVar1) {\n            piVar17 = piStack_74 + 2;\n            do {\n              piVar17[1] = -1;\n              piVar33 = piVar17 + 2;\n              *piVar17 = -1;\n              piVar17 = piVar33;\n            } while (piStack_74 + (int)local_78 * 2 != piVar33);\n            *piStack_74 = 0;\n            piStack_74[1] = uStack_e8;\n            if (((uint)puVar23 & 0x8000000) == 0) {\n              if (*(char *)(puVar43 + 0x16) < '\0') {\n                bVar22 = 0 < (int)puVar43[0x13];\n              }\n              else {\n                bVar22 = false;\n              }\n              uStack_1e4 = FUN_0004bc00(ppuVar24,&puStack_144,local_78,piStack_74,bVar22);\n              piVar17 = piStack_e0;\n              if (uStack_1e4 != 0) goto LAB_0004dbbc;\n              puVar23 = (uint *)*piStack_74;\n            }\n            else {\nLAB_0004e838:\n              puVar23 = (uint *)0x0;\n            }\n            puVar36 = (uint *)0x0;\n            piVar17 = piStack_74;\n            while( true ) {\n              if (puVar23 != (uint *)0xffffffff) {\n                puVar32 = (uint *)piVar17[1];\n                puVar39 = puVar23;\n                puVar38 = puVar32;\n                if (cStack_f8 != '\0') {\n                  puVar39 = puStack_124;\n                  if (puStack_128 != puVar23) {\n                    puVar39 = *(uint **)(iStack_138 + (int)puVar23 * 4);\n                  }\n                  *piVar17 = (int)puVar39;\n                  puVar38 = puStack_124;\n                  if (puStack_128 != puVar32) {\n                    puVar38 = *(uint **)(iStack_138 + (int)puVar32 * 4);\n                  }\n                }\n                *piVar17 = (int)puStack_16c + (int)puVar39;\n                piVar17[1] = (int)puStack_16c + (int)puVar38;\n              }\n              puVar36 = (uint *)((int)puVar36 + 1);\n              piVar17 = piVar17 + 2;\n              if (puVar36 == local_78) break;\n              puVar23 = (uint *)*piVar17;\n            }\n            if (0 < iStack_180) {\n              piVar17 = piStack_74 + (int)local_78 * 2;\n              do {\n                *piVar17 = -1;\n                piVar33 = piVar17 + 2;\n                piVar17[1] = -1;\n                piVar17 = piVar33;\n              } while (piStack_74 + (iStack_180 + (int)local_78) * 2 != piVar33);\n            }\n            piVar33 = (int *)puVar43[0x21];\n            piVar17 = piStack_e0;\n            uStack_1e4 = uVar11;\n            if (piVar33 != (int *)0x0) {\n              iVar29 = 0;\n              piVar3 = piStack_74;\n              do {\n                pcVar45 = *(code **)(puVar46 + 0x28520);\n                if (iVar29 == (int)local_78 + -1) goto LAB_0004dbc0;\n                if (*piVar33 != iVar29) {\n                  piVar3[2] = piStack_74[(*piVar33 + 1) * 2];\n                  piVar3[3] = piStack_74[(*piVar33 + 1) * 2 + 1];\n                }\n                iVar29 = iVar29 + 1;\n                piVar33 = piVar33 + 1;\n                piVar3 = piVar3 + 2;\n              } while( true );\n            }\n            goto LAB_0004dbbc;\n          }\n          *piStack_74 = 0;\n          piStack_74[1] = uStack_e8;\n          goto LAB_0004e838;\n        }\nLAB_0004e2d4:\n        FUN_00044db0(&puStack_144);\n        param_4 = puStack_16c;\n      }\n      param_4 = (uint *)((int)param_4 + iVar29);\n      puStack_16c = param_4;\n      if (((int)param_4 < (int)puVar23) ||\n         (iVar30 = iStack_12c, puVar36 = puStack_88, (int)puVar38 < (int)param_4)) break;\n    }" { (expression_statement "puStack_88 = puVar36;" (assignment_expression "puStack_88 = puVar36" identifier = identifier) ;) (if_statement "if (uVar31 - 4 < 5) {\n                    \n                    \n        uVar6 = (*(code *)(puVar46 + *(int *)(iVar13 + 0x2be4 + (uVar31 - 4) * 4) + 0x2fea4))();\n        return uVar6;\n      }" if (parenthesized_expression "(uVar31 - 4 < 5)" ( (binary_expression "uVar31 - 4 < 5" (binary_expression "uVar31 - 4" identifier - number_literal) < number_literal) )) (compound_statement "{\n                    \n                    \n        uVar6 = (*(code *)(puVar46 + *(int *)(iVar13 + 0x2be4 + (uVar31 - 4) * 4) + 0x2fea4))();\n        return uVar6;\n      }" { (expression_statement "uVar6 = (*(code *)(puVar46 + *(int *)(iVar13 + 0x2be4 + (uVar31 - 4) * 4) + 0x2fea4))();" (assignment_expression "uVar6 = (*(code *)(puVar46 + *(int *)(iVar13 + 0x2be4 + (uVar31 - 4) * 4) + 0x2fea4))()" identifier = (call_expression "(*(code *)(puVar46 + *(int *)(iVar13 + 0x2be4 + (uVar31 - 4) * 4) + 0x2fea4))()" (parenthesized_expression "(*(code *)(puVar46 + *(int *)(iVar13 + 0x2be4 + (uVar31 - 4) * 4) + 0x2fea4))" ( (pointer_expression "*(code *)(puVar46 + *(int *)(iVar13 + 0x2be4 + (uVar31 - 4) * 4) + 0x2fea4)" * (cast_expression "(code *)(puVar46 + *(int *)(iVar13 + 0x2be4 + (uVar31 - 4) * 4) + 0x2fea4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar46 + *(int *)(iVar13 + 0x2be4 + (uVar31 - 4) * 4) + 0x2fea4)" ( (binary_expression "puVar46 + *(int *)(iVar13 + 0x2be4 + (uVar31 - 4) * 4) + 0x2fea4" (binary_expression "puVar46 + *(int *)(iVar13 + 0x2be4 + (uVar31 - 4) * 4)" identifier + (pointer_expression "*(int *)(iVar13 + 0x2be4 + (uVar31 - 4) * 4)" * (cast_expression "(int *)(iVar13 + 0x2be4 + (uVar31 - 4) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x2be4 + (uVar31 - 4) * 4)" ( (binary_expression "iVar13 + 0x2be4 + (uVar31 - 4) * 4" (binary_expression "iVar13 + 0x2be4" identifier + number_literal) + (binary_expression "(uVar31 - 4) * 4" (parenthesized_expression "(uVar31 - 4)" ( (binary_expression "uVar31 - 4" identifier - number_literal) )) * number_literal)) ))))) + number_literal) )))) )) (argument_list "()" ( )))) ;) (return_statement "return uVar6;" return identifier ;) })) (expression_statement "iStack_12c = iVar30;" (assignment_expression "iStack_12c = iVar30" identifier = identifier) ;) (while_statement "while( true ) {\n        puVar39 = (uint *)((int)param_4 - iVar30);\n        if (puStack_124 <= puVar39) {\n          uStack_1e4 = (*(code *)(iVar25 + 0x7eac))(&puStack_144,param_4,&_gp_1);\n          piVar17 = piStack_e0;\n          if (uStack_1e4 != 0) goto LAB_0004dbbc;\n          puVar39 = (uint *)((int)param_4 - iStack_12c);\n          iVar30 = iStack_12c;\n        }\n        if ((int)param_4 < (int)puVar36) {\n          cVar21 = *(char *)((int)puStack_1e0 + (uint)*(byte *)((int)puStack_140 + (int)puVar39));\n        }\n        else {\n          cVar21 = *(char *)puStack_1e0;\n        }\n        if (cVar21 != '\0') break;\n        param_4 = (uint *)((int)param_4 + iVar29);\n        puStack_16c = param_4;\n        if (((int)param_4 < (int)puVar23) || ((int)puVar38 < (int)param_4)) goto LAB_0004df68;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        puVar39 = (uint *)((int)param_4 - iVar30);\n        if (puStack_124 <= puVar39) {\n          uStack_1e4 = (*(code *)(iVar25 + 0x7eac))(&puStack_144,param_4,&_gp_1);\n          piVar17 = piStack_e0;\n          if (uStack_1e4 != 0) goto LAB_0004dbbc;\n          puVar39 = (uint *)((int)param_4 - iStack_12c);\n          iVar30 = iStack_12c;\n        }\n        if ((int)param_4 < (int)puVar36) {\n          cVar21 = *(char *)((int)puStack_1e0 + (uint)*(byte *)((int)puStack_140 + (int)puVar39));\n        }\n        else {\n          cVar21 = *(char *)puStack_1e0;\n        }\n        if (cVar21 != '\0') break;\n        param_4 = (uint *)((int)param_4 + iVar29);\n        puStack_16c = param_4;\n        if (((int)param_4 < (int)puVar23) || ((int)puVar38 < (int)param_4)) goto LAB_0004df68;\n      }" { (expression_statement "puVar39 = (uint *)((int)param_4 - iVar30);" (assignment_expression "puVar39 = (uint *)((int)param_4 - iVar30)" identifier = (cast_expression "(uint *)((int)param_4 - iVar30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_4 - iVar30)" ( (binary_expression "(int)param_4 - iVar30" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )))) ;) (if_statement "if (puStack_124 <= puVar39) {\n          uStack_1e4 = (*(code *)(iVar25 + 0x7eac))(&puStack_144,param_4,&_gp_1);\n          piVar17 = piStack_e0;\n          if (uStack_1e4 != 0) goto LAB_0004dbbc;\n          puVar39 = (uint *)((int)param_4 - iStack_12c);\n          iVar30 = iStack_12c;\n        }" if (parenthesized_expression "(puStack_124 <= puVar39)" ( (binary_expression "puStack_124 <= puVar39" identifier <= identifier) )) (compound_statement "{\n          uStack_1e4 = (*(code *)(iVar25 + 0x7eac))(&puStack_144,param_4,&_gp_1);\n          piVar17 = piStack_e0;\n          if (uStack_1e4 != 0) goto LAB_0004dbbc;\n          puVar39 = (uint *)((int)param_4 - iStack_12c);\n          iVar30 = iStack_12c;\n        }" { (expression_statement "uStack_1e4 = (*(code *)(iVar25 + 0x7eac))(&puStack_144,param_4,&_gp_1);" (assignment_expression "uStack_1e4 = (*(code *)(iVar25 + 0x7eac))(&puStack_144,param_4,&_gp_1)" identifier = (call_expression "(*(code *)(iVar25 + 0x7eac))(&puStack_144,param_4,&_gp_1)" (parenthesized_expression "(*(code *)(iVar25 + 0x7eac))" ( (pointer_expression "*(code *)(iVar25 + 0x7eac)" * (cast_expression "(code *)(iVar25 + 0x7eac)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0x7eac)" ( (binary_expression "iVar25 + 0x7eac" identifier + number_literal) )))) )) (argument_list "(&puStack_144,param_4,&_gp_1)" ( (pointer_expression "&puStack_144" & identifier) , identifier , (pointer_expression "&_gp_1" & identifier) )))) ;) (expression_statement "piVar17 = piStack_e0;" (assignment_expression "piVar17 = piStack_e0" identifier = identifier) ;) (if_statement "if (uStack_1e4 != 0) goto LAB_0004dbbc;" if (parenthesized_expression "(uStack_1e4 != 0)" ( (binary_expression "uStack_1e4 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0004dbbc;" goto statement_identifier ;)) (expression_statement "puVar39 = (uint *)((int)param_4 - iStack_12c);" (assignment_expression "puVar39 = (uint *)((int)param_4 - iStack_12c)" identifier = (cast_expression "(uint *)((int)param_4 - iStack_12c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_4 - iStack_12c)" ( (binary_expression "(int)param_4 - iStack_12c" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )))) ;) (expression_statement "iVar30 = iStack_12c;" (assignment_expression "iVar30 = iStack_12c" identifier = identifier) ;) })) (if_statement "if ((int)param_4 < (int)puVar36) {\n          cVar21 = *(char *)((int)puStack_1e0 + (uint)*(byte *)((int)puStack_140 + (int)puVar39));\n        }\n        else {\n          cVar21 = *(char *)puStack_1e0;\n        }" if (parenthesized_expression "((int)param_4 < (int)puVar36)" ( (binary_expression "(int)param_4 < (int)puVar36" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)puVar36" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          cVar21 = *(char *)((int)puStack_1e0 + (uint)*(byte *)((int)puStack_140 + (int)puVar39));\n        }" { (expression_statement "cVar21 = *(char *)((int)puStack_1e0 + (uint)*(byte *)((int)puStack_140 + (int)puVar39));" (assignment_expression "cVar21 = *(char *)((int)puStack_1e0 + (uint)*(byte *)((int)puStack_140 + (int)puVar39))" identifier = (pointer_expression "*(char *)((int)puStack_1e0 + (uint)*(byte *)((int)puStack_140 + (int)puVar39))" * (cast_expression "(char *)((int)puStack_1e0 + (uint)*(byte *)((int)puStack_140 + (int)puVar39))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puStack_1e0 + (uint)*(byte *)((int)puStack_140 + (int)puVar39))" ( (binary_expression "(int)puStack_1e0 + (uint)*(byte *)((int)puStack_140 + (int)puVar39)" (cast_expression "(int)puStack_1e0" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)*(byte *)((int)puStack_140 + (int)puVar39)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)((int)puStack_140 + (int)puVar39)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puStack_140 + (int)puVar39)" ( (binary_expression "(int)puStack_140 + (int)puVar39" (cast_expression "(int)puStack_140" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)puVar39" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ))))) ;) }) (else_clause "else {\n          cVar21 = *(char *)puStack_1e0;\n        }" else (compound_statement "{\n          cVar21 = *(char *)puStack_1e0;\n        }" { (expression_statement "cVar21 = *(char *)puStack_1e0;" (assignment_expression "cVar21 = *(char *)puStack_1e0" identifier = (pointer_expression "*(char *)puStack_1e0" * (cast_expression "(char *)puStack_1e0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) }))) (if_statement "if (cVar21 != '\0') break;" if (parenthesized_expression "(cVar21 != '\0')" ( (binary_expression "cVar21 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (break_statement "break;" break ;)) (expression_statement "param_4 = (uint *)((int)param_4 + iVar29);" (assignment_expression "param_4 = (uint *)((int)param_4 + iVar29)" identifier = (cast_expression "(uint *)((int)param_4 + iVar29)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_4 + iVar29)" ( (binary_expression "(int)param_4 + iVar29" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "puStack_16c = param_4;" (assignment_expression "puStack_16c = param_4" identifier = identifier) ;) (if_statement "if (((int)param_4 < (int)puVar23) || ((int)puVar38 < (int)param_4)) goto LAB_0004df68;" if (parenthesized_expression "(((int)param_4 < (int)puVar23) || ((int)puVar38 < (int)param_4))" ( (binary_expression "((int)param_4 < (int)puVar23) || ((int)puVar38 < (int)param_4)" (parenthesized_expression "((int)param_4 < (int)puVar23)" ( (binary_expression "(int)param_4 < (int)puVar23" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier)) )) || (parenthesized_expression "((int)puVar38 < (int)param_4)" ( (binary_expression "(int)puVar38 < (int)param_4" (cast_expression "(int)puVar38" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (goto_statement "goto LAB_0004df68;" goto statement_identifier ;)) })) (expression_statement "uVar11 = FUN_00047eac(&puStack_144,param_4,&_gp_1);" (assignment_expression "uVar11 = FUN_00047eac(&puStack_144,param_4,&_gp_1)" identifier = (call_expression "FUN_00047eac(&puStack_144,param_4,&_gp_1)" identifier (argument_list "(&puStack_144,param_4,&_gp_1)" ( (pointer_expression "&puStack_144" & identifier) , identifier , (pointer_expression "&_gp_1" & identifier) )))) ;) (expression_statement "puVar36 = puStack_f0;" (assignment_expression "puVar36 = puStack_f0" identifier = identifier) ;) (expression_statement "uVar6 = uStack_11c;" (assignment_expression "uVar6 = uStack_11c" identifier = identifier) ;) (expression_statement "piVar17 = piStack_e0;" (assignment_expression "piVar17 = piStack_e0" identifier = identifier) ;) (expression_statement "uStack_1e4 = uVar11;" (assignment_expression "uStack_1e4 = uVar11" identifier = identifier) ;) (if_statement "if (uVar11 != 0) goto LAB_0004dbbc;" if (parenthesized_expression "(uVar11 != 0)" ( (binary_expression "uVar11 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0004dbbc;" goto statement_identifier ;)) (if_statement "if (((uVar34 == 1) || (puStack_128 == (uint *)0x0)) || (*piStack_13c != -1)) {\n        iStack_cc = 0;\n        uStack_d8 = 0;\n        uVar41 = puStack_f0[9];\n        uStack_1d0 = uStack_11c;\n        iStack_dc = 0;\n        uStack_168 = 0;\n        if ((*(byte *)(uVar41 + 0x34) & 1) != 0) {\n          uVar14 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n          if ((uVar14 & 1) == 0) {\n            if (uVar14 == 0) goto LAB_0004dd24;\n            if ((uVar14 & 6) == 6) {\n              uVar41 = puVar36[0xc];\n            }\n            else if ((uVar14 & 2) == 0) {\n              if ((uVar14 & 4) == 0) goto LAB_0004dd24;\n              uVar41 = FUN_00046cac(&uStack_168,puVar36,*(undefined4 *)(uVar41 + 0x28),uVar14);\n            }\n            else {\n              uVar41 = puVar36[0xb];\n            }\n          }\n          else {\n            uVar41 = puVar36[10];\n          }\n          if (uVar41 == 0) goto code_r0x0004ea7c;\n        }\nLAB_0004dd24:\n        bVar4 = ppuVar12 != (uint **)0x0;\n        if ((piStack_e0 == (int *)0x0) ||\n           (uVar14 = puVar36[0x13], piStack_e0[uVar6] = uVar41, uVar14 == 0)) {\nLAB_0004dd48:\n          if (*(int *)(uVar41 + 0x34) << 4 < 0) {\n            if (((*(byte *)(uVar41 + 0x34) & 1) == 0) ||\n               (iVar30 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar41 + 8),uVar41 + 0xc,uVar6),\n               iVar30 != 0)) {\n              uVar14 = uVar6;\n              bVar5 = bVar22;\n              if (!bVar22) goto LAB_0004e0e4;\n            }\n            else {\n              uVar6 = 0xffffffff;\n              bVar5 = false;\n            }\n          }\n          else {\n            uVar6 = 0xffffffff;\n            bVar5 = false;\n          }\n          iVar30 = *(int *)(puVar46 + 0x28244);\n          iVar15 = *(int *)(puVar46 + 0x2829c);\n          uVar14 = uStack_11c;\n          ppuStack_1dc = ppuVar12;\n          while ((int)uVar14 < (int)puStack_10c) {\n            uVar40 = uVar14 + 1;\n            if ((((int)uVar40 < (int)uStack_120) || ((int)puStack_114 <= (int)uStack_120)) &&\n               (((int)uVar40 < (int)puStack_128 || ((int)puStack_114 <= (int)puStack_128)))) {\n              iVar16 = *(int *)(uVar41 + 0x34);\n              puVar36 = puStack_f0;\n            }\n            else {\n              uStack_168 = (*(code *)(iVar30 + 0x41e4))(&puStack_144,uVar14 + 2);\n              if (uStack_168 != 0) {\n                if (uStack_168 == 0xc) goto LAB_0004dbf8;\n                uVar20 = 0x46c;\n                goto LAB_0004ea9c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x34);\n              uVar14 = uStack_11c;\n              puVar36 = puStack_f0;\n            }\n            puStack_f0 = puVar36;\n            if (iVar16 << 5 < 0) {\n              iVar16 = *(int *)(uVar41 + 8);\n              if (0 < iVar16) {\n                param_4 = (uint *)0x0;\n                iVar18 = *(int *)(puVar46 + 0x28244);\n                pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7ab0);\n                do {\n                  uVar42 = *puVar36;\n                  iVar44 = *(int *)(*(int *)(uVar41 + 0xc) + (int)param_4 * 4);\n                  uVar37 = *(uint *)(uVar42 + iVar44 * 8 + 4);\n                  if ((uVar37 & 0x800) != 0) {\n                    if ((uVar37 & 0xffc000) != 0) {\n                      uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec);\n                      uVar37 = (uVar37 << 8) >> 0x16;\n                      if ((uVar37 & 4) == 0) {\n                        uVar27 = uVar19 & 1;\n                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    iVar16 = (*(code *)(iVar15 + -0x4eb0))\n                                       (uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14);\n                    if (iVar16 != 0) {\n                      if (iStack_cc < iVar16) {\n                        iStack_cc = iVar16;\n                      }\n                      iVar16 = iVar16 + uStack_11c;\n                      uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16);\n                      uVar14 = uStack_164;\n                      if (uStack_164 != 0) goto joined_r0x0004e770;\n                      piVar33 = piStack_e0 + iVar16;\n                      iVar28 = *piVar33;\n                      piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc);\n                      if (iVar28 == 0) {\n                        piStack_160 = (int *)*piVar17;\n                        piStack_15c = (int *)piVar17[1];\n                        iStack_158 = piVar17[2];\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        *piVar33 = iVar44;\n                      }\n                      else {\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }\n                      if ((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar16 = *(int *)(uVar41 + 8);\n                    uVar14 = uStack_11c;\n                  }\nLAB_0004e670:\n                  param_4 = (uint *)((int)param_4 + 1);\n                } while ((int)param_4 < iVar16);\n              }\n              uStack_168 = 0;\n            }\n            uStack_11c = uVar14 + 1;\n            uVar14 = (uint)*(byte *)((int)puStack_140 + uVar14);\n            do {\n              if (*(int *)(uVar41 + 0x2c) != 0) {\n                uVar37 = *(uint *)(*(int *)(uVar41 + 0x2c) + uVar14 * 4);\nLAB_0004ddf0:\n                if (piStack_e0 != (int *)0x0) goto LAB_0004ddfc;\n                goto LAB_0004de1c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x30);\n              if (iVar16 != 0) {\n                uVar37 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n                if ((uVar37 & 1) == 0) {\n                  uVar37 = *(uint *)(iVar16 + uVar14 * 4);\n                }\n                else {\n                  uVar37 = *(uint *)(iVar16 + (uVar14 + 0x100) * 4);\n                }\n                goto LAB_0004ddf0;\n              }\n              iVar16 = (*(code *)(iVar26 + -0x7510))(puStack_f0,uVar41);\n            } while (iVar16 != 0);\n            uStack_168 = 0xc;\n            uVar14 = uStack_168;\njoined_r0x0004e770:\n            uStack_168 = uVar14;\n            if (piStack_e0 == (int *)0x0) {\n              piVar17 = (int *)0x0;\n              goto LAB_0004dbb4;\n            }\n            uVar37 = 0;\nLAB_0004ddfc:\n            uVar37 = FUN_0004d0a8(&uStack_168,&puStack_144,uVar37);\nLAB_0004de1c:\n            uVar14 = uStack_11c;\n            if (uVar37 == 0) {\n              piVar17 = piStack_e0;\n              if (uStack_168 != 0) goto LAB_0004dbb4;\n              if ((piStack_e0 == (int *)0x0) || ((bVar5 && (!bVar22)))) break;\n              param_4 = &uStack_168;\n              do {\n                bVar2 = false;\n                piVar17 = piStack_e0 + uStack_11c;\n                uVar14 = uStack_11c;\n                do {\n                  uVar37 = uVar14 + 1;\n                  piVar17 = piVar17 + 1;\n                  if (iStack_dc < (int)uVar37) {\n                    if (bVar2) {\n                      uStack_11c = uVar14;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar2 = true;\n                  uVar14 = uVar37;\n                } while (*piVar17 == 0);\n                uStack_11c = uVar37;\n                uVar37 = FUN_0004d0a8(param_4,&puStack_144,0);\n                uVar14 = uStack_11c;\n                if (uStack_168 != 0) {\n                  if (uVar37 == 0) goto LAB_0004e0cc;\n                  break;\n                }\n              } while (uVar37 == 0);\n            }\n            uVar42 = uStack_1d0;\n            if ((bVar4) && (uVar42 = uVar40, uVar41 != uVar37)) {\n              bVar4 = false;\n              uVar42 = uStack_1d0;\n            }\n            uStack_1d0 = uVar42;\n            uVar41 = uVar37;\n            uStack_11c = uVar14;\n            if (((*(byte *)(uVar37 + 0x34) & 8) != 0) &&\n               (((*(byte *)(uVar37 + 0x34) & 1) == 0 ||\n                (iVar16 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar37 + 8),uVar37 + 0xc,uVar14)\n                , iVar16 != 0)))) {\n              if (!bVar22) goto LAB_0004e0e4;\n              ppuStack_1dc = (uint **)0x0;\n              uVar6 = uVar14;\n              bVar5 = bVar22;\n            }\n          }\nLAB_0004e0cc:\n          uVar14 = uVar6;\n          if (ppuStack_1dc != (uint **)0x0) {\n            *ppuStack_1dc = (uint *)((int)*ppuStack_1dc + uStack_1d0);\n          }\n        }\n        else {\n          uVar14 = FUN_00047924(&puStack_144,uVar41 + 8,uVar41 + 0xc,0);\n          uStack_168 = uVar14;\n          if (uVar14 == 0) {\n            if ((*(byte *)(uVar41 + 0x34) & 2) == 0) {\n              bVar4 = false;\n            }\n            else {\n              uVar14 = FUN_0004c6a8(&puStack_144,uVar41 + 8,uVar41 + 0xc);\n              uStack_168 = uVar14;\n              if (uVar14 != 0) goto LAB_0004e0e4;\n              bVar4 = false;\n            }\n            goto LAB_0004dd48;\n          }\n        }\nLAB_0004e0e4:\n        piVar17 = piStack_e0;\n        if (uVar14 != 0xffffffff) {\n          if (uVar14 == 0xfffffffe) goto LAB_0004dbf8;\n          uStack_e8 = uVar14;\n          if (((uint)ppuVar24[7] & 0x8000000) == 0) {\n            if (!bVar1) {\n              uVar6 = puVar43[0x13];\n              goto joined_r0x0004e94c;\n            }\n            pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n            iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                     piStack_e0[uVar14] + 0xc,uVar14);\n            if ((*(char *)(puVar43 + 0x16) < '\0') || (puVar43[0x13] != 0)) goto LAB_0004e170;\n          }\n          else {\n            uVar6 = puVar43[0x13];\njoined_r0x0004e94c:\n            if (uVar6 != 0) {\n              pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n              iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                       piStack_e0[uVar14] + 0xc,uVar14);\nLAB_0004e170:\n              iVar30 = iStack_e4;\n              puVar36 = puStack_f0;\n              if (uVar14 < 0x3fffffff) {\n                uStack_1f0 = uVar14 + 1;\n                piVar17 = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                if (piVar17 == (int *)0x0) goto LAB_0004dbf8;\n                if (puVar36[0x13] == 0) {\n                  piStack_15c = (int *)0x0;\n                  uStack_150 = 0;\n                  uStack_14c = 0;\n                  uStack_148 = 0;\n                  piStack_160 = piVar17;\n                  iStack_158 = iVar30;\n                  uStack_154 = uVar14;\n                  uStack_1e4 = FUN_0004d30c(&puStack_144,&piStack_160);\n                  (**(code **)(puVar46 + 0x28520))(uStack_148);\n                  if (uStack_1e4 == 0) {\n                    if (*piVar17 == 0) {\n                      (**(code **)(puVar46 + 0x28520))(piVar17);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar46 + 0x28520))(piStack_e0);\n                    uStack_e8 = uVar14;\n                    iStack_e4 = iVar30;\n                    piStack_e0 = piVar17;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  piStack_1ec = (int *)0x0;\n                }\n                else {\n                  piStack_1ec = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                  if (piStack_1ec == (int *)0x0) {\n                    (**(code **)(puVar46 + 0x28520))(piVar17);\n                    uStack_1e4 = 0xc;\n                    piVar17 = piStack_e0;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar15 = *(int *)(puVar46 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);\n                    uStack_150 = 0;\n                    uStack_14c = 0;\n                    uStack_148 = 0;\n                    piStack_160 = piVar17;\n                    piStack_15c = piStack_1ec;\n                    iStack_158 = iVar30;\n                    uStack_154 = uVar14;\n                    uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);\n                    (**(code **)(puVar46 + 0x28520))(uStack_148);\n                    if (uStack_1e4 != 0) break;\n                    if ((*piVar17 != 0) || (*piStack_1ec != 0)) {\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    piVar33 = piStack_e0 + (uStack_1f0 - 1);\n                    uStack_1f0 = uVar14;\n                    while( true ) {\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }\n                    iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       );\n                  }\n                }\n                (**(code **)(puVar46 + 0x28520))(piVar17);\n                (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                piVar17 = piStack_e0;\n                if (uStack_1e4 == 1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }\n              uStack_1e4 = 0xc;\n              goto LAB_0004dbbc;\n            }\n          }\nLAB_0004e7e0:\n          piVar17 = piStack_e0;\n          uStack_1e4 = uVar11;\n          if (local_78 == (uint *)0x0) goto LAB_0004dbbc;\n          puVar23 = ppuVar24[7];\n          if (bVar1) {\n            piVar17 = piStack_74 + 2;\n            do {\n              piVar17[1] = -1;\n              piVar33 = piVar17 + 2;\n              *piVar17 = -1;\n              piVar17 = piVar33;\n            } while (piStack_74 + (int)local_78 * 2 != piVar33);\n            *piStack_74 = 0;\n            piStack_74[1] = uStack_e8;\n            if (((uint)puVar23 & 0x8000000) == 0) {\n              if (*(char *)(puVar43 + 0x16) < '\0') {\n                bVar22 = 0 < (int)puVar43[0x13];\n              }\n              else {\n                bVar22 = false;\n              }\n              uStack_1e4 = FUN_0004bc00(ppuVar24,&puStack_144,local_78,piStack_74,bVar22);\n              piVar17 = piStack_e0;\n              if (uStack_1e4 != 0) goto LAB_0004dbbc;\n              puVar23 = (uint *)*piStack_74;\n            }\n            else {\nLAB_0004e838:\n              puVar23 = (uint *)0x0;\n            }\n            puVar36 = (uint *)0x0;\n            piVar17 = piStack_74;\n            while( true ) {\n              if (puVar23 != (uint *)0xffffffff) {\n                puVar32 = (uint *)piVar17[1];\n                puVar39 = puVar23;\n                puVar38 = puVar32;\n                if (cStack_f8 != '\0') {\n                  puVar39 = puStack_124;\n                  if (puStack_128 != puVar23) {\n                    puVar39 = *(uint **)(iStack_138 + (int)puVar23 * 4);\n                  }\n                  *piVar17 = (int)puVar39;\n                  puVar38 = puStack_124;\n                  if (puStack_128 != puVar32) {\n                    puVar38 = *(uint **)(iStack_138 + (int)puVar32 * 4);\n                  }\n                }\n                *piVar17 = (int)puStack_16c + (int)puVar39;\n                piVar17[1] = (int)puStack_16c + (int)puVar38;\n              }\n              puVar36 = (uint *)((int)puVar36 + 1);\n              piVar17 = piVar17 + 2;\n              if (puVar36 == local_78) break;\n              puVar23 = (uint *)*piVar17;\n            }\n            if (0 < iStack_180) {\n              piVar17 = piStack_74 + (int)local_78 * 2;\n              do {\n                *piVar17 = -1;\n                piVar33 = piVar17 + 2;\n                piVar17[1] = -1;\n                piVar17 = piVar33;\n              } while (piStack_74 + (iStack_180 + (int)local_78) * 2 != piVar33);\n            }\n            piVar33 = (int *)puVar43[0x21];\n            piVar17 = piStack_e0;\n            uStack_1e4 = uVar11;\n            if (piVar33 != (int *)0x0) {\n              iVar29 = 0;\n              piVar3 = piStack_74;\n              do {\n                pcVar45 = *(code **)(puVar46 + 0x28520);\n                if (iVar29 == (int)local_78 + -1) goto LAB_0004dbc0;\n                if (*piVar33 != iVar29) {\n                  piVar3[2] = piStack_74[(*piVar33 + 1) * 2];\n                  piVar3[3] = piStack_74[(*piVar33 + 1) * 2 + 1];\n                }\n                iVar29 = iVar29 + 1;\n                piVar33 = piVar33 + 1;\n                piVar3 = piVar3 + 2;\n              } while( true );\n            }\n            goto LAB_0004dbbc;\n          }\n          *piStack_74 = 0;\n          piStack_74[1] = uStack_e8;\n          goto LAB_0004e838;\n        }\nLAB_0004e2d4:\n        FUN_00044db0(&puStack_144);\n        param_4 = puStack_16c;\n      }" if (parenthesized_expression "(((uVar34 == 1) || (puStack_128 == (uint *)0x0)) || (*piStack_13c != -1))" ( (binary_expression "((uVar34 == 1) || (puStack_128 == (uint *)0x0)) || (*piStack_13c != -1)" (parenthesized_expression "((uVar34 == 1) || (puStack_128 == (uint *)0x0))" ( (binary_expression "(uVar34 == 1) || (puStack_128 == (uint *)0x0)" (parenthesized_expression "(uVar34 == 1)" ( (binary_expression "uVar34 == 1" identifier == number_literal) )) || (parenthesized_expression "(puStack_128 == (uint *)0x0)" ( (binary_expression "puStack_128 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) || (parenthesized_expression "(*piStack_13c != -1)" ( (binary_expression "*piStack_13c != -1" (pointer_expression "*piStack_13c" * identifier) != number_literal) ))) )) (compound_statement "{\n        iStack_cc = 0;\n        uStack_d8 = 0;\n        uVar41 = puStack_f0[9];\n        uStack_1d0 = uStack_11c;\n        iStack_dc = 0;\n        uStack_168 = 0;\n        if ((*(byte *)(uVar41 + 0x34) & 1) != 0) {\n          uVar14 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n          if ((uVar14 & 1) == 0) {\n            if (uVar14 == 0) goto LAB_0004dd24;\n            if ((uVar14 & 6) == 6) {\n              uVar41 = puVar36[0xc];\n            }\n            else if ((uVar14 & 2) == 0) {\n              if ((uVar14 & 4) == 0) goto LAB_0004dd24;\n              uVar41 = FUN_00046cac(&uStack_168,puVar36,*(undefined4 *)(uVar41 + 0x28),uVar14);\n            }\n            else {\n              uVar41 = puVar36[0xb];\n            }\n          }\n          else {\n            uVar41 = puVar36[10];\n          }\n          if (uVar41 == 0) goto code_r0x0004ea7c;\n        }\nLAB_0004dd24:\n        bVar4 = ppuVar12 != (uint **)0x0;\n        if ((piStack_e0 == (int *)0x0) ||\n           (uVar14 = puVar36[0x13], piStack_e0[uVar6] = uVar41, uVar14 == 0)) {\nLAB_0004dd48:\n          if (*(int *)(uVar41 + 0x34) << 4 < 0) {\n            if (((*(byte *)(uVar41 + 0x34) & 1) == 0) ||\n               (iVar30 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar41 + 8),uVar41 + 0xc,uVar6),\n               iVar30 != 0)) {\n              uVar14 = uVar6;\n              bVar5 = bVar22;\n              if (!bVar22) goto LAB_0004e0e4;\n            }\n            else {\n              uVar6 = 0xffffffff;\n              bVar5 = false;\n            }\n          }\n          else {\n            uVar6 = 0xffffffff;\n            bVar5 = false;\n          }\n          iVar30 = *(int *)(puVar46 + 0x28244);\n          iVar15 = *(int *)(puVar46 + 0x2829c);\n          uVar14 = uStack_11c;\n          ppuStack_1dc = ppuVar12;\n          while ((int)uVar14 < (int)puStack_10c) {\n            uVar40 = uVar14 + 1;\n            if ((((int)uVar40 < (int)uStack_120) || ((int)puStack_114 <= (int)uStack_120)) &&\n               (((int)uVar40 < (int)puStack_128 || ((int)puStack_114 <= (int)puStack_128)))) {\n              iVar16 = *(int *)(uVar41 + 0x34);\n              puVar36 = puStack_f0;\n            }\n            else {\n              uStack_168 = (*(code *)(iVar30 + 0x41e4))(&puStack_144,uVar14 + 2);\n              if (uStack_168 != 0) {\n                if (uStack_168 == 0xc) goto LAB_0004dbf8;\n                uVar20 = 0x46c;\n                goto LAB_0004ea9c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x34);\n              uVar14 = uStack_11c;\n              puVar36 = puStack_f0;\n            }\n            puStack_f0 = puVar36;\n            if (iVar16 << 5 < 0) {\n              iVar16 = *(int *)(uVar41 + 8);\n              if (0 < iVar16) {\n                param_4 = (uint *)0x0;\n                iVar18 = *(int *)(puVar46 + 0x28244);\n                pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7ab0);\n                do {\n                  uVar42 = *puVar36;\n                  iVar44 = *(int *)(*(int *)(uVar41 + 0xc) + (int)param_4 * 4);\n                  uVar37 = *(uint *)(uVar42 + iVar44 * 8 + 4);\n                  if ((uVar37 & 0x800) != 0) {\n                    if ((uVar37 & 0xffc000) != 0) {\n                      uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec);\n                      uVar37 = (uVar37 << 8) >> 0x16;\n                      if ((uVar37 & 4) == 0) {\n                        uVar27 = uVar19 & 1;\n                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    iVar16 = (*(code *)(iVar15 + -0x4eb0))\n                                       (uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14);\n                    if (iVar16 != 0) {\n                      if (iStack_cc < iVar16) {\n                        iStack_cc = iVar16;\n                      }\n                      iVar16 = iVar16 + uStack_11c;\n                      uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16);\n                      uVar14 = uStack_164;\n                      if (uStack_164 != 0) goto joined_r0x0004e770;\n                      piVar33 = piStack_e0 + iVar16;\n                      iVar28 = *piVar33;\n                      piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc);\n                      if (iVar28 == 0) {\n                        piStack_160 = (int *)*piVar17;\n                        piStack_15c = (int *)piVar17[1];\n                        iStack_158 = piVar17[2];\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        *piVar33 = iVar44;\n                      }\n                      else {\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }\n                      if ((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar16 = *(int *)(uVar41 + 8);\n                    uVar14 = uStack_11c;\n                  }\nLAB_0004e670:\n                  param_4 = (uint *)((int)param_4 + 1);\n                } while ((int)param_4 < iVar16);\n              }\n              uStack_168 = 0;\n            }\n            uStack_11c = uVar14 + 1;\n            uVar14 = (uint)*(byte *)((int)puStack_140 + uVar14);\n            do {\n              if (*(int *)(uVar41 + 0x2c) != 0) {\n                uVar37 = *(uint *)(*(int *)(uVar41 + 0x2c) + uVar14 * 4);\nLAB_0004ddf0:\n                if (piStack_e0 != (int *)0x0) goto LAB_0004ddfc;\n                goto LAB_0004de1c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x30);\n              if (iVar16 != 0) {\n                uVar37 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n                if ((uVar37 & 1) == 0) {\n                  uVar37 = *(uint *)(iVar16 + uVar14 * 4);\n                }\n                else {\n                  uVar37 = *(uint *)(iVar16 + (uVar14 + 0x100) * 4);\n                }\n                goto LAB_0004ddf0;\n              }\n              iVar16 = (*(code *)(iVar26 + -0x7510))(puStack_f0,uVar41);\n            } while (iVar16 != 0);\n            uStack_168 = 0xc;\n            uVar14 = uStack_168;\njoined_r0x0004e770:\n            uStack_168 = uVar14;\n            if (piStack_e0 == (int *)0x0) {\n              piVar17 = (int *)0x0;\n              goto LAB_0004dbb4;\n            }\n            uVar37 = 0;\nLAB_0004ddfc:\n            uVar37 = FUN_0004d0a8(&uStack_168,&puStack_144,uVar37);\nLAB_0004de1c:\n            uVar14 = uStack_11c;\n            if (uVar37 == 0) {\n              piVar17 = piStack_e0;\n              if (uStack_168 != 0) goto LAB_0004dbb4;\n              if ((piStack_e0 == (int *)0x0) || ((bVar5 && (!bVar22)))) break;\n              param_4 = &uStack_168;\n              do {\n                bVar2 = false;\n                piVar17 = piStack_e0 + uStack_11c;\n                uVar14 = uStack_11c;\n                do {\n                  uVar37 = uVar14 + 1;\n                  piVar17 = piVar17 + 1;\n                  if (iStack_dc < (int)uVar37) {\n                    if (bVar2) {\n                      uStack_11c = uVar14;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar2 = true;\n                  uVar14 = uVar37;\n                } while (*piVar17 == 0);\n                uStack_11c = uVar37;\n                uVar37 = FUN_0004d0a8(param_4,&puStack_144,0);\n                uVar14 = uStack_11c;\n                if (uStack_168 != 0) {\n                  if (uVar37 == 0) goto LAB_0004e0cc;\n                  break;\n                }\n              } while (uVar37 == 0);\n            }\n            uVar42 = uStack_1d0;\n            if ((bVar4) && (uVar42 = uVar40, uVar41 != uVar37)) {\n              bVar4 = false;\n              uVar42 = uStack_1d0;\n            }\n            uStack_1d0 = uVar42;\n            uVar41 = uVar37;\n            uStack_11c = uVar14;\n            if (((*(byte *)(uVar37 + 0x34) & 8) != 0) &&\n               (((*(byte *)(uVar37 + 0x34) & 1) == 0 ||\n                (iVar16 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar37 + 8),uVar37 + 0xc,uVar14)\n                , iVar16 != 0)))) {\n              if (!bVar22) goto LAB_0004e0e4;\n              ppuStack_1dc = (uint **)0x0;\n              uVar6 = uVar14;\n              bVar5 = bVar22;\n            }\n          }\nLAB_0004e0cc:\n          uVar14 = uVar6;\n          if (ppuStack_1dc != (uint **)0x0) {\n            *ppuStack_1dc = (uint *)((int)*ppuStack_1dc + uStack_1d0);\n          }\n        }\n        else {\n          uVar14 = FUN_00047924(&puStack_144,uVar41 + 8,uVar41 + 0xc,0);\n          uStack_168 = uVar14;\n          if (uVar14 == 0) {\n            if ((*(byte *)(uVar41 + 0x34) & 2) == 0) {\n              bVar4 = false;\n            }\n            else {\n              uVar14 = FUN_0004c6a8(&puStack_144,uVar41 + 8,uVar41 + 0xc);\n              uStack_168 = uVar14;\n              if (uVar14 != 0) goto LAB_0004e0e4;\n              bVar4 = false;\n            }\n            goto LAB_0004dd48;\n          }\n        }\nLAB_0004e0e4:\n        piVar17 = piStack_e0;\n        if (uVar14 != 0xffffffff) {\n          if (uVar14 == 0xfffffffe) goto LAB_0004dbf8;\n          uStack_e8 = uVar14;\n          if (((uint)ppuVar24[7] & 0x8000000) == 0) {\n            if (!bVar1) {\n              uVar6 = puVar43[0x13];\n              goto joined_r0x0004e94c;\n            }\n            pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n            iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                     piStack_e0[uVar14] + 0xc,uVar14);\n            if ((*(char *)(puVar43 + 0x16) < '\0') || (puVar43[0x13] != 0)) goto LAB_0004e170;\n          }\n          else {\n            uVar6 = puVar43[0x13];\njoined_r0x0004e94c:\n            if (uVar6 != 0) {\n              pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n              iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                       piStack_e0[uVar14] + 0xc,uVar14);\nLAB_0004e170:\n              iVar30 = iStack_e4;\n              puVar36 = puStack_f0;\n              if (uVar14 < 0x3fffffff) {\n                uStack_1f0 = uVar14 + 1;\n                piVar17 = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                if (piVar17 == (int *)0x0) goto LAB_0004dbf8;\n                if (puVar36[0x13] == 0) {\n                  piStack_15c = (int *)0x0;\n                  uStack_150 = 0;\n                  uStack_14c = 0;\n                  uStack_148 = 0;\n                  piStack_160 = piVar17;\n                  iStack_158 = iVar30;\n                  uStack_154 = uVar14;\n                  uStack_1e4 = FUN_0004d30c(&puStack_144,&piStack_160);\n                  (**(code **)(puVar46 + 0x28520))(uStack_148);\n                  if (uStack_1e4 == 0) {\n                    if (*piVar17 == 0) {\n                      (**(code **)(puVar46 + 0x28520))(piVar17);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar46 + 0x28520))(piStack_e0);\n                    uStack_e8 = uVar14;\n                    iStack_e4 = iVar30;\n                    piStack_e0 = piVar17;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  piStack_1ec = (int *)0x0;\n                }\n                else {\n                  piStack_1ec = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                  if (piStack_1ec == (int *)0x0) {\n                    (**(code **)(puVar46 + 0x28520))(piVar17);\n                    uStack_1e4 = 0xc;\n                    piVar17 = piStack_e0;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar15 = *(int *)(puVar46 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);\n                    uStack_150 = 0;\n                    uStack_14c = 0;\n                    uStack_148 = 0;\n                    piStack_160 = piVar17;\n                    piStack_15c = piStack_1ec;\n                    iStack_158 = iVar30;\n                    uStack_154 = uVar14;\n                    uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);\n                    (**(code **)(puVar46 + 0x28520))(uStack_148);\n                    if (uStack_1e4 != 0) break;\n                    if ((*piVar17 != 0) || (*piStack_1ec != 0)) {\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    piVar33 = piStack_e0 + (uStack_1f0 - 1);\n                    uStack_1f0 = uVar14;\n                    while( true ) {\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }\n                    iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       );\n                  }\n                }\n                (**(code **)(puVar46 + 0x28520))(piVar17);\n                (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                piVar17 = piStack_e0;\n                if (uStack_1e4 == 1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }\n              uStack_1e4 = 0xc;\n              goto LAB_0004dbbc;\n            }\n          }\nLAB_0004e7e0:\n          piVar17 = piStack_e0;\n          uStack_1e4 = uVar11;\n          if (local_78 == (uint *)0x0) goto LAB_0004dbbc;\n          puVar23 = ppuVar24[7];\n          if (bVar1) {\n            piVar17 = piStack_74 + 2;\n            do {\n              piVar17[1] = -1;\n              piVar33 = piVar17 + 2;\n              *piVar17 = -1;\n              piVar17 = piVar33;\n            } while (piStack_74 + (int)local_78 * 2 != piVar33);\n            *piStack_74 = 0;\n            piStack_74[1] = uStack_e8;\n            if (((uint)puVar23 & 0x8000000) == 0) {\n              if (*(char *)(puVar43 + 0x16) < '\0') {\n                bVar22 = 0 < (int)puVar43[0x13];\n              }\n              else {\n                bVar22 = false;\n              }\n              uStack_1e4 = FUN_0004bc00(ppuVar24,&puStack_144,local_78,piStack_74,bVar22);\n              piVar17 = piStack_e0;\n              if (uStack_1e4 != 0) goto LAB_0004dbbc;\n              puVar23 = (uint *)*piStack_74;\n            }\n            else {\nLAB_0004e838:\n              puVar23 = (uint *)0x0;\n            }\n            puVar36 = (uint *)0x0;\n            piVar17 = piStack_74;\n            while( true ) {\n              if (puVar23 != (uint *)0xffffffff) {\n                puVar32 = (uint *)piVar17[1];\n                puVar39 = puVar23;\n                puVar38 = puVar32;\n                if (cStack_f8 != '\0') {\n                  puVar39 = puStack_124;\n                  if (puStack_128 != puVar23) {\n                    puVar39 = *(uint **)(iStack_138 + (int)puVar23 * 4);\n                  }\n                  *piVar17 = (int)puVar39;\n                  puVar38 = puStack_124;\n                  if (puStack_128 != puVar32) {\n                    puVar38 = *(uint **)(iStack_138 + (int)puVar32 * 4);\n                  }\n                }\n                *piVar17 = (int)puStack_16c + (int)puVar39;\n                piVar17[1] = (int)puStack_16c + (int)puVar38;\n              }\n              puVar36 = (uint *)((int)puVar36 + 1);\n              piVar17 = piVar17 + 2;\n              if (puVar36 == local_78) break;\n              puVar23 = (uint *)*piVar17;\n            }\n            if (0 < iStack_180) {\n              piVar17 = piStack_74 + (int)local_78 * 2;\n              do {\n                *piVar17 = -1;\n                piVar33 = piVar17 + 2;\n                piVar17[1] = -1;\n                piVar17 = piVar33;\n              } while (piStack_74 + (iStack_180 + (int)local_78) * 2 != piVar33);\n            }\n            piVar33 = (int *)puVar43[0x21];\n            piVar17 = piStack_e0;\n            uStack_1e4 = uVar11;\n            if (piVar33 != (int *)0x0) {\n              iVar29 = 0;\n              piVar3 = piStack_74;\n              do {\n                pcVar45 = *(code **)(puVar46 + 0x28520);\n                if (iVar29 == (int)local_78 + -1) goto LAB_0004dbc0;\n                if (*piVar33 != iVar29) {\n                  piVar3[2] = piStack_74[(*piVar33 + 1) * 2];\n                  piVar3[3] = piStack_74[(*piVar33 + 1) * 2 + 1];\n                }\n                iVar29 = iVar29 + 1;\n                piVar33 = piVar33 + 1;\n                piVar3 = piVar3 + 2;\n              } while( true );\n            }\n            goto LAB_0004dbbc;\n          }\n          *piStack_74 = 0;\n          piStack_74[1] = uStack_e8;\n          goto LAB_0004e838;\n        }\nLAB_0004e2d4:\n        FUN_00044db0(&puStack_144);\n        param_4 = puStack_16c;\n      }" { (expression_statement "iStack_cc = 0;" (assignment_expression "iStack_cc = 0" identifier = number_literal) ;) (expression_statement "uStack_d8 = 0;" (assignment_expression "uStack_d8 = 0" identifier = number_literal) ;) (expression_statement "uVar41 = puStack_f0[9];" (assignment_expression "uVar41 = puStack_f0[9]" identifier = (subscript_expression "puStack_f0[9]" identifier [ number_literal ])) ;) (expression_statement "uStack_1d0 = uStack_11c;" (assignment_expression "uStack_1d0 = uStack_11c" identifier = identifier) ;) (expression_statement "iStack_dc = 0;" (assignment_expression "iStack_dc = 0" identifier = number_literal) ;) (expression_statement "uStack_168 = 0;" (assignment_expression "uStack_168 = 0" identifier = number_literal) ;) (if_statement "if ((*(byte *)(uVar41 + 0x34) & 1) != 0) {\n          uVar14 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n          if ((uVar14 & 1) == 0) {\n            if (uVar14 == 0) goto LAB_0004dd24;\n            if ((uVar14 & 6) == 6) {\n              uVar41 = puVar36[0xc];\n            }\n            else if ((uVar14 & 2) == 0) {\n              if ((uVar14 & 4) == 0) goto LAB_0004dd24;\n              uVar41 = FUN_00046cac(&uStack_168,puVar36,*(undefined4 *)(uVar41 + 0x28),uVar14);\n            }\n            else {\n              uVar41 = puVar36[0xb];\n            }\n          }\n          else {\n            uVar41 = puVar36[10];\n          }\n          if (uVar41 == 0) goto code_r0x0004ea7c;\n        }" if (parenthesized_expression "((*(byte *)(uVar41 + 0x34) & 1) != 0)" ( (binary_expression "(*(byte *)(uVar41 + 0x34) & 1) != 0" (parenthesized_expression "(*(byte *)(uVar41 + 0x34) & 1)" ( (binary_expression "*(byte *)(uVar41 + 0x34) & 1" (pointer_expression "*(byte *)(uVar41 + 0x34)" * (cast_expression "(byte *)(uVar41 + 0x34)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar41 + 0x34)" ( (binary_expression "uVar41 + 0x34" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n          uVar14 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n          if ((uVar14 & 1) == 0) {\n            if (uVar14 == 0) goto LAB_0004dd24;\n            if ((uVar14 & 6) == 6) {\n              uVar41 = puVar36[0xc];\n            }\n            else if ((uVar14 & 2) == 0) {\n              if ((uVar14 & 4) == 0) goto LAB_0004dd24;\n              uVar41 = FUN_00046cac(&uStack_168,puVar36,*(undefined4 *)(uVar41 + 0x28),uVar14);\n            }\n            else {\n              uVar41 = puVar36[0xb];\n            }\n          }\n          else {\n            uVar41 = puVar36[10];\n          }\n          if (uVar41 == 0) goto code_r0x0004ea7c;\n        }" { (expression_statement "uVar14 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);" (assignment_expression "uVar14 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec)" identifier = (call_expression "FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec)" identifier (argument_list "(&puStack_144,uStack_11c - 1,puStack_ec)" ( (pointer_expression "&puStack_144" & identifier) , (binary_expression "uStack_11c - 1" identifier - number_literal) , identifier )))) ;) (if_statement "if ((uVar14 & 1) == 0) {\n            if (uVar14 == 0) goto LAB_0004dd24;\n            if ((uVar14 & 6) == 6) {\n              uVar41 = puVar36[0xc];\n            }\n            else if ((uVar14 & 2) == 0) {\n              if ((uVar14 & 4) == 0) goto LAB_0004dd24;\n              uVar41 = FUN_00046cac(&uStack_168,puVar36,*(undefined4 *)(uVar41 + 0x28),uVar14);\n            }\n            else {\n              uVar41 = puVar36[0xb];\n            }\n          }\n          else {\n            uVar41 = puVar36[10];\n          }" if (parenthesized_expression "((uVar14 & 1) == 0)" ( (binary_expression "(uVar14 & 1) == 0" (parenthesized_expression "(uVar14 & 1)" ( (binary_expression "uVar14 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            if (uVar14 == 0) goto LAB_0004dd24;\n            if ((uVar14 & 6) == 6) {\n              uVar41 = puVar36[0xc];\n            }\n            else if ((uVar14 & 2) == 0) {\n              if ((uVar14 & 4) == 0) goto LAB_0004dd24;\n              uVar41 = FUN_00046cac(&uStack_168,puVar36,*(undefined4 *)(uVar41 + 0x28),uVar14);\n            }\n            else {\n              uVar41 = puVar36[0xb];\n            }\n          }" { (if_statement "if (uVar14 == 0) goto LAB_0004dd24;" if (parenthesized_expression "(uVar14 == 0)" ( (binary_expression "uVar14 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0004dd24;" goto statement_identifier ;)) (if_statement "if ((uVar14 & 6) == 6) {\n              uVar41 = puVar36[0xc];\n            }\n            else if ((uVar14 & 2) == 0) {\n              if ((uVar14 & 4) == 0) goto LAB_0004dd24;\n              uVar41 = FUN_00046cac(&uStack_168,puVar36,*(undefined4 *)(uVar41 + 0x28),uVar14);\n            }\n            else {\n              uVar41 = puVar36[0xb];\n            }" if (parenthesized_expression "((uVar14 & 6) == 6)" ( (binary_expression "(uVar14 & 6) == 6" (parenthesized_expression "(uVar14 & 6)" ( (binary_expression "uVar14 & 6" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n              uVar41 = puVar36[0xc];\n            }" { (expression_statement "uVar41 = puVar36[0xc];" (assignment_expression "uVar41 = puVar36[0xc]" identifier = (subscript_expression "puVar36[0xc]" identifier [ number_literal ])) ;) }) (else_clause "else if ((uVar14 & 2) == 0) {\n              if ((uVar14 & 4) == 0) goto LAB_0004dd24;\n              uVar41 = FUN_00046cac(&uStack_168,puVar36,*(undefined4 *)(uVar41 + 0x28),uVar14);\n            }\n            else {\n              uVar41 = puVar36[0xb];\n            }" else (if_statement "if ((uVar14 & 2) == 0) {\n              if ((uVar14 & 4) == 0) goto LAB_0004dd24;\n              uVar41 = FUN_00046cac(&uStack_168,puVar36,*(undefined4 *)(uVar41 + 0x28),uVar14);\n            }\n            else {\n              uVar41 = puVar36[0xb];\n            }" if (parenthesized_expression "((uVar14 & 2) == 0)" ( (binary_expression "(uVar14 & 2) == 0" (parenthesized_expression "(uVar14 & 2)" ( (binary_expression "uVar14 & 2" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n              if ((uVar14 & 4) == 0) goto LAB_0004dd24;\n              uVar41 = FUN_00046cac(&uStack_168,puVar36,*(undefined4 *)(uVar41 + 0x28),uVar14);\n            }" { (if_statement "if ((uVar14 & 4) == 0) goto LAB_0004dd24;" if (parenthesized_expression "((uVar14 & 4) == 0)" ( (binary_expression "(uVar14 & 4) == 0" (parenthesized_expression "(uVar14 & 4)" ( (binary_expression "uVar14 & 4" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0004dd24;" goto statement_identifier ;)) (expression_statement "uVar41 = FUN_00046cac(&uStack_168,puVar36,*(undefined4 *)(uVar41 + 0x28),uVar14);" (assignment_expression "uVar41 = FUN_00046cac(&uStack_168,puVar36,*(undefined4 *)(uVar41 + 0x28),uVar14)" identifier = (call_expression "FUN_00046cac(&uStack_168,puVar36,*(undefined4 *)(uVar41 + 0x28),uVar14)" identifier (argument_list "(&uStack_168,puVar36,*(undefined4 *)(uVar41 + 0x28),uVar14)" ( (pointer_expression "&uStack_168" & identifier) , identifier , (pointer_expression "*(undefined4 *)(uVar41 + 0x28)" * (cast_expression "(undefined4 *)(uVar41 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar41 + 0x28)" ( (binary_expression "uVar41 + 0x28" identifier + number_literal) )))) , identifier )))) ;) }) (else_clause "else {\n              uVar41 = puVar36[0xb];\n            }" else (compound_statement "{\n              uVar41 = puVar36[0xb];\n            }" { (expression_statement "uVar41 = puVar36[0xb];" (assignment_expression "uVar41 = puVar36[0xb]" identifier = (subscript_expression "puVar36[0xb]" identifier [ number_literal ])) ;) }))))) }) (else_clause "else {\n            uVar41 = puVar36[10];\n          }" else (compound_statement "{\n            uVar41 = puVar36[10];\n          }" { (expression_statement "uVar41 = puVar36[10];" (assignment_expression "uVar41 = puVar36[10]" identifier = (subscript_expression "puVar36[10]" identifier [ number_literal ])) ;) }))) (if_statement "if (uVar41 == 0) goto code_r0x0004ea7c;" if (parenthesized_expression "(uVar41 == 0)" ( (binary_expression "uVar41 == 0" identifier == number_literal) )) (goto_statement "goto code_r0x0004ea7c;" goto statement_identifier ;)) })) (labeled_statement "LAB_0004dd24:\n        bVar4 = ppuVar12 != (uint **)0x0;" statement_identifier : (expression_statement "bVar4 = ppuVar12 != (uint **)0x0;" (assignment_expression "bVar4 = ppuVar12 != (uint **)0x0" identifier = (binary_expression "ppuVar12 != (uint **)0x0" identifier != (cast_expression "(uint **)0x0" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal))) ;)) (if_statement "if ((piStack_e0 == (int *)0x0) ||\n           (uVar14 = puVar36[0x13], piStack_e0[uVar6] = uVar41, uVar14 == 0)) {\nLAB_0004dd48:\n          if (*(int *)(uVar41 + 0x34) << 4 < 0) {\n            if (((*(byte *)(uVar41 + 0x34) & 1) == 0) ||\n               (iVar30 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar41 + 8),uVar41 + 0xc,uVar6),\n               iVar30 != 0)) {\n              uVar14 = uVar6;\n              bVar5 = bVar22;\n              if (!bVar22) goto LAB_0004e0e4;\n            }\n            else {\n              uVar6 = 0xffffffff;\n              bVar5 = false;\n            }\n          }\n          else {\n            uVar6 = 0xffffffff;\n            bVar5 = false;\n          }\n          iVar30 = *(int *)(puVar46 + 0x28244);\n          iVar15 = *(int *)(puVar46 + 0x2829c);\n          uVar14 = uStack_11c;\n          ppuStack_1dc = ppuVar12;\n          while ((int)uVar14 < (int)puStack_10c) {\n            uVar40 = uVar14 + 1;\n            if ((((int)uVar40 < (int)uStack_120) || ((int)puStack_114 <= (int)uStack_120)) &&\n               (((int)uVar40 < (int)puStack_128 || ((int)puStack_114 <= (int)puStack_128)))) {\n              iVar16 = *(int *)(uVar41 + 0x34);\n              puVar36 = puStack_f0;\n            }\n            else {\n              uStack_168 = (*(code *)(iVar30 + 0x41e4))(&puStack_144,uVar14 + 2);\n              if (uStack_168 != 0) {\n                if (uStack_168 == 0xc) goto LAB_0004dbf8;\n                uVar20 = 0x46c;\n                goto LAB_0004ea9c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x34);\n              uVar14 = uStack_11c;\n              puVar36 = puStack_f0;\n            }\n            puStack_f0 = puVar36;\n            if (iVar16 << 5 < 0) {\n              iVar16 = *(int *)(uVar41 + 8);\n              if (0 < iVar16) {\n                param_4 = (uint *)0x0;\n                iVar18 = *(int *)(puVar46 + 0x28244);\n                pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7ab0);\n                do {\n                  uVar42 = *puVar36;\n                  iVar44 = *(int *)(*(int *)(uVar41 + 0xc) + (int)param_4 * 4);\n                  uVar37 = *(uint *)(uVar42 + iVar44 * 8 + 4);\n                  if ((uVar37 & 0x800) != 0) {\n                    if ((uVar37 & 0xffc000) != 0) {\n                      uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec);\n                      uVar37 = (uVar37 << 8) >> 0x16;\n                      if ((uVar37 & 4) == 0) {\n                        uVar27 = uVar19 & 1;\n                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    iVar16 = (*(code *)(iVar15 + -0x4eb0))\n                                       (uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14);\n                    if (iVar16 != 0) {\n                      if (iStack_cc < iVar16) {\n                        iStack_cc = iVar16;\n                      }\n                      iVar16 = iVar16 + uStack_11c;\n                      uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16);\n                      uVar14 = uStack_164;\n                      if (uStack_164 != 0) goto joined_r0x0004e770;\n                      piVar33 = piStack_e0 + iVar16;\n                      iVar28 = *piVar33;\n                      piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc);\n                      if (iVar28 == 0) {\n                        piStack_160 = (int *)*piVar17;\n                        piStack_15c = (int *)piVar17[1];\n                        iStack_158 = piVar17[2];\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        *piVar33 = iVar44;\n                      }\n                      else {\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }\n                      if ((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar16 = *(int *)(uVar41 + 8);\n                    uVar14 = uStack_11c;\n                  }\nLAB_0004e670:\n                  param_4 = (uint *)((int)param_4 + 1);\n                } while ((int)param_4 < iVar16);\n              }\n              uStack_168 = 0;\n            }\n            uStack_11c = uVar14 + 1;\n            uVar14 = (uint)*(byte *)((int)puStack_140 + uVar14);\n            do {\n              if (*(int *)(uVar41 + 0x2c) != 0) {\n                uVar37 = *(uint *)(*(int *)(uVar41 + 0x2c) + uVar14 * 4);\nLAB_0004ddf0:\n                if (piStack_e0 != (int *)0x0) goto LAB_0004ddfc;\n                goto LAB_0004de1c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x30);\n              if (iVar16 != 0) {\n                uVar37 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n                if ((uVar37 & 1) == 0) {\n                  uVar37 = *(uint *)(iVar16 + uVar14 * 4);\n                }\n                else {\n                  uVar37 = *(uint *)(iVar16 + (uVar14 + 0x100) * 4);\n                }\n                goto LAB_0004ddf0;\n              }\n              iVar16 = (*(code *)(iVar26 + -0x7510))(puStack_f0,uVar41);\n            } while (iVar16 != 0);\n            uStack_168 = 0xc;\n            uVar14 = uStack_168;\njoined_r0x0004e770:\n            uStack_168 = uVar14;\n            if (piStack_e0 == (int *)0x0) {\n              piVar17 = (int *)0x0;\n              goto LAB_0004dbb4;\n            }\n            uVar37 = 0;\nLAB_0004ddfc:\n            uVar37 = FUN_0004d0a8(&uStack_168,&puStack_144,uVar37);\nLAB_0004de1c:\n            uVar14 = uStack_11c;\n            if (uVar37 == 0) {\n              piVar17 = piStack_e0;\n              if (uStack_168 != 0) goto LAB_0004dbb4;\n              if ((piStack_e0 == (int *)0x0) || ((bVar5 && (!bVar22)))) break;\n              param_4 = &uStack_168;\n              do {\n                bVar2 = false;\n                piVar17 = piStack_e0 + uStack_11c;\n                uVar14 = uStack_11c;\n                do {\n                  uVar37 = uVar14 + 1;\n                  piVar17 = piVar17 + 1;\n                  if (iStack_dc < (int)uVar37) {\n                    if (bVar2) {\n                      uStack_11c = uVar14;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar2 = true;\n                  uVar14 = uVar37;\n                } while (*piVar17 == 0);\n                uStack_11c = uVar37;\n                uVar37 = FUN_0004d0a8(param_4,&puStack_144,0);\n                uVar14 = uStack_11c;\n                if (uStack_168 != 0) {\n                  if (uVar37 == 0) goto LAB_0004e0cc;\n                  break;\n                }\n              } while (uVar37 == 0);\n            }\n            uVar42 = uStack_1d0;\n            if ((bVar4) && (uVar42 = uVar40, uVar41 != uVar37)) {\n              bVar4 = false;\n              uVar42 = uStack_1d0;\n            }\n            uStack_1d0 = uVar42;\n            uVar41 = uVar37;\n            uStack_11c = uVar14;\n            if (((*(byte *)(uVar37 + 0x34) & 8) != 0) &&\n               (((*(byte *)(uVar37 + 0x34) & 1) == 0 ||\n                (iVar16 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar37 + 8),uVar37 + 0xc,uVar14)\n                , iVar16 != 0)))) {\n              if (!bVar22) goto LAB_0004e0e4;\n              ppuStack_1dc = (uint **)0x0;\n              uVar6 = uVar14;\n              bVar5 = bVar22;\n            }\n          }\nLAB_0004e0cc:\n          uVar14 = uVar6;\n          if (ppuStack_1dc != (uint **)0x0) {\n            *ppuStack_1dc = (uint *)((int)*ppuStack_1dc + uStack_1d0);\n          }\n        }\n        else {\n          uVar14 = FUN_00047924(&puStack_144,uVar41 + 8,uVar41 + 0xc,0);\n          uStack_168 = uVar14;\n          if (uVar14 == 0) {\n            if ((*(byte *)(uVar41 + 0x34) & 2) == 0) {\n              bVar4 = false;\n            }\n            else {\n              uVar14 = FUN_0004c6a8(&puStack_144,uVar41 + 8,uVar41 + 0xc);\n              uStack_168 = uVar14;\n              if (uVar14 != 0) goto LAB_0004e0e4;\n              bVar4 = false;\n            }\n            goto LAB_0004dd48;\n          }\n        }" if (parenthesized_expression "((piStack_e0 == (int *)0x0) ||\n           (uVar14 = puVar36[0x13], piStack_e0[uVar6] = uVar41, uVar14 == 0))" ( (binary_expression "(piStack_e0 == (int *)0x0) ||\n           (uVar14 = puVar36[0x13], piStack_e0[uVar6] = uVar41, uVar14 == 0)" (parenthesized_expression "(piStack_e0 == (int *)0x0)" ( (binary_expression "piStack_e0 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(uVar14 = puVar36[0x13], piStack_e0[uVar6] = uVar41, uVar14 == 0)" ( (comma_expression "uVar14 = puVar36[0x13], piStack_e0[uVar6] = uVar41, uVar14 == 0" (assignment_expression "uVar14 = puVar36[0x13]" identifier = (subscript_expression "puVar36[0x13]" identifier [ number_literal ])) , (comma_expression "piStack_e0[uVar6] = uVar41, uVar14 == 0" (assignment_expression "piStack_e0[uVar6] = uVar41" (subscript_expression "piStack_e0[uVar6]" identifier [ identifier ]) = identifier) , (binary_expression "uVar14 == 0" identifier == number_literal))) ))) )) (compound_statement "{\nLAB_0004dd48:\n          if (*(int *)(uVar41 + 0x34) << 4 < 0) {\n            if (((*(byte *)(uVar41 + 0x34) & 1) == 0) ||\n               (iVar30 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar41 + 8),uVar41 + 0xc,uVar6),\n               iVar30 != 0)) {\n              uVar14 = uVar6;\n              bVar5 = bVar22;\n              if (!bVar22) goto LAB_0004e0e4;\n            }\n            else {\n              uVar6 = 0xffffffff;\n              bVar5 = false;\n            }\n          }\n          else {\n            uVar6 = 0xffffffff;\n            bVar5 = false;\n          }\n          iVar30 = *(int *)(puVar46 + 0x28244);\n          iVar15 = *(int *)(puVar46 + 0x2829c);\n          uVar14 = uStack_11c;\n          ppuStack_1dc = ppuVar12;\n          while ((int)uVar14 < (int)puStack_10c) {\n            uVar40 = uVar14 + 1;\n            if ((((int)uVar40 < (int)uStack_120) || ((int)puStack_114 <= (int)uStack_120)) &&\n               (((int)uVar40 < (int)puStack_128 || ((int)puStack_114 <= (int)puStack_128)))) {\n              iVar16 = *(int *)(uVar41 + 0x34);\n              puVar36 = puStack_f0;\n            }\n            else {\n              uStack_168 = (*(code *)(iVar30 + 0x41e4))(&puStack_144,uVar14 + 2);\n              if (uStack_168 != 0) {\n                if (uStack_168 == 0xc) goto LAB_0004dbf8;\n                uVar20 = 0x46c;\n                goto LAB_0004ea9c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x34);\n              uVar14 = uStack_11c;\n              puVar36 = puStack_f0;\n            }\n            puStack_f0 = puVar36;\n            if (iVar16 << 5 < 0) {\n              iVar16 = *(int *)(uVar41 + 8);\n              if (0 < iVar16) {\n                param_4 = (uint *)0x0;\n                iVar18 = *(int *)(puVar46 + 0x28244);\n                pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7ab0);\n                do {\n                  uVar42 = *puVar36;\n                  iVar44 = *(int *)(*(int *)(uVar41 + 0xc) + (int)param_4 * 4);\n                  uVar37 = *(uint *)(uVar42 + iVar44 * 8 + 4);\n                  if ((uVar37 & 0x800) != 0) {\n                    if ((uVar37 & 0xffc000) != 0) {\n                      uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec);\n                      uVar37 = (uVar37 << 8) >> 0x16;\n                      if ((uVar37 & 4) == 0) {\n                        uVar27 = uVar19 & 1;\n                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    iVar16 = (*(code *)(iVar15 + -0x4eb0))\n                                       (uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14);\n                    if (iVar16 != 0) {\n                      if (iStack_cc < iVar16) {\n                        iStack_cc = iVar16;\n                      }\n                      iVar16 = iVar16 + uStack_11c;\n                      uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16);\n                      uVar14 = uStack_164;\n                      if (uStack_164 != 0) goto joined_r0x0004e770;\n                      piVar33 = piStack_e0 + iVar16;\n                      iVar28 = *piVar33;\n                      piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc);\n                      if (iVar28 == 0) {\n                        piStack_160 = (int *)*piVar17;\n                        piStack_15c = (int *)piVar17[1];\n                        iStack_158 = piVar17[2];\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        *piVar33 = iVar44;\n                      }\n                      else {\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }\n                      if ((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar16 = *(int *)(uVar41 + 8);\n                    uVar14 = uStack_11c;\n                  }\nLAB_0004e670:\n                  param_4 = (uint *)((int)param_4 + 1);\n                } while ((int)param_4 < iVar16);\n              }\n              uStack_168 = 0;\n            }\n            uStack_11c = uVar14 + 1;\n            uVar14 = (uint)*(byte *)((int)puStack_140 + uVar14);\n            do {\n              if (*(int *)(uVar41 + 0x2c) != 0) {\n                uVar37 = *(uint *)(*(int *)(uVar41 + 0x2c) + uVar14 * 4);\nLAB_0004ddf0:\n                if (piStack_e0 != (int *)0x0) goto LAB_0004ddfc;\n                goto LAB_0004de1c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x30);\n              if (iVar16 != 0) {\n                uVar37 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n                if ((uVar37 & 1) == 0) {\n                  uVar37 = *(uint *)(iVar16 + uVar14 * 4);\n                }\n                else {\n                  uVar37 = *(uint *)(iVar16 + (uVar14 + 0x100) * 4);\n                }\n                goto LAB_0004ddf0;\n              }\n              iVar16 = (*(code *)(iVar26 + -0x7510))(puStack_f0,uVar41);\n            } while (iVar16 != 0);\n            uStack_168 = 0xc;\n            uVar14 = uStack_168;\njoined_r0x0004e770:\n            uStack_168 = uVar14;\n            if (piStack_e0 == (int *)0x0) {\n              piVar17 = (int *)0x0;\n              goto LAB_0004dbb4;\n            }\n            uVar37 = 0;\nLAB_0004ddfc:\n            uVar37 = FUN_0004d0a8(&uStack_168,&puStack_144,uVar37);\nLAB_0004de1c:\n            uVar14 = uStack_11c;\n            if (uVar37 == 0) {\n              piVar17 = piStack_e0;\n              if (uStack_168 != 0) goto LAB_0004dbb4;\n              if ((piStack_e0 == (int *)0x0) || ((bVar5 && (!bVar22)))) break;\n              param_4 = &uStack_168;\n              do {\n                bVar2 = false;\n                piVar17 = piStack_e0 + uStack_11c;\n                uVar14 = uStack_11c;\n                do {\n                  uVar37 = uVar14 + 1;\n                  piVar17 = piVar17 + 1;\n                  if (iStack_dc < (int)uVar37) {\n                    if (bVar2) {\n                      uStack_11c = uVar14;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar2 = true;\n                  uVar14 = uVar37;\n                } while (*piVar17 == 0);\n                uStack_11c = uVar37;\n                uVar37 = FUN_0004d0a8(param_4,&puStack_144,0);\n                uVar14 = uStack_11c;\n                if (uStack_168 != 0) {\n                  if (uVar37 == 0) goto LAB_0004e0cc;\n                  break;\n                }\n              } while (uVar37 == 0);\n            }\n            uVar42 = uStack_1d0;\n            if ((bVar4) && (uVar42 = uVar40, uVar41 != uVar37)) {\n              bVar4 = false;\n              uVar42 = uStack_1d0;\n            }\n            uStack_1d0 = uVar42;\n            uVar41 = uVar37;\n            uStack_11c = uVar14;\n            if (((*(byte *)(uVar37 + 0x34) & 8) != 0) &&\n               (((*(byte *)(uVar37 + 0x34) & 1) == 0 ||\n                (iVar16 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar37 + 8),uVar37 + 0xc,uVar14)\n                , iVar16 != 0)))) {\n              if (!bVar22) goto LAB_0004e0e4;\n              ppuStack_1dc = (uint **)0x0;\n              uVar6 = uVar14;\n              bVar5 = bVar22;\n            }\n          }\nLAB_0004e0cc:\n          uVar14 = uVar6;\n          if (ppuStack_1dc != (uint **)0x0) {\n            *ppuStack_1dc = (uint *)((int)*ppuStack_1dc + uStack_1d0);\n          }\n        }" { (labeled_statement "LAB_0004dd48:\n          if (*(int *)(uVar41 + 0x34) << 4 < 0) {\n            if (((*(byte *)(uVar41 + 0x34) & 1) == 0) ||\n               (iVar30 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar41 + 8),uVar41 + 0xc,uVar6),\n               iVar30 != 0)) {\n              uVar14 = uVar6;\n              bVar5 = bVar22;\n              if (!bVar22) goto LAB_0004e0e4;\n            }\n            else {\n              uVar6 = 0xffffffff;\n              bVar5 = false;\n            }\n          }\n          else {\n            uVar6 = 0xffffffff;\n            bVar5 = false;\n          }" statement_identifier : (if_statement "if (*(int *)(uVar41 + 0x34) << 4 < 0) {\n            if (((*(byte *)(uVar41 + 0x34) & 1) == 0) ||\n               (iVar30 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar41 + 8),uVar41 + 0xc,uVar6),\n               iVar30 != 0)) {\n              uVar14 = uVar6;\n              bVar5 = bVar22;\n              if (!bVar22) goto LAB_0004e0e4;\n            }\n            else {\n              uVar6 = 0xffffffff;\n              bVar5 = false;\n            }\n          }\n          else {\n            uVar6 = 0xffffffff;\n            bVar5 = false;\n          }" if (parenthesized_expression "(*(int *)(uVar41 + 0x34) << 4 < 0)" ( (binary_expression "*(int *)(uVar41 + 0x34) << 4 < 0" (binary_expression "*(int *)(uVar41 + 0x34) << 4" (pointer_expression "*(int *)(uVar41 + 0x34)" * (cast_expression "(int *)(uVar41 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar41 + 0x34)" ( (binary_expression "uVar41 + 0x34" identifier + number_literal) )))) << number_literal) < number_literal) )) (compound_statement "{\n            if (((*(byte *)(uVar41 + 0x34) & 1) == 0) ||\n               (iVar30 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar41 + 8),uVar41 + 0xc,uVar6),\n               iVar30 != 0)) {\n              uVar14 = uVar6;\n              bVar5 = bVar22;\n              if (!bVar22) goto LAB_0004e0e4;\n            }\n            else {\n              uVar6 = 0xffffffff;\n              bVar5 = false;\n            }\n          }" { (if_statement "if (((*(byte *)(uVar41 + 0x34) & 1) == 0) ||\n               (iVar30 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar41 + 8),uVar41 + 0xc,uVar6),\n               iVar30 != 0)) {\n              uVar14 = uVar6;\n              bVar5 = bVar22;\n              if (!bVar22) goto LAB_0004e0e4;\n            }\n            else {\n              uVar6 = 0xffffffff;\n              bVar5 = false;\n            }" if (parenthesized_expression "(((*(byte *)(uVar41 + 0x34) & 1) == 0) ||\n               (iVar30 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar41 + 8),uVar41 + 0xc,uVar6),\n               iVar30 != 0))" ( (binary_expression "((*(byte *)(uVar41 + 0x34) & 1) == 0) ||\n               (iVar30 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar41 + 8),uVar41 + 0xc,uVar6),\n               iVar30 != 0)" (parenthesized_expression "((*(byte *)(uVar41 + 0x34) & 1) == 0)" ( (binary_expression "(*(byte *)(uVar41 + 0x34) & 1) == 0" (parenthesized_expression "(*(byte *)(uVar41 + 0x34) & 1)" ( (binary_expression "*(byte *)(uVar41 + 0x34) & 1" (pointer_expression "*(byte *)(uVar41 + 0x34)" * (cast_expression "(byte *)(uVar41 + 0x34)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar41 + 0x34)" ( (binary_expression "uVar41 + 0x34" identifier + number_literal) )))) & number_literal) )) == number_literal) )) || (parenthesized_expression "(iVar30 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar41 + 8),uVar41 + 0xc,uVar6),\n               iVar30 != 0)" ( (comma_expression "iVar30 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar41 + 8),uVar41 + 0xc,uVar6),\n               iVar30 != 0" (assignment_expression "iVar30 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar41 + 8),uVar41 + 0xc,uVar6)" identifier = (call_expression "FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar41 + 8),uVar41 + 0xc,uVar6)" identifier (argument_list "(&puStack_144,*(undefined4 *)(uVar41 + 8),uVar41 + 0xc,uVar6)" ( (pointer_expression "&puStack_144" & identifier) , (pointer_expression "*(undefined4 *)(uVar41 + 8)" * (cast_expression "(undefined4 *)(uVar41 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar41 + 8)" ( (binary_expression "uVar41 + 8" identifier + number_literal) )))) , (binary_expression "uVar41 + 0xc" identifier + number_literal) , identifier )))) , (binary_expression "iVar30 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n              uVar14 = uVar6;\n              bVar5 = bVar22;\n              if (!bVar22) goto LAB_0004e0e4;\n            }" { (expression_statement "uVar14 = uVar6;" (assignment_expression "uVar14 = uVar6" identifier = identifier) ;) (expression_statement "bVar5 = bVar22;" (assignment_expression "bVar5 = bVar22" identifier = identifier) ;) (if_statement "if (!bVar22) goto LAB_0004e0e4;" if (parenthesized_expression "(!bVar22)" ( (unary_expression "!bVar22" ! identifier) )) (goto_statement "goto LAB_0004e0e4;" goto statement_identifier ;)) }) (else_clause "else {\n              uVar6 = 0xffffffff;\n              bVar5 = false;\n            }" else (compound_statement "{\n              uVar6 = 0xffffffff;\n              bVar5 = false;\n            }" { (expression_statement "uVar6 = 0xffffffff;" (assignment_expression "uVar6 = 0xffffffff" identifier = number_literal) ;) (expression_statement "bVar5 = false;" (assignment_expression "bVar5 = false" identifier = false) ;) }))) }) (else_clause "else {\n            uVar6 = 0xffffffff;\n            bVar5 = false;\n          }" else (compound_statement "{\n            uVar6 = 0xffffffff;\n            bVar5 = false;\n          }" { (expression_statement "uVar6 = 0xffffffff;" (assignment_expression "uVar6 = 0xffffffff" identifier = number_literal) ;) (expression_statement "bVar5 = false;" (assignment_expression "bVar5 = false" identifier = false) ;) })))) (expression_statement "iVar30 = *(int *)(puVar46 + 0x28244);" (assignment_expression "iVar30 = *(int *)(puVar46 + 0x28244)" identifier = (pointer_expression "*(int *)(puVar46 + 0x28244)" * (cast_expression "(int *)(puVar46 + 0x28244)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar46 + 0x28244)" ( (binary_expression "puVar46 + 0x28244" identifier + number_literal) ))))) ;) (expression_statement "iVar15 = *(int *)(puVar46 + 0x2829c);" (assignment_expression "iVar15 = *(int *)(puVar46 + 0x2829c)" identifier = (pointer_expression "*(int *)(puVar46 + 0x2829c)" * (cast_expression "(int *)(puVar46 + 0x2829c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar46 + 0x2829c)" ( (binary_expression "puVar46 + 0x2829c" identifier + number_literal) ))))) ;) (expression_statement "uVar14 = uStack_11c;" (assignment_expression "uVar14 = uStack_11c" identifier = identifier) ;) (expression_statement "ppuStack_1dc = ppuVar12;" (assignment_expression "ppuStack_1dc = ppuVar12" identifier = identifier) ;) (while_statement "while ((int)uVar14 < (int)puStack_10c) {\n            uVar40 = uVar14 + 1;\n            if ((((int)uVar40 < (int)uStack_120) || ((int)puStack_114 <= (int)uStack_120)) &&\n               (((int)uVar40 < (int)puStack_128 || ((int)puStack_114 <= (int)puStack_128)))) {\n              iVar16 = *(int *)(uVar41 + 0x34);\n              puVar36 = puStack_f0;\n            }\n            else {\n              uStack_168 = (*(code *)(iVar30 + 0x41e4))(&puStack_144,uVar14 + 2);\n              if (uStack_168 != 0) {\n                if (uStack_168 == 0xc) goto LAB_0004dbf8;\n                uVar20 = 0x46c;\n                goto LAB_0004ea9c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x34);\n              uVar14 = uStack_11c;\n              puVar36 = puStack_f0;\n            }\n            puStack_f0 = puVar36;\n            if (iVar16 << 5 < 0) {\n              iVar16 = *(int *)(uVar41 + 8);\n              if (0 < iVar16) {\n                param_4 = (uint *)0x0;\n                iVar18 = *(int *)(puVar46 + 0x28244);\n                pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7ab0);\n                do {\n                  uVar42 = *puVar36;\n                  iVar44 = *(int *)(*(int *)(uVar41 + 0xc) + (int)param_4 * 4);\n                  uVar37 = *(uint *)(uVar42 + iVar44 * 8 + 4);\n                  if ((uVar37 & 0x800) != 0) {\n                    if ((uVar37 & 0xffc000) != 0) {\n                      uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec);\n                      uVar37 = (uVar37 << 8) >> 0x16;\n                      if ((uVar37 & 4) == 0) {\n                        uVar27 = uVar19 & 1;\n                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    iVar16 = (*(code *)(iVar15 + -0x4eb0))\n                                       (uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14);\n                    if (iVar16 != 0) {\n                      if (iStack_cc < iVar16) {\n                        iStack_cc = iVar16;\n                      }\n                      iVar16 = iVar16 + uStack_11c;\n                      uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16);\n                      uVar14 = uStack_164;\n                      if (uStack_164 != 0) goto joined_r0x0004e770;\n                      piVar33 = piStack_e0 + iVar16;\n                      iVar28 = *piVar33;\n                      piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc);\n                      if (iVar28 == 0) {\n                        piStack_160 = (int *)*piVar17;\n                        piStack_15c = (int *)piVar17[1];\n                        iStack_158 = piVar17[2];\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        *piVar33 = iVar44;\n                      }\n                      else {\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }\n                      if ((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar16 = *(int *)(uVar41 + 8);\n                    uVar14 = uStack_11c;\n                  }\nLAB_0004e670:\n                  param_4 = (uint *)((int)param_4 + 1);\n                } while ((int)param_4 < iVar16);\n              }\n              uStack_168 = 0;\n            }\n            uStack_11c = uVar14 + 1;\n            uVar14 = (uint)*(byte *)((int)puStack_140 + uVar14);\n            do {\n              if (*(int *)(uVar41 + 0x2c) != 0) {\n                uVar37 = *(uint *)(*(int *)(uVar41 + 0x2c) + uVar14 * 4);\nLAB_0004ddf0:\n                if (piStack_e0 != (int *)0x0) goto LAB_0004ddfc;\n                goto LAB_0004de1c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x30);\n              if (iVar16 != 0) {\n                uVar37 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n                if ((uVar37 & 1) == 0) {\n                  uVar37 = *(uint *)(iVar16 + uVar14 * 4);\n                }\n                else {\n                  uVar37 = *(uint *)(iVar16 + (uVar14 + 0x100) * 4);\n                }\n                goto LAB_0004ddf0;\n              }\n              iVar16 = (*(code *)(iVar26 + -0x7510))(puStack_f0,uVar41);\n            } while (iVar16 != 0);\n            uStack_168 = 0xc;\n            uVar14 = uStack_168;\njoined_r0x0004e770:\n            uStack_168 = uVar14;\n            if (piStack_e0 == (int *)0x0) {\n              piVar17 = (int *)0x0;\n              goto LAB_0004dbb4;\n            }\n            uVar37 = 0;\nLAB_0004ddfc:\n            uVar37 = FUN_0004d0a8(&uStack_168,&puStack_144,uVar37);\nLAB_0004de1c:\n            uVar14 = uStack_11c;\n            if (uVar37 == 0) {\n              piVar17 = piStack_e0;\n              if (uStack_168 != 0) goto LAB_0004dbb4;\n              if ((piStack_e0 == (int *)0x0) || ((bVar5 && (!bVar22)))) break;\n              param_4 = &uStack_168;\n              do {\n                bVar2 = false;\n                piVar17 = piStack_e0 + uStack_11c;\n                uVar14 = uStack_11c;\n                do {\n                  uVar37 = uVar14 + 1;\n                  piVar17 = piVar17 + 1;\n                  if (iStack_dc < (int)uVar37) {\n                    if (bVar2) {\n                      uStack_11c = uVar14;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar2 = true;\n                  uVar14 = uVar37;\n                } while (*piVar17 == 0);\n                uStack_11c = uVar37;\n                uVar37 = FUN_0004d0a8(param_4,&puStack_144,0);\n                uVar14 = uStack_11c;\n                if (uStack_168 != 0) {\n                  if (uVar37 == 0) goto LAB_0004e0cc;\n                  break;\n                }\n              } while (uVar37 == 0);\n            }\n            uVar42 = uStack_1d0;\n            if ((bVar4) && (uVar42 = uVar40, uVar41 != uVar37)) {\n              bVar4 = false;\n              uVar42 = uStack_1d0;\n            }\n            uStack_1d0 = uVar42;\n            uVar41 = uVar37;\n            uStack_11c = uVar14;\n            if (((*(byte *)(uVar37 + 0x34) & 8) != 0) &&\n               (((*(byte *)(uVar37 + 0x34) & 1) == 0 ||\n                (iVar16 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar37 + 8),uVar37 + 0xc,uVar14)\n                , iVar16 != 0)))) {\n              if (!bVar22) goto LAB_0004e0e4;\n              ppuStack_1dc = (uint **)0x0;\n              uVar6 = uVar14;\n              bVar5 = bVar22;\n            }\n          }" while (parenthesized_expression "((int)uVar14 < (int)puStack_10c)" ( (binary_expression "(int)uVar14 < (int)puStack_10c" (cast_expression "(int)uVar14" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)puStack_10c" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            uVar40 = uVar14 + 1;\n            if ((((int)uVar40 < (int)uStack_120) || ((int)puStack_114 <= (int)uStack_120)) &&\n               (((int)uVar40 < (int)puStack_128 || ((int)puStack_114 <= (int)puStack_128)))) {\n              iVar16 = *(int *)(uVar41 + 0x34);\n              puVar36 = puStack_f0;\n            }\n            else {\n              uStack_168 = (*(code *)(iVar30 + 0x41e4))(&puStack_144,uVar14 + 2);\n              if (uStack_168 != 0) {\n                if (uStack_168 == 0xc) goto LAB_0004dbf8;\n                uVar20 = 0x46c;\n                goto LAB_0004ea9c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x34);\n              uVar14 = uStack_11c;\n              puVar36 = puStack_f0;\n            }\n            puStack_f0 = puVar36;\n            if (iVar16 << 5 < 0) {\n              iVar16 = *(int *)(uVar41 + 8);\n              if (0 < iVar16) {\n                param_4 = (uint *)0x0;\n                iVar18 = *(int *)(puVar46 + 0x28244);\n                pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7ab0);\n                do {\n                  uVar42 = *puVar36;\n                  iVar44 = *(int *)(*(int *)(uVar41 + 0xc) + (int)param_4 * 4);\n                  uVar37 = *(uint *)(uVar42 + iVar44 * 8 + 4);\n                  if ((uVar37 & 0x800) != 0) {\n                    if ((uVar37 & 0xffc000) != 0) {\n                      uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec);\n                      uVar37 = (uVar37 << 8) >> 0x16;\n                      if ((uVar37 & 4) == 0) {\n                        uVar27 = uVar19 & 1;\n                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    iVar16 = (*(code *)(iVar15 + -0x4eb0))\n                                       (uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14);\n                    if (iVar16 != 0) {\n                      if (iStack_cc < iVar16) {\n                        iStack_cc = iVar16;\n                      }\n                      iVar16 = iVar16 + uStack_11c;\n                      uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16);\n                      uVar14 = uStack_164;\n                      if (uStack_164 != 0) goto joined_r0x0004e770;\n                      piVar33 = piStack_e0 + iVar16;\n                      iVar28 = *piVar33;\n                      piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc);\n                      if (iVar28 == 0) {\n                        piStack_160 = (int *)*piVar17;\n                        piStack_15c = (int *)piVar17[1];\n                        iStack_158 = piVar17[2];\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        *piVar33 = iVar44;\n                      }\n                      else {\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }\n                      if ((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar16 = *(int *)(uVar41 + 8);\n                    uVar14 = uStack_11c;\n                  }\nLAB_0004e670:\n                  param_4 = (uint *)((int)param_4 + 1);\n                } while ((int)param_4 < iVar16);\n              }\n              uStack_168 = 0;\n            }\n            uStack_11c = uVar14 + 1;\n            uVar14 = (uint)*(byte *)((int)puStack_140 + uVar14);\n            do {\n              if (*(int *)(uVar41 + 0x2c) != 0) {\n                uVar37 = *(uint *)(*(int *)(uVar41 + 0x2c) + uVar14 * 4);\nLAB_0004ddf0:\n                if (piStack_e0 != (int *)0x0) goto LAB_0004ddfc;\n                goto LAB_0004de1c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x30);\n              if (iVar16 != 0) {\n                uVar37 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n                if ((uVar37 & 1) == 0) {\n                  uVar37 = *(uint *)(iVar16 + uVar14 * 4);\n                }\n                else {\n                  uVar37 = *(uint *)(iVar16 + (uVar14 + 0x100) * 4);\n                }\n                goto LAB_0004ddf0;\n              }\n              iVar16 = (*(code *)(iVar26 + -0x7510))(puStack_f0,uVar41);\n            } while (iVar16 != 0);\n            uStack_168 = 0xc;\n            uVar14 = uStack_168;\njoined_r0x0004e770:\n            uStack_168 = uVar14;\n            if (piStack_e0 == (int *)0x0) {\n              piVar17 = (int *)0x0;\n              goto LAB_0004dbb4;\n            }\n            uVar37 = 0;\nLAB_0004ddfc:\n            uVar37 = FUN_0004d0a8(&uStack_168,&puStack_144,uVar37);\nLAB_0004de1c:\n            uVar14 = uStack_11c;\n            if (uVar37 == 0) {\n              piVar17 = piStack_e0;\n              if (uStack_168 != 0) goto LAB_0004dbb4;\n              if ((piStack_e0 == (int *)0x0) || ((bVar5 && (!bVar22)))) break;\n              param_4 = &uStack_168;\n              do {\n                bVar2 = false;\n                piVar17 = piStack_e0 + uStack_11c;\n                uVar14 = uStack_11c;\n                do {\n                  uVar37 = uVar14 + 1;\n                  piVar17 = piVar17 + 1;\n                  if (iStack_dc < (int)uVar37) {\n                    if (bVar2) {\n                      uStack_11c = uVar14;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar2 = true;\n                  uVar14 = uVar37;\n                } while (*piVar17 == 0);\n                uStack_11c = uVar37;\n                uVar37 = FUN_0004d0a8(param_4,&puStack_144,0);\n                uVar14 = uStack_11c;\n                if (uStack_168 != 0) {\n                  if (uVar37 == 0) goto LAB_0004e0cc;\n                  break;\n                }\n              } while (uVar37 == 0);\n            }\n            uVar42 = uStack_1d0;\n            if ((bVar4) && (uVar42 = uVar40, uVar41 != uVar37)) {\n              bVar4 = false;\n              uVar42 = uStack_1d0;\n            }\n            uStack_1d0 = uVar42;\n            uVar41 = uVar37;\n            uStack_11c = uVar14;\n            if (((*(byte *)(uVar37 + 0x34) & 8) != 0) &&\n               (((*(byte *)(uVar37 + 0x34) & 1) == 0 ||\n                (iVar16 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar37 + 8),uVar37 + 0xc,uVar14)\n                , iVar16 != 0)))) {\n              if (!bVar22) goto LAB_0004e0e4;\n              ppuStack_1dc = (uint **)0x0;\n              uVar6 = uVar14;\n              bVar5 = bVar22;\n            }\n          }" { (expression_statement "uVar40 = uVar14 + 1;" (assignment_expression "uVar40 = uVar14 + 1" identifier = (binary_expression "uVar14 + 1" identifier + number_literal)) ;) (if_statement "if ((((int)uVar40 < (int)uStack_120) || ((int)puStack_114 <= (int)uStack_120)) &&\n               (((int)uVar40 < (int)puStack_128 || ((int)puStack_114 <= (int)puStack_128)))) {\n              iVar16 = *(int *)(uVar41 + 0x34);\n              puVar36 = puStack_f0;\n            }\n            else {\n              uStack_168 = (*(code *)(iVar30 + 0x41e4))(&puStack_144,uVar14 + 2);\n              if (uStack_168 != 0) {\n                if (uStack_168 == 0xc) goto LAB_0004dbf8;\n                uVar20 = 0x46c;\n                goto LAB_0004ea9c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x34);\n              uVar14 = uStack_11c;\n              puVar36 = puStack_f0;\n            }" if (parenthesized_expression "((((int)uVar40 < (int)uStack_120) || ((int)puStack_114 <= (int)uStack_120)) &&\n               (((int)uVar40 < (int)puStack_128 || ((int)puStack_114 <= (int)puStack_128))))" ( (binary_expression "(((int)uVar40 < (int)uStack_120) || ((int)puStack_114 <= (int)uStack_120)) &&\n               (((int)uVar40 < (int)puStack_128 || ((int)puStack_114 <= (int)puStack_128)))" (parenthesized_expression "(((int)uVar40 < (int)uStack_120) || ((int)puStack_114 <= (int)uStack_120))" ( (binary_expression "((int)uVar40 < (int)uStack_120) || ((int)puStack_114 <= (int)uStack_120)" (parenthesized_expression "((int)uVar40 < (int)uStack_120)" ( (binary_expression "(int)uVar40 < (int)uStack_120" (cast_expression "(int)uVar40" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)uStack_120" ( (type_descriptor "int" primitive_type) ) identifier)) )) || (parenthesized_expression "((int)puStack_114 <= (int)uStack_120)" ( (binary_expression "(int)puStack_114 <= (int)uStack_120" (cast_expression "(int)puStack_114" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)uStack_120" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) && (parenthesized_expression "(((int)uVar40 < (int)puStack_128 || ((int)puStack_114 <= (int)puStack_128)))" ( (parenthesized_expression "((int)uVar40 < (int)puStack_128 || ((int)puStack_114 <= (int)puStack_128))" ( (binary_expression "(int)uVar40 < (int)puStack_128 || ((int)puStack_114 <= (int)puStack_128)" (binary_expression "(int)uVar40 < (int)puStack_128" (cast_expression "(int)uVar40" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)puStack_128" ( (type_descriptor "int" primitive_type) ) identifier)) || (parenthesized_expression "((int)puStack_114 <= (int)puStack_128)" ( (binary_expression "(int)puStack_114 <= (int)puStack_128" (cast_expression "(int)puStack_114" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)puStack_128" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) ))) )) (compound_statement "{\n              iVar16 = *(int *)(uVar41 + 0x34);\n              puVar36 = puStack_f0;\n            }" { (expression_statement "iVar16 = *(int *)(uVar41 + 0x34);" (assignment_expression "iVar16 = *(int *)(uVar41 + 0x34)" identifier = (pointer_expression "*(int *)(uVar41 + 0x34)" * (cast_expression "(int *)(uVar41 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar41 + 0x34)" ( (binary_expression "uVar41 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "puVar36 = puStack_f0;" (assignment_expression "puVar36 = puStack_f0" identifier = identifier) ;) }) (else_clause "else {\n              uStack_168 = (*(code *)(iVar30 + 0x41e4))(&puStack_144,uVar14 + 2);\n              if (uStack_168 != 0) {\n                if (uStack_168 == 0xc) goto LAB_0004dbf8;\n                uVar20 = 0x46c;\n                goto LAB_0004ea9c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x34);\n              uVar14 = uStack_11c;\n              puVar36 = puStack_f0;\n            }" else (compound_statement "{\n              uStack_168 = (*(code *)(iVar30 + 0x41e4))(&puStack_144,uVar14 + 2);\n              if (uStack_168 != 0) {\n                if (uStack_168 == 0xc) goto LAB_0004dbf8;\n                uVar20 = 0x46c;\n                goto LAB_0004ea9c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x34);\n              uVar14 = uStack_11c;\n              puVar36 = puStack_f0;\n            }" { (expression_statement "uStack_168 = (*(code *)(iVar30 + 0x41e4))(&puStack_144,uVar14 + 2);" (assignment_expression "uStack_168 = (*(code *)(iVar30 + 0x41e4))(&puStack_144,uVar14 + 2)" identifier = (call_expression "(*(code *)(iVar30 + 0x41e4))(&puStack_144,uVar14 + 2)" (parenthesized_expression "(*(code *)(iVar30 + 0x41e4))" ( (pointer_expression "*(code *)(iVar30 + 0x41e4)" * (cast_expression "(code *)(iVar30 + 0x41e4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar30 + 0x41e4)" ( (binary_expression "iVar30 + 0x41e4" identifier + number_literal) )))) )) (argument_list "(&puStack_144,uVar14 + 2)" ( (pointer_expression "&puStack_144" & identifier) , (binary_expression "uVar14 + 2" identifier + number_literal) )))) ;) (if_statement "if (uStack_168 != 0) {\n                if (uStack_168 == 0xc) goto LAB_0004dbf8;\n                uVar20 = 0x46c;\n                goto LAB_0004ea9c;\n              }" if (parenthesized_expression "(uStack_168 != 0)" ( (binary_expression "uStack_168 != 0" identifier != number_literal) )) (compound_statement "{\n                if (uStack_168 == 0xc) goto LAB_0004dbf8;\n                uVar20 = 0x46c;\n                goto LAB_0004ea9c;\n              }" { (if_statement "if (uStack_168 == 0xc) goto LAB_0004dbf8;" if (parenthesized_expression "(uStack_168 == 0xc)" ( (binary_expression "uStack_168 == 0xc" identifier == number_literal) )) (goto_statement "goto LAB_0004dbf8;" goto statement_identifier ;)) (expression_statement "uVar20 = 0x46c;" (assignment_expression "uVar20 = 0x46c" identifier = number_literal) ;) (goto_statement "goto LAB_0004ea9c;" goto statement_identifier ;) })) (expression_statement "iVar16 = *(int *)(uVar41 + 0x34);" (assignment_expression "iVar16 = *(int *)(uVar41 + 0x34)" identifier = (pointer_expression "*(int *)(uVar41 + 0x34)" * (cast_expression "(int *)(uVar41 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar41 + 0x34)" ( (binary_expression "uVar41 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "uVar14 = uStack_11c;" (assignment_expression "uVar14 = uStack_11c" identifier = identifier) ;) (expression_statement "puVar36 = puStack_f0;" (assignment_expression "puVar36 = puStack_f0" identifier = identifier) ;) }))) (expression_statement "puStack_f0 = puVar36;" (assignment_expression "puStack_f0 = puVar36" identifier = identifier) ;) (if_statement "if (iVar16 << 5 < 0) {\n              iVar16 = *(int *)(uVar41 + 8);\n              if (0 < iVar16) {\n                param_4 = (uint *)0x0;\n                iVar18 = *(int *)(puVar46 + 0x28244);\n                pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7ab0);\n                do {\n                  uVar42 = *puVar36;\n                  iVar44 = *(int *)(*(int *)(uVar41 + 0xc) + (int)param_4 * 4);\n                  uVar37 = *(uint *)(uVar42 + iVar44 * 8 + 4);\n                  if ((uVar37 & 0x800) != 0) {\n                    if ((uVar37 & 0xffc000) != 0) {\n                      uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec);\n                      uVar37 = (uVar37 << 8) >> 0x16;\n                      if ((uVar37 & 4) == 0) {\n                        uVar27 = uVar19 & 1;\n                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    iVar16 = (*(code *)(iVar15 + -0x4eb0))\n                                       (uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14);\n                    if (iVar16 != 0) {\n                      if (iStack_cc < iVar16) {\n                        iStack_cc = iVar16;\n                      }\n                      iVar16 = iVar16 + uStack_11c;\n                      uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16);\n                      uVar14 = uStack_164;\n                      if (uStack_164 != 0) goto joined_r0x0004e770;\n                      piVar33 = piStack_e0 + iVar16;\n                      iVar28 = *piVar33;\n                      piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc);\n                      if (iVar28 == 0) {\n                        piStack_160 = (int *)*piVar17;\n                        piStack_15c = (int *)piVar17[1];\n                        iStack_158 = piVar17[2];\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        *piVar33 = iVar44;\n                      }\n                      else {\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }\n                      if ((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar16 = *(int *)(uVar41 + 8);\n                    uVar14 = uStack_11c;\n                  }\nLAB_0004e670:\n                  param_4 = (uint *)((int)param_4 + 1);\n                } while ((int)param_4 < iVar16);\n              }\n              uStack_168 = 0;\n            }" if (parenthesized_expression "(iVar16 << 5 < 0)" ( (binary_expression "iVar16 << 5 < 0" (binary_expression "iVar16 << 5" identifier << number_literal) < number_literal) )) (compound_statement "{\n              iVar16 = *(int *)(uVar41 + 8);\n              if (0 < iVar16) {\n                param_4 = (uint *)0x0;\n                iVar18 = *(int *)(puVar46 + 0x28244);\n                pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7ab0);\n                do {\n                  uVar42 = *puVar36;\n                  iVar44 = *(int *)(*(int *)(uVar41 + 0xc) + (int)param_4 * 4);\n                  uVar37 = *(uint *)(uVar42 + iVar44 * 8 + 4);\n                  if ((uVar37 & 0x800) != 0) {\n                    if ((uVar37 & 0xffc000) != 0) {\n                      uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec);\n                      uVar37 = (uVar37 << 8) >> 0x16;\n                      if ((uVar37 & 4) == 0) {\n                        uVar27 = uVar19 & 1;\n                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    iVar16 = (*(code *)(iVar15 + -0x4eb0))\n                                       (uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14);\n                    if (iVar16 != 0) {\n                      if (iStack_cc < iVar16) {\n                        iStack_cc = iVar16;\n                      }\n                      iVar16 = iVar16 + uStack_11c;\n                      uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16);\n                      uVar14 = uStack_164;\n                      if (uStack_164 != 0) goto joined_r0x0004e770;\n                      piVar33 = piStack_e0 + iVar16;\n                      iVar28 = *piVar33;\n                      piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc);\n                      if (iVar28 == 0) {\n                        piStack_160 = (int *)*piVar17;\n                        piStack_15c = (int *)piVar17[1];\n                        iStack_158 = piVar17[2];\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        *piVar33 = iVar44;\n                      }\n                      else {\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }\n                      if ((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar16 = *(int *)(uVar41 + 8);\n                    uVar14 = uStack_11c;\n                  }\nLAB_0004e670:\n                  param_4 = (uint *)((int)param_4 + 1);\n                } while ((int)param_4 < iVar16);\n              }\n              uStack_168 = 0;\n            }" { (expression_statement "iVar16 = *(int *)(uVar41 + 8);" (assignment_expression "iVar16 = *(int *)(uVar41 + 8)" identifier = (pointer_expression "*(int *)(uVar41 + 8)" * (cast_expression "(int *)(uVar41 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar41 + 8)" ( (binary_expression "uVar41 + 8" identifier + number_literal) ))))) ;) (if_statement "if (0 < iVar16) {\n                param_4 = (uint *)0x0;\n                iVar18 = *(int *)(puVar46 + 0x28244);\n                pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7ab0);\n                do {\n                  uVar42 = *puVar36;\n                  iVar44 = *(int *)(*(int *)(uVar41 + 0xc) + (int)param_4 * 4);\n                  uVar37 = *(uint *)(uVar42 + iVar44 * 8 + 4);\n                  if ((uVar37 & 0x800) != 0) {\n                    if ((uVar37 & 0xffc000) != 0) {\n                      uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec);\n                      uVar37 = (uVar37 << 8) >> 0x16;\n                      if ((uVar37 & 4) == 0) {\n                        uVar27 = uVar19 & 1;\n                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    iVar16 = (*(code *)(iVar15 + -0x4eb0))\n                                       (uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14);\n                    if (iVar16 != 0) {\n                      if (iStack_cc < iVar16) {\n                        iStack_cc = iVar16;\n                      }\n                      iVar16 = iVar16 + uStack_11c;\n                      uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16);\n                      uVar14 = uStack_164;\n                      if (uStack_164 != 0) goto joined_r0x0004e770;\n                      piVar33 = piStack_e0 + iVar16;\n                      iVar28 = *piVar33;\n                      piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc);\n                      if (iVar28 == 0) {\n                        piStack_160 = (int *)*piVar17;\n                        piStack_15c = (int *)piVar17[1];\n                        iStack_158 = piVar17[2];\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        *piVar33 = iVar44;\n                      }\n                      else {\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }\n                      if ((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar16 = *(int *)(uVar41 + 8);\n                    uVar14 = uStack_11c;\n                  }\nLAB_0004e670:\n                  param_4 = (uint *)((int)param_4 + 1);\n                } while ((int)param_4 < iVar16);\n              }" if (parenthesized_expression "(0 < iVar16)" ( (binary_expression "0 < iVar16" number_literal < identifier) )) (compound_statement "{\n                param_4 = (uint *)0x0;\n                iVar18 = *(int *)(puVar46 + 0x28244);\n                pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7ab0);\n                do {\n                  uVar42 = *puVar36;\n                  iVar44 = *(int *)(*(int *)(uVar41 + 0xc) + (int)param_4 * 4);\n                  uVar37 = *(uint *)(uVar42 + iVar44 * 8 + 4);\n                  if ((uVar37 & 0x800) != 0) {\n                    if ((uVar37 & 0xffc000) != 0) {\n                      uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec);\n                      uVar37 = (uVar37 << 8) >> 0x16;\n                      if ((uVar37 & 4) == 0) {\n                        uVar27 = uVar19 & 1;\n                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    iVar16 = (*(code *)(iVar15 + -0x4eb0))\n                                       (uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14);\n                    if (iVar16 != 0) {\n                      if (iStack_cc < iVar16) {\n                        iStack_cc = iVar16;\n                      }\n                      iVar16 = iVar16 + uStack_11c;\n                      uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16);\n                      uVar14 = uStack_164;\n                      if (uStack_164 != 0) goto joined_r0x0004e770;\n                      piVar33 = piStack_e0 + iVar16;\n                      iVar28 = *piVar33;\n                      piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc);\n                      if (iVar28 == 0) {\n                        piStack_160 = (int *)*piVar17;\n                        piStack_15c = (int *)piVar17[1];\n                        iStack_158 = piVar17[2];\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        *piVar33 = iVar44;\n                      }\n                      else {\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }\n                      if ((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar16 = *(int *)(uVar41 + 8);\n                    uVar14 = uStack_11c;\n                  }\nLAB_0004e670:\n                  param_4 = (uint *)((int)param_4 + 1);\n                } while ((int)param_4 < iVar16);\n              }" { (expression_statement "param_4 = (uint *)0x0;" (assignment_expression "param_4 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar18 = *(int *)(puVar46 + 0x28244);" (assignment_expression "iVar18 = *(int *)(puVar46 + 0x28244)" identifier = (pointer_expression "*(int *)(puVar46 + 0x28244)" * (cast_expression "(int *)(puVar46 + 0x28244)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar46 + 0x28244)" ( (binary_expression "puVar46 + 0x28244" identifier + number_literal) ))))) ;) (expression_statement "pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7ab0);" (assignment_expression "pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7ab0)" identifier = (cast_expression "(code *)(*(int *)(puVar46 + 0x28244) + 0x7ab0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar46 + 0x28244) + 0x7ab0)" ( (binary_expression "*(int *)(puVar46 + 0x28244) + 0x7ab0" (pointer_expression "*(int *)(puVar46 + 0x28244)" * (cast_expression "(int *)(puVar46 + 0x28244)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar46 + 0x28244)" ( (binary_expression "puVar46 + 0x28244" identifier + number_literal) )))) + number_literal) )))) ;) (do_statement "do {\n                  uVar42 = *puVar36;\n                  iVar44 = *(int *)(*(int *)(uVar41 + 0xc) + (int)param_4 * 4);\n                  uVar37 = *(uint *)(uVar42 + iVar44 * 8 + 4);\n                  if ((uVar37 & 0x800) != 0) {\n                    if ((uVar37 & 0xffc000) != 0) {\n                      uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec);\n                      uVar37 = (uVar37 << 8) >> 0x16;\n                      if ((uVar37 & 4) == 0) {\n                        uVar27 = uVar19 & 1;\n                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    iVar16 = (*(code *)(iVar15 + -0x4eb0))\n                                       (uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14);\n                    if (iVar16 != 0) {\n                      if (iStack_cc < iVar16) {\n                        iStack_cc = iVar16;\n                      }\n                      iVar16 = iVar16 + uStack_11c;\n                      uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16);\n                      uVar14 = uStack_164;\n                      if (uStack_164 != 0) goto joined_r0x0004e770;\n                      piVar33 = piStack_e0 + iVar16;\n                      iVar28 = *piVar33;\n                      piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc);\n                      if (iVar28 == 0) {\n                        piStack_160 = (int *)*piVar17;\n                        piStack_15c = (int *)piVar17[1];\n                        iStack_158 = piVar17[2];\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        *piVar33 = iVar44;\n                      }\n                      else {\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }\n                      if ((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar16 = *(int *)(uVar41 + 8);\n                    uVar14 = uStack_11c;\n                  }\nLAB_0004e670:\n                  param_4 = (uint *)((int)param_4 + 1);\n                } while ((int)param_4 < iVar16);" do (compound_statement "{\n                  uVar42 = *puVar36;\n                  iVar44 = *(int *)(*(int *)(uVar41 + 0xc) + (int)param_4 * 4);\n                  uVar37 = *(uint *)(uVar42 + iVar44 * 8 + 4);\n                  if ((uVar37 & 0x800) != 0) {\n                    if ((uVar37 & 0xffc000) != 0) {\n                      uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec);\n                      uVar37 = (uVar37 << 8) >> 0x16;\n                      if ((uVar37 & 4) == 0) {\n                        uVar27 = uVar19 & 1;\n                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    iVar16 = (*(code *)(iVar15 + -0x4eb0))\n                                       (uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14);\n                    if (iVar16 != 0) {\n                      if (iStack_cc < iVar16) {\n                        iStack_cc = iVar16;\n                      }\n                      iVar16 = iVar16 + uStack_11c;\n                      uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16);\n                      uVar14 = uStack_164;\n                      if (uStack_164 != 0) goto joined_r0x0004e770;\n                      piVar33 = piStack_e0 + iVar16;\n                      iVar28 = *piVar33;\n                      piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc);\n                      if (iVar28 == 0) {\n                        piStack_160 = (int *)*piVar17;\n                        piStack_15c = (int *)piVar17[1];\n                        iStack_158 = piVar17[2];\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        *piVar33 = iVar44;\n                      }\n                      else {\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }\n                      if ((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar16 = *(int *)(uVar41 + 8);\n                    uVar14 = uStack_11c;\n                  }\nLAB_0004e670:\n                  param_4 = (uint *)((int)param_4 + 1);\n                }" { (expression_statement "uVar42 = *puVar36;" (assignment_expression "uVar42 = *puVar36" identifier = (pointer_expression "*puVar36" * identifier)) ;) (expression_statement "iVar44 = *(int *)(*(int *)(uVar41 + 0xc) + (int)param_4 * 4);" (assignment_expression "iVar44 = *(int *)(*(int *)(uVar41 + 0xc) + (int)param_4 * 4)" identifier = (pointer_expression "*(int *)(*(int *)(uVar41 + 0xc) + (int)param_4 * 4)" * (cast_expression "(int *)(*(int *)(uVar41 + 0xc) + (int)param_4 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(uVar41 + 0xc) + (int)param_4 * 4)" ( (binary_expression "*(int *)(uVar41 + 0xc) + (int)param_4 * 4" (pointer_expression "*(int *)(uVar41 + 0xc)" * (cast_expression "(int *)(uVar41 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar41 + 0xc)" ( (binary_expression "uVar41 + 0xc" identifier + number_literal) )))) + (binary_expression "(int)param_4 * 4" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))))) ;) (expression_statement "uVar37 = *(uint *)(uVar42 + iVar44 * 8 + 4);" (assignment_expression "uVar37 = *(uint *)(uVar42 + iVar44 * 8 + 4)" identifier = (pointer_expression "*(uint *)(uVar42 + iVar44 * 8 + 4)" * (cast_expression "(uint *)(uVar42 + iVar44 * 8 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar42 + iVar44 * 8 + 4)" ( (binary_expression "uVar42 + iVar44 * 8 + 4" (binary_expression "uVar42 + iVar44 * 8" identifier + (binary_expression "iVar44 * 8" identifier * number_literal)) + number_literal) ))))) ;) (if_statement "if ((uVar37 & 0x800) != 0) {\n                    if ((uVar37 & 0xffc000) != 0) {\n                      uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec);\n                      uVar37 = (uVar37 << 8) >> 0x16;\n                      if ((uVar37 & 4) == 0) {\n                        uVar27 = uVar19 & 1;\n                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    iVar16 = (*(code *)(iVar15 + -0x4eb0))\n                                       (uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14);\n                    if (iVar16 != 0) {\n                      if (iStack_cc < iVar16) {\n                        iStack_cc = iVar16;\n                      }\n                      iVar16 = iVar16 + uStack_11c;\n                      uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16);\n                      uVar14 = uStack_164;\n                      if (uStack_164 != 0) goto joined_r0x0004e770;\n                      piVar33 = piStack_e0 + iVar16;\n                      iVar28 = *piVar33;\n                      piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc);\n                      if (iVar28 == 0) {\n                        piStack_160 = (int *)*piVar17;\n                        piStack_15c = (int *)piVar17[1];\n                        iStack_158 = piVar17[2];\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        *piVar33 = iVar44;\n                      }\n                      else {\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }\n                      if ((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar16 = *(int *)(uVar41 + 8);\n                    uVar14 = uStack_11c;\n                  }" if (parenthesized_expression "((uVar37 & 0x800) != 0)" ( (binary_expression "(uVar37 & 0x800) != 0" (parenthesized_expression "(uVar37 & 0x800)" ( (binary_expression "uVar37 & 0x800" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                    if ((uVar37 & 0xffc000) != 0) {\n                      uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec);\n                      uVar37 = (uVar37 << 8) >> 0x16;\n                      if ((uVar37 & 4) == 0) {\n                        uVar27 = uVar19 & 1;\n                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    iVar16 = (*(code *)(iVar15 + -0x4eb0))\n                                       (uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14);\n                    if (iVar16 != 0) {\n                      if (iStack_cc < iVar16) {\n                        iStack_cc = iVar16;\n                      }\n                      iVar16 = iVar16 + uStack_11c;\n                      uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16);\n                      uVar14 = uStack_164;\n                      if (uStack_164 != 0) goto joined_r0x0004e770;\n                      piVar33 = piStack_e0 + iVar16;\n                      iVar28 = *piVar33;\n                      piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc);\n                      if (iVar28 == 0) {\n                        piStack_160 = (int *)*piVar17;\n                        piStack_15c = (int *)piVar17[1];\n                        iStack_158 = piVar17[2];\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        *piVar33 = iVar44;\n                      }\n                      else {\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }\n                      if ((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar16 = *(int *)(uVar41 + 8);\n                    uVar14 = uStack_11c;\n                  }" { (if_statement "if ((uVar37 & 0xffc000) != 0) {\n                      uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec);\n                      uVar37 = (uVar37 << 8) >> 0x16;\n                      if ((uVar37 & 4) == 0) {\n                        uVar27 = uVar19 & 1;\n                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))) goto LAB_0004e670;\n                    }" if (parenthesized_expression "((uVar37 & 0xffc000) != 0)" ( (binary_expression "(uVar37 & 0xffc000) != 0" (parenthesized_expression "(uVar37 & 0xffc000)" ( (binary_expression "uVar37 & 0xffc000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                      uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec);\n                      uVar37 = (uVar37 << 8) >> 0x16;\n                      if ((uVar37 & 4) == 0) {\n                        uVar27 = uVar19 & 1;\n                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))) goto LAB_0004e670;\n                    }" { (expression_statement "uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec);" (assignment_expression "uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec)" identifier = (call_expression "(*pcVar45)(&puStack_144,uVar14,puStack_ec)" (parenthesized_expression "(*pcVar45)" ( (pointer_expression "*pcVar45" * identifier) )) (argument_list "(&puStack_144,uVar14,puStack_ec)" ( (pointer_expression "&puStack_144" & identifier) , identifier , identifier )))) ;) (expression_statement "uVar37 = (uVar37 << 8) >> 0x16;" (assignment_expression "uVar37 = (uVar37 << 8) >> 0x16" identifier = (binary_expression "(uVar37 << 8) >> 0x16" (parenthesized_expression "(uVar37 << 8)" ( (binary_expression "uVar37 << 8" identifier << number_literal) )) >> number_literal)) ;) (if_statement "if ((uVar37 & 4) == 0) {\n                        uVar27 = uVar19 & 1;\n                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }" if (parenthesized_expression "((uVar37 & 4) == 0)" ( (binary_expression "(uVar37 & 4) == 0" (parenthesized_expression "(uVar37 & 4)" ( (binary_expression "uVar37 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                        uVar27 = uVar19 & 1;\n                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;\n                      }" { (expression_statement "uVar27 = uVar19 & 1;" (assignment_expression "uVar27 = uVar19 & 1" identifier = (binary_expression "uVar19 & 1" identifier & number_literal)) ;) (if_statement "if ((uVar37 & 8) != 0) goto joined_r0x0004e514;" if (parenthesized_expression "((uVar37 & 8) != 0)" ( (binary_expression "(uVar37 & 8) != 0" (parenthesized_expression "(uVar37 & 8)" ( (binary_expression "uVar37 & 8" identifier & number_literal) )) != number_literal) )) (goto_statement "goto joined_r0x0004e514;" goto statement_identifier ;)) }) (else_clause "else {\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }" else (compound_statement "{\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }" { (expression_statement "uVar27 = uVar37 & 8;" (assignment_expression "uVar27 = uVar37 & 8" identifier = (binary_expression "uVar37 & 8" identifier & number_literal)) ;) (if_statement "if ((uVar19 & 1) == 0) goto LAB_0004e670;" if (parenthesized_expression "((uVar19 & 1) == 0)" ( (binary_expression "(uVar19 & 1) == 0" (parenthesized_expression "(uVar19 & 1)" ( (binary_expression "uVar19 & 1" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0004e670;" goto statement_identifier ;)) (labeled_statement "joined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;" statement_identifier : (if_statement "if (uVar27 != 0) goto LAB_0004e670;" if (parenthesized_expression "(uVar27 != 0)" ( (binary_expression "uVar27 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0004e670;" goto statement_identifier ;))) }))) (if_statement "if ((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))) goto LAB_0004e670;" if (parenthesized_expression "((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0))))" ( (binary_expression "(((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))" (parenthesized_expression "(((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0))" ( (binary_expression "((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)" (parenthesized_expression "((uVar37 & 0x20) != 0)" ( (binary_expression "(uVar37 & 0x20) != 0" (parenthesized_expression "(uVar37 & 0x20)" ( (binary_expression "uVar37 & 0x20" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "((uVar19 & 2) == 0)" ( (binary_expression "(uVar19 & 2) == 0" (parenthesized_expression "(uVar19 & 2)" ( (binary_expression "uVar19 & 2" identifier & number_literal) )) == number_literal) ))) )) || (parenthesized_expression "(((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))" ( (parenthesized_expression "((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0))" ( (binary_expression "(uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)" (binary_expression "(uVar37 & 0x80) != 0" (parenthesized_expression "(uVar37 & 0x80)" ( (binary_expression "uVar37 & 0x80" identifier & number_literal) )) != number_literal) && (parenthesized_expression "((uVar19 & 8) == 0)" ( (binary_expression "(uVar19 & 8) == 0" (parenthesized_expression "(uVar19 & 8)" ( (binary_expression "uVar19 & 8" identifier & number_literal) )) == number_literal) ))) )) ))) )) (goto_statement "goto LAB_0004e670;" goto statement_identifier ;)) })) (expression_statement "iVar16 = (*(code *)(iVar15 + -0x4eb0))\n                                       (uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14);" (assignment_expression "iVar16 = (*(code *)(iVar15 + -0x4eb0))\n                                       (uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14)" identifier = (call_expression "(*(code *)(iVar15 + -0x4eb0))\n                                       (uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14)" (parenthesized_expression "(*(code *)(iVar15 + -0x4eb0))" ( (pointer_expression "*(code *)(iVar15 + -0x4eb0)" * (cast_expression "(code *)(iVar15 + -0x4eb0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + -0x4eb0)" ( (binary_expression "iVar15 + -0x4eb0" identifier + number_literal) )))) )) (argument_list "(uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14)" ( identifier , (binary_expression "puVar36 + 0x20" identifier + number_literal) , identifier , (pointer_expression "&puStack_144" & identifier) , identifier )))) ;) (if_statement "if (iVar16 != 0) {\n                      if (iStack_cc < iVar16) {\n                        iStack_cc = iVar16;\n                      }\n                      iVar16 = iVar16 + uStack_11c;\n                      uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16);\n                      uVar14 = uStack_164;\n                      if (uStack_164 != 0) goto joined_r0x0004e770;\n                      piVar33 = piStack_e0 + iVar16;\n                      iVar28 = *piVar33;\n                      piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc);\n                      if (iVar28 == 0) {\n                        piStack_160 = (int *)*piVar17;\n                        piStack_15c = (int *)piVar17[1];\n                        iStack_158 = piVar17[2];\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        *piVar33 = iVar44;\n                      }\n                      else {\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }\n                      if ((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))\n                      goto joined_r0x0004e770;\n                    }" if (parenthesized_expression "(iVar16 != 0)" ( (binary_expression "iVar16 != 0" identifier != number_literal) )) (compound_statement "{\n                      if (iStack_cc < iVar16) {\n                        iStack_cc = iVar16;\n                      }\n                      iVar16 = iVar16 + uStack_11c;\n                      uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16);\n                      uVar14 = uStack_164;\n                      if (uStack_164 != 0) goto joined_r0x0004e770;\n                      piVar33 = piStack_e0 + iVar16;\n                      iVar28 = *piVar33;\n                      piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc);\n                      if (iVar28 == 0) {\n                        piStack_160 = (int *)*piVar17;\n                        piStack_15c = (int *)piVar17[1];\n                        iStack_158 = piVar17[2];\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        *piVar33 = iVar44;\n                      }\n                      else {\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }\n                      if ((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))\n                      goto joined_r0x0004e770;\n                    }" { (if_statement "if (iStack_cc < iVar16) {\n                        iStack_cc = iVar16;\n                      }" if (parenthesized_expression "(iStack_cc < iVar16)" ( (binary_expression "iStack_cc < iVar16" identifier < identifier) )) (compound_statement "{\n                        iStack_cc = iVar16;\n                      }" { (expression_statement "iStack_cc = iVar16;" (assignment_expression "iStack_cc = iVar16" identifier = identifier) ;) })) (expression_statement "iVar16 = iVar16 + uStack_11c;" (assignment_expression "iVar16 = iVar16 + uStack_11c" identifier = (binary_expression "iVar16 + uStack_11c" identifier + identifier)) ;) (expression_statement "uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16);" (assignment_expression "uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16)" identifier = (call_expression "(*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16)" (parenthesized_expression "(*(code *)(iVar18 + 0x43b0))" ( (pointer_expression "*(code *)(iVar18 + 0x43b0)" * (cast_expression "(code *)(iVar18 + 0x43b0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x43b0)" ( (binary_expression "iVar18 + 0x43b0" identifier + number_literal) )))) )) (argument_list "(&puStack_144,iVar16)" ( (pointer_expression "&puStack_144" & identifier) , identifier )))) ;) (expression_statement "uVar14 = uStack_164;" (assignment_expression "uVar14 = uStack_164" identifier = identifier) ;) (if_statement "if (uStack_164 != 0) goto joined_r0x0004e770;" if (parenthesized_expression "(uStack_164 != 0)" ( (binary_expression "uStack_164 != 0" identifier != number_literal) )) (goto_statement "goto joined_r0x0004e770;" goto statement_identifier ;)) (expression_statement "piVar33 = piStack_e0 + iVar16;" (assignment_expression "piVar33 = piStack_e0 + iVar16" identifier = (binary_expression "piStack_e0 + iVar16" identifier + identifier)) ;) (expression_statement "iVar28 = *piVar33;" (assignment_expression "iVar28 = *piVar33" identifier = (pointer_expression "*piVar33" * identifier)) ;) (expression_statement "piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc);" (assignment_expression "piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc)" identifier = (cast_expression "(int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc)" ( (binary_expression "puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc" (subscript_expression "puVar36[6]" identifier [ number_literal ]) + (binary_expression "*(int *)(puVar36[3] + iVar44 * 4) * 0xc" (pointer_expression "*(int *)(puVar36[3] + iVar44 * 4)" * (cast_expression "(int *)(puVar36[3] + iVar44 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36[3] + iVar44 * 4)" ( (binary_expression "puVar36[3] + iVar44 * 4" (subscript_expression "puVar36[3]" identifier [ number_literal ]) + (binary_expression "iVar44 * 4" identifier * number_literal)) )))) * number_literal)) )))) ;) (if_statement "if (iVar28 == 0) {\n                        piStack_160 = (int *)*piVar17;\n                        piStack_15c = (int *)piVar17[1];\n                        iStack_158 = piVar17[2];\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        *piVar33 = iVar44;\n                      }\n                      else {\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }" if (parenthesized_expression "(iVar28 == 0)" ( (binary_expression "iVar28 == 0" identifier == number_literal) )) (compound_statement "{\n                        piStack_160 = (int *)*piVar17;\n                        piStack_15c = (int *)piVar17[1];\n                        iStack_158 = piVar17[2];\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        *piVar33 = iVar44;\n                      }" { (expression_statement "piStack_160 = (int *)*piVar17;" (assignment_expression "piStack_160 = (int *)*piVar17" identifier = (cast_expression "(int *)*piVar17" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar17" * identifier))) ;) (expression_statement "piStack_15c = (int *)piVar17[1];" (assignment_expression "piStack_15c = (int *)piVar17[1]" identifier = (cast_expression "(int *)piVar17[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar17[1]" identifier [ number_literal ]))) ;) (expression_statement "iStack_158 = piVar17[2];" (assignment_expression "iStack_158 = piVar17[2]" identifier = (subscript_expression "piVar17[2]" identifier [ number_literal ])) ;) (expression_statement "uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);" (assignment_expression "uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec)" identifier = (call_expression "(*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec)" (parenthesized_expression "(*pcVar45)" ( (pointer_expression "*pcVar45" * identifier) )) (argument_list "(&puStack_144,iVar16 + -1,puStack_ec)" ( (pointer_expression "&puStack_144" & identifier) , (binary_expression "iVar16 + -1" identifier + number_literal) , identifier )))) ;) (expression_statement "iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);" (assignment_expression "iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20)" identifier = (call_expression "FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20)" identifier (argument_list "(&uStack_164,puVar36,&piStack_160,uVar20)" ( (pointer_expression "&uStack_164" & identifier) , identifier , (pointer_expression "&piStack_160" & identifier) , identifier )))) ;) (expression_statement "*piVar33 = iVar44;" (assignment_expression "*piVar33 = iVar44" (pointer_expression "*piVar33" * identifier) = identifier) ;) }) (else_clause "else {\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }" else (compound_statement "{\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }" { (expression_statement "uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));" (assignment_expression "uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28))" identifier = (call_expression "FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28))" identifier (argument_list "(&piStack_160,*(undefined4 *)(iVar28 + 0x28))" ( (pointer_expression "&piStack_160" & identifier) , (pointer_expression "*(undefined4 *)(iVar28 + 0x28)" * (cast_expression "(undefined4 *)(iVar28 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar28 + 0x28)" ( (binary_expression "iVar28 + 0x28" identifier + number_literal) )))) )))) ;) (expression_statement "uVar14 = uStack_164;" (assignment_expression "uVar14 = uStack_164" identifier = identifier) ;) (if_statement "if (uStack_164 != 0) goto joined_r0x0004e770;" if (parenthesized_expression "(uStack_164 != 0)" ( (binary_expression "uStack_164 != 0" identifier != number_literal) )) (goto_statement "goto joined_r0x0004e770;" goto statement_identifier ;)) (expression_statement "uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);" (assignment_expression "uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec)" identifier = (call_expression "(*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec)" (parenthesized_expression "(*pcVar45)" ( (pointer_expression "*pcVar45" * identifier) )) (argument_list "(&puStack_144,iVar16 + -1,puStack_ec)" ( (pointer_expression "&puStack_144" & identifier) , (binary_expression "iVar16 + -1" identifier + number_literal) , identifier )))) ;) (expression_statement "piVar17 = piStack_e0 + iVar16;" (assignment_expression "piVar17 = piStack_e0 + iVar16" identifier = (binary_expression "piStack_e0 + iVar16" identifier + identifier)) ;) (expression_statement "iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);" (assignment_expression "iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20)" identifier = (call_expression "FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20)" identifier (argument_list "(&uStack_164,puVar36,&piStack_160,uVar20)" ( (pointer_expression "&uStack_164" & identifier) , identifier , (pointer_expression "&piStack_160" & identifier) , identifier )))) ;) (expression_statement "pcVar7 = *(code **)(puVar46 + 0x28520);" (assignment_expression "pcVar7 = *(code **)(puVar46 + 0x28520)" identifier = (pointer_expression "*(code **)(puVar46 + 0x28520)" * (cast_expression "(code **)(puVar46 + 0x28520)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar46 + 0x28520)" ( (binary_expression "puVar46 + 0x28520" identifier + number_literal) ))))) ;) (expression_statement "*piVar17 = iVar44;" (assignment_expression "*piVar17 = iVar44" (pointer_expression "*piVar17" * identifier) = identifier) ;) (expression_statement "(*pcVar7)(iStack_158);" (call_expression "(*pcVar7)(iStack_158)" (parenthesized_expression "(*pcVar7)" ( (pointer_expression "*pcVar7" * identifier) )) (argument_list "(iStack_158)" ( identifier ))) ;) }))) (if_statement "if ((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))\n                      goto joined_r0x0004e770;" if (parenthesized_expression "((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))" ( (binary_expression "(piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0)" (parenthesized_expression "(piStack_e0[iVar16] == 0)" ( (binary_expression "piStack_e0[iVar16] == 0" (subscript_expression "piStack_e0[iVar16]" identifier [ identifier ]) == number_literal) )) && (parenthesized_expression "(uVar14 = uStack_164, uStack_164 != 0)" ( (comma_expression "uVar14 = uStack_164, uStack_164 != 0" (assignment_expression "uVar14 = uStack_164" identifier = identifier) , (binary_expression "uStack_164 != 0" identifier != number_literal)) ))) )) (goto_statement "goto joined_r0x0004e770;" goto statement_identifier ;)) })) (expression_statement "iVar16 = *(int *)(uVar41 + 8);" (assignment_expression "iVar16 = *(int *)(uVar41 + 8)" identifier = (pointer_expression "*(int *)(uVar41 + 8)" * (cast_expression "(int *)(uVar41 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar41 + 8)" ( (binary_expression "uVar41 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar14 = uStack_11c;" (assignment_expression "uVar14 = uStack_11c" identifier = identifier) ;) })) (labeled_statement "LAB_0004e670:\n                  param_4 = (uint *)((int)param_4 + 1);" statement_identifier : (expression_statement "param_4 = (uint *)((int)param_4 + 1);" (assignment_expression "param_4 = (uint *)((int)param_4 + 1)" identifier = (cast_expression "(uint *)((int)param_4 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_4 + 1)" ( (binary_expression "(int)param_4 + 1" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;)) }) while (parenthesized_expression "((int)param_4 < iVar16)" ( (binary_expression "(int)param_4 < iVar16" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) )) ;) })) (expression_statement "uStack_168 = 0;" (assignment_expression "uStack_168 = 0" identifier = number_literal) ;) })) (expression_statement "uStack_11c = uVar14 + 1;" (assignment_expression "uStack_11c = uVar14 + 1" identifier = (binary_expression "uVar14 + 1" identifier + number_literal)) ;) (expression_statement "uVar14 = (uint)*(byte *)((int)puStack_140 + uVar14);" (assignment_expression "uVar14 = (uint)*(byte *)((int)puStack_140 + uVar14)" identifier = (binary_expression "(uint)*(byte *)((int)puStack_140 + uVar14)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)((int)puStack_140 + uVar14)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puStack_140 + uVar14)" ( (binary_expression "(int)puStack_140 + uVar14" (cast_expression "(int)puStack_140" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))))) ;) (do_statement "do {\n              if (*(int *)(uVar41 + 0x2c) != 0) {\n                uVar37 = *(uint *)(*(int *)(uVar41 + 0x2c) + uVar14 * 4);\nLAB_0004ddf0:\n                if (piStack_e0 != (int *)0x0) goto LAB_0004ddfc;\n                goto LAB_0004de1c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x30);\n              if (iVar16 != 0) {\n                uVar37 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n                if ((uVar37 & 1) == 0) {\n                  uVar37 = *(uint *)(iVar16 + uVar14 * 4);\n                }\n                else {\n                  uVar37 = *(uint *)(iVar16 + (uVar14 + 0x100) * 4);\n                }\n                goto LAB_0004ddf0;\n              }\n              iVar16 = (*(code *)(iVar26 + -0x7510))(puStack_f0,uVar41);\n            } while (iVar16 != 0);" do (compound_statement "{\n              if (*(int *)(uVar41 + 0x2c) != 0) {\n                uVar37 = *(uint *)(*(int *)(uVar41 + 0x2c) + uVar14 * 4);\nLAB_0004ddf0:\n                if (piStack_e0 != (int *)0x0) goto LAB_0004ddfc;\n                goto LAB_0004de1c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x30);\n              if (iVar16 != 0) {\n                uVar37 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n                if ((uVar37 & 1) == 0) {\n                  uVar37 = *(uint *)(iVar16 + uVar14 * 4);\n                }\n                else {\n                  uVar37 = *(uint *)(iVar16 + (uVar14 + 0x100) * 4);\n                }\n                goto LAB_0004ddf0;\n              }\n              iVar16 = (*(code *)(iVar26 + -0x7510))(puStack_f0,uVar41);\n            }" { (if_statement "if (*(int *)(uVar41 + 0x2c) != 0) {\n                uVar37 = *(uint *)(*(int *)(uVar41 + 0x2c) + uVar14 * 4);\nLAB_0004ddf0:\n                if (piStack_e0 != (int *)0x0) goto LAB_0004ddfc;\n                goto LAB_0004de1c;\n              }" if (parenthesized_expression "(*(int *)(uVar41 + 0x2c) != 0)" ( (binary_expression "*(int *)(uVar41 + 0x2c) != 0" (pointer_expression "*(int *)(uVar41 + 0x2c)" * (cast_expression "(int *)(uVar41 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar41 + 0x2c)" ( (binary_expression "uVar41 + 0x2c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                uVar37 = *(uint *)(*(int *)(uVar41 + 0x2c) + uVar14 * 4);\nLAB_0004ddf0:\n                if (piStack_e0 != (int *)0x0) goto LAB_0004ddfc;\n                goto LAB_0004de1c;\n              }" { (expression_statement "uVar37 = *(uint *)(*(int *)(uVar41 + 0x2c) + uVar14 * 4);" (assignment_expression "uVar37 = *(uint *)(*(int *)(uVar41 + 0x2c) + uVar14 * 4)" identifier = (pointer_expression "*(uint *)(*(int *)(uVar41 + 0x2c) + uVar14 * 4)" * (cast_expression "(uint *)(*(int *)(uVar41 + 0x2c) + uVar14 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(uVar41 + 0x2c) + uVar14 * 4)" ( (binary_expression "*(int *)(uVar41 + 0x2c) + uVar14 * 4" (pointer_expression "*(int *)(uVar41 + 0x2c)" * (cast_expression "(int *)(uVar41 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar41 + 0x2c)" ( (binary_expression "uVar41 + 0x2c" identifier + number_literal) )))) + (binary_expression "uVar14 * 4" identifier * number_literal)) ))))) ;) (labeled_statement "LAB_0004ddf0:\n                if (piStack_e0 != (int *)0x0) goto LAB_0004ddfc;" statement_identifier : (if_statement "if (piStack_e0 != (int *)0x0) goto LAB_0004ddfc;" if (parenthesized_expression "(piStack_e0 != (int *)0x0)" ( (binary_expression "piStack_e0 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004ddfc;" goto statement_identifier ;))) (goto_statement "goto LAB_0004de1c;" goto statement_identifier ;) })) (expression_statement "iVar16 = *(int *)(uVar41 + 0x30);" (assignment_expression "iVar16 = *(int *)(uVar41 + 0x30)" identifier = (pointer_expression "*(int *)(uVar41 + 0x30)" * (cast_expression "(int *)(uVar41 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar41 + 0x30)" ( (binary_expression "uVar41 + 0x30" identifier + number_literal) ))))) ;) (if_statement "if (iVar16 != 0) {\n                uVar37 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n                if ((uVar37 & 1) == 0) {\n                  uVar37 = *(uint *)(iVar16 + uVar14 * 4);\n                }\n                else {\n                  uVar37 = *(uint *)(iVar16 + (uVar14 + 0x100) * 4);\n                }\n                goto LAB_0004ddf0;\n              }" if (parenthesized_expression "(iVar16 != 0)" ( (binary_expression "iVar16 != 0" identifier != number_literal) )) (compound_statement "{\n                uVar37 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n                if ((uVar37 & 1) == 0) {\n                  uVar37 = *(uint *)(iVar16 + uVar14 * 4);\n                }\n                else {\n                  uVar37 = *(uint *)(iVar16 + (uVar14 + 0x100) * 4);\n                }\n                goto LAB_0004ddf0;\n              }" { (expression_statement "uVar37 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);" (assignment_expression "uVar37 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec)" identifier = (call_expression "FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec)" identifier (argument_list "(&puStack_144,uStack_11c - 1,puStack_ec)" ( (pointer_expression "&puStack_144" & identifier) , (binary_expression "uStack_11c - 1" identifier - number_literal) , identifier )))) ;) (if_statement "if ((uVar37 & 1) == 0) {\n                  uVar37 = *(uint *)(iVar16 + uVar14 * 4);\n                }\n                else {\n                  uVar37 = *(uint *)(iVar16 + (uVar14 + 0x100) * 4);\n                }" if (parenthesized_expression "((uVar37 & 1) == 0)" ( (binary_expression "(uVar37 & 1) == 0" (parenthesized_expression "(uVar37 & 1)" ( (binary_expression "uVar37 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                  uVar37 = *(uint *)(iVar16 + uVar14 * 4);\n                }" { (expression_statement "uVar37 = *(uint *)(iVar16 + uVar14 * 4);" (assignment_expression "uVar37 = *(uint *)(iVar16 + uVar14 * 4)" identifier = (pointer_expression "*(uint *)(iVar16 + uVar14 * 4)" * (cast_expression "(uint *)(iVar16 + uVar14 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + uVar14 * 4)" ( (binary_expression "iVar16 + uVar14 * 4" identifier + (binary_expression "uVar14 * 4" identifier * number_literal)) ))))) ;) }) (else_clause "else {\n                  uVar37 = *(uint *)(iVar16 + (uVar14 + 0x100) * 4);\n                }" else (compound_statement "{\n                  uVar37 = *(uint *)(iVar16 + (uVar14 + 0x100) * 4);\n                }" { (expression_statement "uVar37 = *(uint *)(iVar16 + (uVar14 + 0x100) * 4);" (assignment_expression "uVar37 = *(uint *)(iVar16 + (uVar14 + 0x100) * 4)" identifier = (pointer_expression "*(uint *)(iVar16 + (uVar14 + 0x100) * 4)" * (cast_expression "(uint *)(iVar16 + (uVar14 + 0x100) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + (uVar14 + 0x100) * 4)" ( (binary_expression "iVar16 + (uVar14 + 0x100) * 4" identifier + (binary_expression "(uVar14 + 0x100) * 4" (parenthesized_expression "(uVar14 + 0x100)" ( (binary_expression "uVar14 + 0x100" identifier + number_literal) )) * number_literal)) ))))) ;) }))) (goto_statement "goto LAB_0004ddf0;" goto statement_identifier ;) })) (expression_statement "iVar16 = (*(code *)(iVar26 + -0x7510))(puStack_f0,uVar41);" (assignment_expression "iVar16 = (*(code *)(iVar26 + -0x7510))(puStack_f0,uVar41)" identifier = (call_expression "(*(code *)(iVar26 + -0x7510))(puStack_f0,uVar41)" (parenthesized_expression "(*(code *)(iVar26 + -0x7510))" ( (pointer_expression "*(code *)(iVar26 + -0x7510)" * (cast_expression "(code *)(iVar26 + -0x7510)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + -0x7510)" ( (binary_expression "iVar26 + -0x7510" identifier + number_literal) )))) )) (argument_list "(puStack_f0,uVar41)" ( identifier , identifier )))) ;) }) while (parenthesized_expression "(iVar16 != 0)" ( (binary_expression "iVar16 != 0" identifier != number_literal) )) ;) (expression_statement "uStack_168 = 0xc;" (assignment_expression "uStack_168 = 0xc" identifier = number_literal) ;) (expression_statement "uVar14 = uStack_168;" (assignment_expression "uVar14 = uStack_168" identifier = identifier) ;) (labeled_statement "joined_r0x0004e770:\n            uStack_168 = uVar14;" statement_identifier : (expression_statement "uStack_168 = uVar14;" (assignment_expression "uStack_168 = uVar14" identifier = identifier) ;)) (if_statement "if (piStack_e0 == (int *)0x0) {\n              piVar17 = (int *)0x0;\n              goto LAB_0004dbb4;\n            }" if (parenthesized_expression "(piStack_e0 == (int *)0x0)" ( (binary_expression "piStack_e0 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              piVar17 = (int *)0x0;\n              goto LAB_0004dbb4;\n            }" { (expression_statement "piVar17 = (int *)0x0;" (assignment_expression "piVar17 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0004dbb4;" goto statement_identifier ;) })) (expression_statement "uVar37 = 0;" (assignment_expression "uVar37 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0004ddfc:\n            uVar37 = FUN_0004d0a8(&uStack_168,&puStack_144,uVar37);" statement_identifier : (expression_statement "uVar37 = FUN_0004d0a8(&uStack_168,&puStack_144,uVar37);" (assignment_expression "uVar37 = FUN_0004d0a8(&uStack_168,&puStack_144,uVar37)" identifier = (call_expression "FUN_0004d0a8(&uStack_168,&puStack_144,uVar37)" identifier (argument_list "(&uStack_168,&puStack_144,uVar37)" ( (pointer_expression "&uStack_168" & identifier) , (pointer_expression "&puStack_144" & identifier) , identifier )))) ;)) (labeled_statement "LAB_0004de1c:\n            uVar14 = uStack_11c;" statement_identifier : (expression_statement "uVar14 = uStack_11c;" (assignment_expression "uVar14 = uStack_11c" identifier = identifier) ;)) (if_statement "if (uVar37 == 0) {\n              piVar17 = piStack_e0;\n              if (uStack_168 != 0) goto LAB_0004dbb4;\n              if ((piStack_e0 == (int *)0x0) || ((bVar5 && (!bVar22)))) break;\n              param_4 = &uStack_168;\n              do {\n                bVar2 = false;\n                piVar17 = piStack_e0 + uStack_11c;\n                uVar14 = uStack_11c;\n                do {\n                  uVar37 = uVar14 + 1;\n                  piVar17 = piVar17 + 1;\n                  if (iStack_dc < (int)uVar37) {\n                    if (bVar2) {\n                      uStack_11c = uVar14;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar2 = true;\n                  uVar14 = uVar37;\n                } while (*piVar17 == 0);\n                uStack_11c = uVar37;\n                uVar37 = FUN_0004d0a8(param_4,&puStack_144,0);\n                uVar14 = uStack_11c;\n                if (uStack_168 != 0) {\n                  if (uVar37 == 0) goto LAB_0004e0cc;\n                  break;\n                }\n              } while (uVar37 == 0);\n            }" if (parenthesized_expression "(uVar37 == 0)" ( (binary_expression "uVar37 == 0" identifier == number_literal) )) (compound_statement "{\n              piVar17 = piStack_e0;\n              if (uStack_168 != 0) goto LAB_0004dbb4;\n              if ((piStack_e0 == (int *)0x0) || ((bVar5 && (!bVar22)))) break;\n              param_4 = &uStack_168;\n              do {\n                bVar2 = false;\n                piVar17 = piStack_e0 + uStack_11c;\n                uVar14 = uStack_11c;\n                do {\n                  uVar37 = uVar14 + 1;\n                  piVar17 = piVar17 + 1;\n                  if (iStack_dc < (int)uVar37) {\n                    if (bVar2) {\n                      uStack_11c = uVar14;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar2 = true;\n                  uVar14 = uVar37;\n                } while (*piVar17 == 0);\n                uStack_11c = uVar37;\n                uVar37 = FUN_0004d0a8(param_4,&puStack_144,0);\n                uVar14 = uStack_11c;\n                if (uStack_168 != 0) {\n                  if (uVar37 == 0) goto LAB_0004e0cc;\n                  break;\n                }\n              } while (uVar37 == 0);\n            }" { (expression_statement "piVar17 = piStack_e0;" (assignment_expression "piVar17 = piStack_e0" identifier = identifier) ;) (if_statement "if (uStack_168 != 0) goto LAB_0004dbb4;" if (parenthesized_expression "(uStack_168 != 0)" ( (binary_expression "uStack_168 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0004dbb4;" goto statement_identifier ;)) (if_statement "if ((piStack_e0 == (int *)0x0) || ((bVar5 && (!bVar22)))) break;" if (parenthesized_expression "((piStack_e0 == (int *)0x0) || ((bVar5 && (!bVar22))))" ( (binary_expression "(piStack_e0 == (int *)0x0) || ((bVar5 && (!bVar22)))" (parenthesized_expression "(piStack_e0 == (int *)0x0)" ( (binary_expression "piStack_e0 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "((bVar5 && (!bVar22)))" ( (parenthesized_expression "(bVar5 && (!bVar22))" ( (binary_expression "bVar5 && (!bVar22)" identifier && (parenthesized_expression "(!bVar22)" ( (unary_expression "!bVar22" ! identifier) ))) )) ))) )) (break_statement "break;" break ;)) (expression_statement "param_4 = &uStack_168;" (assignment_expression "param_4 = &uStack_168" identifier = (pointer_expression "&uStack_168" & identifier)) ;) (do_statement "do {\n                bVar2 = false;\n                piVar17 = piStack_e0 + uStack_11c;\n                uVar14 = uStack_11c;\n                do {\n                  uVar37 = uVar14 + 1;\n                  piVar17 = piVar17 + 1;\n                  if (iStack_dc < (int)uVar37) {\n                    if (bVar2) {\n                      uStack_11c = uVar14;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar2 = true;\n                  uVar14 = uVar37;\n                } while (*piVar17 == 0);\n                uStack_11c = uVar37;\n                uVar37 = FUN_0004d0a8(param_4,&puStack_144,0);\n                uVar14 = uStack_11c;\n                if (uStack_168 != 0) {\n                  if (uVar37 == 0) goto LAB_0004e0cc;\n                  break;\n                }\n              } while (uVar37 == 0);" do (compound_statement "{\n                bVar2 = false;\n                piVar17 = piStack_e0 + uStack_11c;\n                uVar14 = uStack_11c;\n                do {\n                  uVar37 = uVar14 + 1;\n                  piVar17 = piVar17 + 1;\n                  if (iStack_dc < (int)uVar37) {\n                    if (bVar2) {\n                      uStack_11c = uVar14;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar2 = true;\n                  uVar14 = uVar37;\n                } while (*piVar17 == 0);\n                uStack_11c = uVar37;\n                uVar37 = FUN_0004d0a8(param_4,&puStack_144,0);\n                uVar14 = uStack_11c;\n                if (uStack_168 != 0) {\n                  if (uVar37 == 0) goto LAB_0004e0cc;\n                  break;\n                }\n              }" { (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (expression_statement "piVar17 = piStack_e0 + uStack_11c;" (assignment_expression "piVar17 = piStack_e0 + uStack_11c" identifier = (binary_expression "piStack_e0 + uStack_11c" identifier + identifier)) ;) (expression_statement "uVar14 = uStack_11c;" (assignment_expression "uVar14 = uStack_11c" identifier = identifier) ;) (do_statement "do {\n                  uVar37 = uVar14 + 1;\n                  piVar17 = piVar17 + 1;\n                  if (iStack_dc < (int)uVar37) {\n                    if (bVar2) {\n                      uStack_11c = uVar14;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar2 = true;\n                  uVar14 = uVar37;\n                } while (*piVar17 == 0);" do (compound_statement "{\n                  uVar37 = uVar14 + 1;\n                  piVar17 = piVar17 + 1;\n                  if (iStack_dc < (int)uVar37) {\n                    if (bVar2) {\n                      uStack_11c = uVar14;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar2 = true;\n                  uVar14 = uVar37;\n                }" { (expression_statement "uVar37 = uVar14 + 1;" (assignment_expression "uVar37 = uVar14 + 1" identifier = (binary_expression "uVar14 + 1" identifier + number_literal)) ;) (expression_statement "piVar17 = piVar17 + 1;" (assignment_expression "piVar17 = piVar17 + 1" identifier = (binary_expression "piVar17 + 1" identifier + number_literal)) ;) (if_statement "if (iStack_dc < (int)uVar37) {\n                    if (bVar2) {\n                      uStack_11c = uVar14;\n                    }\n                    goto LAB_0004e0cc;\n                  }" if (parenthesized_expression "(iStack_dc < (int)uVar37)" ( (binary_expression "iStack_dc < (int)uVar37" identifier < (cast_expression "(int)uVar37" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                    if (bVar2) {\n                      uStack_11c = uVar14;\n                    }\n                    goto LAB_0004e0cc;\n                  }" { (if_statement "if (bVar2) {\n                      uStack_11c = uVar14;\n                    }" if (parenthesized_expression "(bVar2)" ( identifier )) (compound_statement "{\n                      uStack_11c = uVar14;\n                    }" { (expression_statement "uStack_11c = uVar14;" (assignment_expression "uStack_11c = uVar14" identifier = identifier) ;) })) (goto_statement "goto LAB_0004e0cc;" goto statement_identifier ;) })) (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) (expression_statement "uVar14 = uVar37;" (assignment_expression "uVar14 = uVar37" identifier = identifier) ;) }) while (parenthesized_expression "(*piVar17 == 0)" ( (binary_expression "*piVar17 == 0" (pointer_expression "*piVar17" * identifier) == number_literal) )) ;) (expression_statement "uStack_11c = uVar37;" (assignment_expression "uStack_11c = uVar37" identifier = identifier) ;) (expression_statement "uVar37 = FUN_0004d0a8(param_4,&puStack_144,0);" (assignment_expression "uVar37 = FUN_0004d0a8(param_4,&puStack_144,0)" identifier = (call_expression "FUN_0004d0a8(param_4,&puStack_144,0)" identifier (argument_list "(param_4,&puStack_144,0)" ( identifier , (pointer_expression "&puStack_144" & identifier) , number_literal )))) ;) (expression_statement "uVar14 = uStack_11c;" (assignment_expression "uVar14 = uStack_11c" identifier = identifier) ;) (if_statement "if (uStack_168 != 0) {\n                  if (uVar37 == 0) goto LAB_0004e0cc;\n                  break;\n                }" if (parenthesized_expression "(uStack_168 != 0)" ( (binary_expression "uStack_168 != 0" identifier != number_literal) )) (compound_statement "{\n                  if (uVar37 == 0) goto LAB_0004e0cc;\n                  break;\n                }" { (if_statement "if (uVar37 == 0) goto LAB_0004e0cc;" if (parenthesized_expression "(uVar37 == 0)" ( (binary_expression "uVar37 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0004e0cc;" goto statement_identifier ;)) (break_statement "break;" break ;) })) }) while (parenthesized_expression "(uVar37 == 0)" ( (binary_expression "uVar37 == 0" identifier == number_literal) )) ;) })) (expression_statement "uVar42 = uStack_1d0;" (assignment_expression "uVar42 = uStack_1d0" identifier = identifier) ;) (if_statement "if ((bVar4) && (uVar42 = uVar40, uVar41 != uVar37)) {\n              bVar4 = false;\n              uVar42 = uStack_1d0;\n            }" if (parenthesized_expression "((bVar4) && (uVar42 = uVar40, uVar41 != uVar37))" ( (binary_expression "(bVar4) && (uVar42 = uVar40, uVar41 != uVar37)" (parenthesized_expression "(bVar4)" ( identifier )) && (parenthesized_expression "(uVar42 = uVar40, uVar41 != uVar37)" ( (comma_expression "uVar42 = uVar40, uVar41 != uVar37" (assignment_expression "uVar42 = uVar40" identifier = identifier) , (binary_expression "uVar41 != uVar37" identifier != identifier)) ))) )) (compound_statement "{\n              bVar4 = false;\n              uVar42 = uStack_1d0;\n            }" { (expression_statement "bVar4 = false;" (assignment_expression "bVar4 = false" identifier = false) ;) (expression_statement "uVar42 = uStack_1d0;" (assignment_expression "uVar42 = uStack_1d0" identifier = identifier) ;) })) (expression_statement "uStack_1d0 = uVar42;" (assignment_expression "uStack_1d0 = uVar42" identifier = identifier) ;) (expression_statement "uVar41 = uVar37;" (assignment_expression "uVar41 = uVar37" identifier = identifier) ;) (expression_statement "uStack_11c = uVar14;" (assignment_expression "uStack_11c = uVar14" identifier = identifier) ;) (if_statement "if (((*(byte *)(uVar37 + 0x34) & 8) != 0) &&\n               (((*(byte *)(uVar37 + 0x34) & 1) == 0 ||\n                (iVar16 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar37 + 8),uVar37 + 0xc,uVar14)\n                , iVar16 != 0)))) {\n              if (!bVar22) goto LAB_0004e0e4;\n              ppuStack_1dc = (uint **)0x0;\n              uVar6 = uVar14;\n              bVar5 = bVar22;\n            }" if (parenthesized_expression "(((*(byte *)(uVar37 + 0x34) & 8) != 0) &&\n               (((*(byte *)(uVar37 + 0x34) & 1) == 0 ||\n                (iVar16 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar37 + 8),uVar37 + 0xc,uVar14)\n                , iVar16 != 0))))" ( (binary_expression "((*(byte *)(uVar37 + 0x34) & 8) != 0) &&\n               (((*(byte *)(uVar37 + 0x34) & 1) == 0 ||\n                (iVar16 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar37 + 8),uVar37 + 0xc,uVar14)\n                , iVar16 != 0)))" (parenthesized_expression "((*(byte *)(uVar37 + 0x34) & 8) != 0)" ( (binary_expression "(*(byte *)(uVar37 + 0x34) & 8) != 0" (parenthesized_expression "(*(byte *)(uVar37 + 0x34) & 8)" ( (binary_expression "*(byte *)(uVar37 + 0x34) & 8" (pointer_expression "*(byte *)(uVar37 + 0x34)" * (cast_expression "(byte *)(uVar37 + 0x34)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar37 + 0x34)" ( (binary_expression "uVar37 + 0x34" identifier + number_literal) )))) & number_literal) )) != number_literal) )) && (parenthesized_expression "(((*(byte *)(uVar37 + 0x34) & 1) == 0 ||\n                (iVar16 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar37 + 8),uVar37 + 0xc,uVar14)\n                , iVar16 != 0)))" ( (parenthesized_expression "((*(byte *)(uVar37 + 0x34) & 1) == 0 ||\n                (iVar16 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar37 + 8),uVar37 + 0xc,uVar14)\n                , iVar16 != 0))" ( (binary_expression "(*(byte *)(uVar37 + 0x34) & 1) == 0 ||\n                (iVar16 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar37 + 8),uVar37 + 0xc,uVar14)\n                , iVar16 != 0)" (binary_expression "(*(byte *)(uVar37 + 0x34) & 1) == 0" (parenthesized_expression "(*(byte *)(uVar37 + 0x34) & 1)" ( (binary_expression "*(byte *)(uVar37 + 0x34) & 1" (pointer_expression "*(byte *)(uVar37 + 0x34)" * (cast_expression "(byte *)(uVar37 + 0x34)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar37 + 0x34)" ( (binary_expression "uVar37 + 0x34" identifier + number_literal) )))) & number_literal) )) == number_literal) || (parenthesized_expression "(iVar16 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar37 + 8),uVar37 + 0xc,uVar14)\n                , iVar16 != 0)" ( (comma_expression "iVar16 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar37 + 8),uVar37 + 0xc,uVar14)\n                , iVar16 != 0" (assignment_expression "iVar16 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar37 + 8),uVar37 + 0xc,uVar14)" identifier = (call_expression "FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar37 + 8),uVar37 + 0xc,uVar14)" identifier (argument_list "(&puStack_144,*(undefined4 *)(uVar37 + 8),uVar37 + 0xc,uVar14)" ( (pointer_expression "&puStack_144" & identifier) , (pointer_expression "*(undefined4 *)(uVar37 + 8)" * (cast_expression "(undefined4 *)(uVar37 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar37 + 8)" ( (binary_expression "uVar37 + 8" identifier + number_literal) )))) , (binary_expression "uVar37 + 0xc" identifier + number_literal) , identifier )))) , (binary_expression "iVar16 != 0" identifier != number_literal)) ))) )) ))) )) (compound_statement "{\n              if (!bVar22) goto LAB_0004e0e4;\n              ppuStack_1dc = (uint **)0x0;\n              uVar6 = uVar14;\n              bVar5 = bVar22;\n            }" { (if_statement "if (!bVar22) goto LAB_0004e0e4;" if (parenthesized_expression "(!bVar22)" ( (unary_expression "!bVar22" ! identifier) )) (goto_statement "goto LAB_0004e0e4;" goto statement_identifier ;)) (expression_statement "ppuStack_1dc = (uint **)0x0;" (assignment_expression "ppuStack_1dc = (uint **)0x0" identifier = (cast_expression "(uint **)0x0" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "uVar6 = uVar14;" (assignment_expression "uVar6 = uVar14" identifier = identifier) ;) (expression_statement "bVar5 = bVar22;" (assignment_expression "bVar5 = bVar22" identifier = identifier) ;) })) })) (labeled_statement "LAB_0004e0cc:\n          uVar14 = uVar6;" statement_identifier : (expression_statement "uVar14 = uVar6;" (assignment_expression "uVar14 = uVar6" identifier = identifier) ;)) (if_statement "if (ppuStack_1dc != (uint **)0x0) {\n            *ppuStack_1dc = (uint *)((int)*ppuStack_1dc + uStack_1d0);\n          }" if (parenthesized_expression "(ppuStack_1dc != (uint **)0x0)" ( (binary_expression "ppuStack_1dc != (uint **)0x0" identifier != (cast_expression "(uint **)0x0" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n            *ppuStack_1dc = (uint *)((int)*ppuStack_1dc + uStack_1d0);\n          }" { (expression_statement "*ppuStack_1dc = (uint *)((int)*ppuStack_1dc + uStack_1d0);" (assignment_expression "*ppuStack_1dc = (uint *)((int)*ppuStack_1dc + uStack_1d0)" (pointer_expression "*ppuStack_1dc" * identifier) = (cast_expression "(uint *)((int)*ppuStack_1dc + uStack_1d0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)*ppuStack_1dc + uStack_1d0)" ( (binary_expression "(int)*ppuStack_1dc + uStack_1d0" (cast_expression "(int)*ppuStack_1dc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*ppuStack_1dc" * identifier)) + identifier) )))) ;) })) }) (else_clause "else {\n          uVar14 = FUN_00047924(&puStack_144,uVar41 + 8,uVar41 + 0xc,0);\n          uStack_168 = uVar14;\n          if (uVar14 == 0) {\n            if ((*(byte *)(uVar41 + 0x34) & 2) == 0) {\n              bVar4 = false;\n            }\n            else {\n              uVar14 = FUN_0004c6a8(&puStack_144,uVar41 + 8,uVar41 + 0xc);\n              uStack_168 = uVar14;\n              if (uVar14 != 0) goto LAB_0004e0e4;\n              bVar4 = false;\n            }\n            goto LAB_0004dd48;\n          }\n        }" else (compound_statement "{\n          uVar14 = FUN_00047924(&puStack_144,uVar41 + 8,uVar41 + 0xc,0);\n          uStack_168 = uVar14;\n          if (uVar14 == 0) {\n            if ((*(byte *)(uVar41 + 0x34) & 2) == 0) {\n              bVar4 = false;\n            }\n            else {\n              uVar14 = FUN_0004c6a8(&puStack_144,uVar41 + 8,uVar41 + 0xc);\n              uStack_168 = uVar14;\n              if (uVar14 != 0) goto LAB_0004e0e4;\n              bVar4 = false;\n            }\n            goto LAB_0004dd48;\n          }\n        }" { (expression_statement "uVar14 = FUN_00047924(&puStack_144,uVar41 + 8,uVar41 + 0xc,0);" (assignment_expression "uVar14 = FUN_00047924(&puStack_144,uVar41 + 8,uVar41 + 0xc,0)" identifier = (call_expression "FUN_00047924(&puStack_144,uVar41 + 8,uVar41 + 0xc,0)" identifier (argument_list "(&puStack_144,uVar41 + 8,uVar41 + 0xc,0)" ( (pointer_expression "&puStack_144" & identifier) , (binary_expression "uVar41 + 8" identifier + number_literal) , (binary_expression "uVar41 + 0xc" identifier + number_literal) , number_literal )))) ;) (expression_statement "uStack_168 = uVar14;" (assignment_expression "uStack_168 = uVar14" identifier = identifier) ;) (if_statement "if (uVar14 == 0) {\n            if ((*(byte *)(uVar41 + 0x34) & 2) == 0) {\n              bVar4 = false;\n            }\n            else {\n              uVar14 = FUN_0004c6a8(&puStack_144,uVar41 + 8,uVar41 + 0xc);\n              uStack_168 = uVar14;\n              if (uVar14 != 0) goto LAB_0004e0e4;\n              bVar4 = false;\n            }\n            goto LAB_0004dd48;\n          }" if (parenthesized_expression "(uVar14 == 0)" ( (binary_expression "uVar14 == 0" identifier == number_literal) )) (compound_statement "{\n            if ((*(byte *)(uVar41 + 0x34) & 2) == 0) {\n              bVar4 = false;\n            }\n            else {\n              uVar14 = FUN_0004c6a8(&puStack_144,uVar41 + 8,uVar41 + 0xc);\n              uStack_168 = uVar14;\n              if (uVar14 != 0) goto LAB_0004e0e4;\n              bVar4 = false;\n            }\n            goto LAB_0004dd48;\n          }" { (if_statement "if ((*(byte *)(uVar41 + 0x34) & 2) == 0) {\n              bVar4 = false;\n            }\n            else {\n              uVar14 = FUN_0004c6a8(&puStack_144,uVar41 + 8,uVar41 + 0xc);\n              uStack_168 = uVar14;\n              if (uVar14 != 0) goto LAB_0004e0e4;\n              bVar4 = false;\n            }" if (parenthesized_expression "((*(byte *)(uVar41 + 0x34) & 2) == 0)" ( (binary_expression "(*(byte *)(uVar41 + 0x34) & 2) == 0" (parenthesized_expression "(*(byte *)(uVar41 + 0x34) & 2)" ( (binary_expression "*(byte *)(uVar41 + 0x34) & 2" (pointer_expression "*(byte *)(uVar41 + 0x34)" * (cast_expression "(byte *)(uVar41 + 0x34)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar41 + 0x34)" ( (binary_expression "uVar41 + 0x34" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n              bVar4 = false;\n            }" { (expression_statement "bVar4 = false;" (assignment_expression "bVar4 = false" identifier = false) ;) }) (else_clause "else {\n              uVar14 = FUN_0004c6a8(&puStack_144,uVar41 + 8,uVar41 + 0xc);\n              uStack_168 = uVar14;\n              if (uVar14 != 0) goto LAB_0004e0e4;\n              bVar4 = false;\n            }" else (compound_statement "{\n              uVar14 = FUN_0004c6a8(&puStack_144,uVar41 + 8,uVar41 + 0xc);\n              uStack_168 = uVar14;\n              if (uVar14 != 0) goto LAB_0004e0e4;\n              bVar4 = false;\n            }" { (expression_statement "uVar14 = FUN_0004c6a8(&puStack_144,uVar41 + 8,uVar41 + 0xc);" (assignment_expression "uVar14 = FUN_0004c6a8(&puStack_144,uVar41 + 8,uVar41 + 0xc)" identifier = (call_expression "FUN_0004c6a8(&puStack_144,uVar41 + 8,uVar41 + 0xc)" identifier (argument_list "(&puStack_144,uVar41 + 8,uVar41 + 0xc)" ( (pointer_expression "&puStack_144" & identifier) , (binary_expression "uVar41 + 8" identifier + number_literal) , (binary_expression "uVar41 + 0xc" identifier + number_literal) )))) ;) (expression_statement "uStack_168 = uVar14;" (assignment_expression "uStack_168 = uVar14" identifier = identifier) ;) (if_statement "if (uVar14 != 0) goto LAB_0004e0e4;" if (parenthesized_expression "(uVar14 != 0)" ( (binary_expression "uVar14 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0004e0e4;" goto statement_identifier ;)) (expression_statement "bVar4 = false;" (assignment_expression "bVar4 = false" identifier = false) ;) }))) (goto_statement "goto LAB_0004dd48;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_0004e0e4:\n        piVar17 = piStack_e0;" statement_identifier : (expression_statement "piVar17 = piStack_e0;" (assignment_expression "piVar17 = piStack_e0" identifier = identifier) ;)) (if_statement "if (uVar14 != 0xffffffff) {\n          if (uVar14 == 0xfffffffe) goto LAB_0004dbf8;\n          uStack_e8 = uVar14;\n          if (((uint)ppuVar24[7] & 0x8000000) == 0) {\n            if (!bVar1) {\n              uVar6 = puVar43[0x13];\n              goto joined_r0x0004e94c;\n            }\n            pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n            iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                     piStack_e0[uVar14] + 0xc,uVar14);\n            if ((*(char *)(puVar43 + 0x16) < '\0') || (puVar43[0x13] != 0)) goto LAB_0004e170;\n          }\n          else {\n            uVar6 = puVar43[0x13];\njoined_r0x0004e94c:\n            if (uVar6 != 0) {\n              pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n              iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                       piStack_e0[uVar14] + 0xc,uVar14);\nLAB_0004e170:\n              iVar30 = iStack_e4;\n              puVar36 = puStack_f0;\n              if (uVar14 < 0x3fffffff) {\n                uStack_1f0 = uVar14 + 1;\n                piVar17 = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                if (piVar17 == (int *)0x0) goto LAB_0004dbf8;\n                if (puVar36[0x13] == 0) {\n                  piStack_15c = (int *)0x0;\n                  uStack_150 = 0;\n                  uStack_14c = 0;\n                  uStack_148 = 0;\n                  piStack_160 = piVar17;\n                  iStack_158 = iVar30;\n                  uStack_154 = uVar14;\n                  uStack_1e4 = FUN_0004d30c(&puStack_144,&piStack_160);\n                  (**(code **)(puVar46 + 0x28520))(uStack_148);\n                  if (uStack_1e4 == 0) {\n                    if (*piVar17 == 0) {\n                      (**(code **)(puVar46 + 0x28520))(piVar17);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar46 + 0x28520))(piStack_e0);\n                    uStack_e8 = uVar14;\n                    iStack_e4 = iVar30;\n                    piStack_e0 = piVar17;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  piStack_1ec = (int *)0x0;\n                }\n                else {\n                  piStack_1ec = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                  if (piStack_1ec == (int *)0x0) {\n                    (**(code **)(puVar46 + 0x28520))(piVar17);\n                    uStack_1e4 = 0xc;\n                    piVar17 = piStack_e0;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar15 = *(int *)(puVar46 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);\n                    uStack_150 = 0;\n                    uStack_14c = 0;\n                    uStack_148 = 0;\n                    piStack_160 = piVar17;\n                    piStack_15c = piStack_1ec;\n                    iStack_158 = iVar30;\n                    uStack_154 = uVar14;\n                    uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);\n                    (**(code **)(puVar46 + 0x28520))(uStack_148);\n                    if (uStack_1e4 != 0) break;\n                    if ((*piVar17 != 0) || (*piStack_1ec != 0)) {\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    piVar33 = piStack_e0 + (uStack_1f0 - 1);\n                    uStack_1f0 = uVar14;\n                    while( true ) {\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }\n                    iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       );\n                  }\n                }\n                (**(code **)(puVar46 + 0x28520))(piVar17);\n                (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                piVar17 = piStack_e0;\n                if (uStack_1e4 == 1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }\n              uStack_1e4 = 0xc;\n              goto LAB_0004dbbc;\n            }\n          }\nLAB_0004e7e0:\n          piVar17 = piStack_e0;\n          uStack_1e4 = uVar11;\n          if (local_78 == (uint *)0x0) goto LAB_0004dbbc;\n          puVar23 = ppuVar24[7];\n          if (bVar1) {\n            piVar17 = piStack_74 + 2;\n            do {\n              piVar17[1] = -1;\n              piVar33 = piVar17 + 2;\n              *piVar17 = -1;\n              piVar17 = piVar33;\n            } while (piStack_74 + (int)local_78 * 2 != piVar33);\n            *piStack_74 = 0;\n            piStack_74[1] = uStack_e8;\n            if (((uint)puVar23 & 0x8000000) == 0) {\n              if (*(char *)(puVar43 + 0x16) < '\0') {\n                bVar22 = 0 < (int)puVar43[0x13];\n              }\n              else {\n                bVar22 = false;\n              }\n              uStack_1e4 = FUN_0004bc00(ppuVar24,&puStack_144,local_78,piStack_74,bVar22);\n              piVar17 = piStack_e0;\n              if (uStack_1e4 != 0) goto LAB_0004dbbc;\n              puVar23 = (uint *)*piStack_74;\n            }\n            else {\nLAB_0004e838:\n              puVar23 = (uint *)0x0;\n            }\n            puVar36 = (uint *)0x0;\n            piVar17 = piStack_74;\n            while( true ) {\n              if (puVar23 != (uint *)0xffffffff) {\n                puVar32 = (uint *)piVar17[1];\n                puVar39 = puVar23;\n                puVar38 = puVar32;\n                if (cStack_f8 != '\0') {\n                  puVar39 = puStack_124;\n                  if (puStack_128 != puVar23) {\n                    puVar39 = *(uint **)(iStack_138 + (int)puVar23 * 4);\n                  }\n                  *piVar17 = (int)puVar39;\n                  puVar38 = puStack_124;\n                  if (puStack_128 != puVar32) {\n                    puVar38 = *(uint **)(iStack_138 + (int)puVar32 * 4);\n                  }\n                }\n                *piVar17 = (int)puStack_16c + (int)puVar39;\n                piVar17[1] = (int)puStack_16c + (int)puVar38;\n              }\n              puVar36 = (uint *)((int)puVar36 + 1);\n              piVar17 = piVar17 + 2;\n              if (puVar36 == local_78) break;\n              puVar23 = (uint *)*piVar17;\n            }\n            if (0 < iStack_180) {\n              piVar17 = piStack_74 + (int)local_78 * 2;\n              do {\n                *piVar17 = -1;\n                piVar33 = piVar17 + 2;\n                piVar17[1] = -1;\n                piVar17 = piVar33;\n              } while (piStack_74 + (iStack_180 + (int)local_78) * 2 != piVar33);\n            }\n            piVar33 = (int *)puVar43[0x21];\n            piVar17 = piStack_e0;\n            uStack_1e4 = uVar11;\n            if (piVar33 != (int *)0x0) {\n              iVar29 = 0;\n              piVar3 = piStack_74;\n              do {\n                pcVar45 = *(code **)(puVar46 + 0x28520);\n                if (iVar29 == (int)local_78 + -1) goto LAB_0004dbc0;\n                if (*piVar33 != iVar29) {\n                  piVar3[2] = piStack_74[(*piVar33 + 1) * 2];\n                  piVar3[3] = piStack_74[(*piVar33 + 1) * 2 + 1];\n                }\n                iVar29 = iVar29 + 1;\n                piVar33 = piVar33 + 1;\n                piVar3 = piVar3 + 2;\n              } while( true );\n            }\n            goto LAB_0004dbbc;\n          }\n          *piStack_74 = 0;\n          piStack_74[1] = uStack_e8;\n          goto LAB_0004e838;\n        }" if (parenthesized_expression "(uVar14 != 0xffffffff)" ( (binary_expression "uVar14 != 0xffffffff" identifier != number_literal) )) (compound_statement "{\n          if (uVar14 == 0xfffffffe) goto LAB_0004dbf8;\n          uStack_e8 = uVar14;\n          if (((uint)ppuVar24[7] & 0x8000000) == 0) {\n            if (!bVar1) {\n              uVar6 = puVar43[0x13];\n              goto joined_r0x0004e94c;\n            }\n            pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n            iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                     piStack_e0[uVar14] + 0xc,uVar14);\n            if ((*(char *)(puVar43 + 0x16) < '\0') || (puVar43[0x13] != 0)) goto LAB_0004e170;\n          }\n          else {\n            uVar6 = puVar43[0x13];\njoined_r0x0004e94c:\n            if (uVar6 != 0) {\n              pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n              iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                       piStack_e0[uVar14] + 0xc,uVar14);\nLAB_0004e170:\n              iVar30 = iStack_e4;\n              puVar36 = puStack_f0;\n              if (uVar14 < 0x3fffffff) {\n                uStack_1f0 = uVar14 + 1;\n                piVar17 = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                if (piVar17 == (int *)0x0) goto LAB_0004dbf8;\n                if (puVar36[0x13] == 0) {\n                  piStack_15c = (int *)0x0;\n                  uStack_150 = 0;\n                  uStack_14c = 0;\n                  uStack_148 = 0;\n                  piStack_160 = piVar17;\n                  iStack_158 = iVar30;\n                  uStack_154 = uVar14;\n                  uStack_1e4 = FUN_0004d30c(&puStack_144,&piStack_160);\n                  (**(code **)(puVar46 + 0x28520))(uStack_148);\n                  if (uStack_1e4 == 0) {\n                    if (*piVar17 == 0) {\n                      (**(code **)(puVar46 + 0x28520))(piVar17);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar46 + 0x28520))(piStack_e0);\n                    uStack_e8 = uVar14;\n                    iStack_e4 = iVar30;\n                    piStack_e0 = piVar17;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  piStack_1ec = (int *)0x0;\n                }\n                else {\n                  piStack_1ec = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                  if (piStack_1ec == (int *)0x0) {\n                    (**(code **)(puVar46 + 0x28520))(piVar17);\n                    uStack_1e4 = 0xc;\n                    piVar17 = piStack_e0;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar15 = *(int *)(puVar46 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);\n                    uStack_150 = 0;\n                    uStack_14c = 0;\n                    uStack_148 = 0;\n                    piStack_160 = piVar17;\n                    piStack_15c = piStack_1ec;\n                    iStack_158 = iVar30;\n                    uStack_154 = uVar14;\n                    uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);\n                    (**(code **)(puVar46 + 0x28520))(uStack_148);\n                    if (uStack_1e4 != 0) break;\n                    if ((*piVar17 != 0) || (*piStack_1ec != 0)) {\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    piVar33 = piStack_e0 + (uStack_1f0 - 1);\n                    uStack_1f0 = uVar14;\n                    while( true ) {\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }\n                    iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       );\n                  }\n                }\n                (**(code **)(puVar46 + 0x28520))(piVar17);\n                (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                piVar17 = piStack_e0;\n                if (uStack_1e4 == 1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }\n              uStack_1e4 = 0xc;\n              goto LAB_0004dbbc;\n            }\n          }\nLAB_0004e7e0:\n          piVar17 = piStack_e0;\n          uStack_1e4 = uVar11;\n          if (local_78 == (uint *)0x0) goto LAB_0004dbbc;\n          puVar23 = ppuVar24[7];\n          if (bVar1) {\n            piVar17 = piStack_74 + 2;\n            do {\n              piVar17[1] = -1;\n              piVar33 = piVar17 + 2;\n              *piVar17 = -1;\n              piVar17 = piVar33;\n            } while (piStack_74 + (int)local_78 * 2 != piVar33);\n            *piStack_74 = 0;\n            piStack_74[1] = uStack_e8;\n            if (((uint)puVar23 & 0x8000000) == 0) {\n              if (*(char *)(puVar43 + 0x16) < '\0') {\n                bVar22 = 0 < (int)puVar43[0x13];\n              }\n              else {\n                bVar22 = false;\n              }\n              uStack_1e4 = FUN_0004bc00(ppuVar24,&puStack_144,local_78,piStack_74,bVar22);\n              piVar17 = piStack_e0;\n              if (uStack_1e4 != 0) goto LAB_0004dbbc;\n              puVar23 = (uint *)*piStack_74;\n            }\n            else {\nLAB_0004e838:\n              puVar23 = (uint *)0x0;\n            }\n            puVar36 = (uint *)0x0;\n            piVar17 = piStack_74;\n            while( true ) {\n              if (puVar23 != (uint *)0xffffffff) {\n                puVar32 = (uint *)piVar17[1];\n                puVar39 = puVar23;\n                puVar38 = puVar32;\n                if (cStack_f8 != '\0') {\n                  puVar39 = puStack_124;\n                  if (puStack_128 != puVar23) {\n                    puVar39 = *(uint **)(iStack_138 + (int)puVar23 * 4);\n                  }\n                  *piVar17 = (int)puVar39;\n                  puVar38 = puStack_124;\n                  if (puStack_128 != puVar32) {\n                    puVar38 = *(uint **)(iStack_138 + (int)puVar32 * 4);\n                  }\n                }\n                *piVar17 = (int)puStack_16c + (int)puVar39;\n                piVar17[1] = (int)puStack_16c + (int)puVar38;\n              }\n              puVar36 = (uint *)((int)puVar36 + 1);\n              piVar17 = piVar17 + 2;\n              if (puVar36 == local_78) break;\n              puVar23 = (uint *)*piVar17;\n            }\n            if (0 < iStack_180) {\n              piVar17 = piStack_74 + (int)local_78 * 2;\n              do {\n                *piVar17 = -1;\n                piVar33 = piVar17 + 2;\n                piVar17[1] = -1;\n                piVar17 = piVar33;\n              } while (piStack_74 + (iStack_180 + (int)local_78) * 2 != piVar33);\n            }\n            piVar33 = (int *)puVar43[0x21];\n            piVar17 = piStack_e0;\n            uStack_1e4 = uVar11;\n            if (piVar33 != (int *)0x0) {\n              iVar29 = 0;\n              piVar3 = piStack_74;\n              do {\n                pcVar45 = *(code **)(puVar46 + 0x28520);\n                if (iVar29 == (int)local_78 + -1) goto LAB_0004dbc0;\n                if (*piVar33 != iVar29) {\n                  piVar3[2] = piStack_74[(*piVar33 + 1) * 2];\n                  piVar3[3] = piStack_74[(*piVar33 + 1) * 2 + 1];\n                }\n                iVar29 = iVar29 + 1;\n                piVar33 = piVar33 + 1;\n                piVar3 = piVar3 + 2;\n              } while( true );\n            }\n            goto LAB_0004dbbc;\n          }\n          *piStack_74 = 0;\n          piStack_74[1] = uStack_e8;\n          goto LAB_0004e838;\n        }" { (if_statement "if (uVar14 == 0xfffffffe) goto LAB_0004dbf8;" if (parenthesized_expression "(uVar14 == 0xfffffffe)" ( (binary_expression "uVar14 == 0xfffffffe" identifier == number_literal) )) (goto_statement "goto LAB_0004dbf8;" goto statement_identifier ;)) (expression_statement "uStack_e8 = uVar14;" (assignment_expression "uStack_e8 = uVar14" identifier = identifier) ;) (if_statement "if (((uint)ppuVar24[7] & 0x8000000) == 0) {\n            if (!bVar1) {\n              uVar6 = puVar43[0x13];\n              goto joined_r0x0004e94c;\n            }\n            pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n            iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                     piStack_e0[uVar14] + 0xc,uVar14);\n            if ((*(char *)(puVar43 + 0x16) < '\0') || (puVar43[0x13] != 0)) goto LAB_0004e170;\n          }\n          else {\n            uVar6 = puVar43[0x13];\njoined_r0x0004e94c:\n            if (uVar6 != 0) {\n              pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n              iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                       piStack_e0[uVar14] + 0xc,uVar14);\nLAB_0004e170:\n              iVar30 = iStack_e4;\n              puVar36 = puStack_f0;\n              if (uVar14 < 0x3fffffff) {\n                uStack_1f0 = uVar14 + 1;\n                piVar17 = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                if (piVar17 == (int *)0x0) goto LAB_0004dbf8;\n                if (puVar36[0x13] == 0) {\n                  piStack_15c = (int *)0x0;\n                  uStack_150 = 0;\n                  uStack_14c = 0;\n                  uStack_148 = 0;\n                  piStack_160 = piVar17;\n                  iStack_158 = iVar30;\n                  uStack_154 = uVar14;\n                  uStack_1e4 = FUN_0004d30c(&puStack_144,&piStack_160);\n                  (**(code **)(puVar46 + 0x28520))(uStack_148);\n                  if (uStack_1e4 == 0) {\n                    if (*piVar17 == 0) {\n                      (**(code **)(puVar46 + 0x28520))(piVar17);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar46 + 0x28520))(piStack_e0);\n                    uStack_e8 = uVar14;\n                    iStack_e4 = iVar30;\n                    piStack_e0 = piVar17;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  piStack_1ec = (int *)0x0;\n                }\n                else {\n                  piStack_1ec = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                  if (piStack_1ec == (int *)0x0) {\n                    (**(code **)(puVar46 + 0x28520))(piVar17);\n                    uStack_1e4 = 0xc;\n                    piVar17 = piStack_e0;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar15 = *(int *)(puVar46 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);\n                    uStack_150 = 0;\n                    uStack_14c = 0;\n                    uStack_148 = 0;\n                    piStack_160 = piVar17;\n                    piStack_15c = piStack_1ec;\n                    iStack_158 = iVar30;\n                    uStack_154 = uVar14;\n                    uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);\n                    (**(code **)(puVar46 + 0x28520))(uStack_148);\n                    if (uStack_1e4 != 0) break;\n                    if ((*piVar17 != 0) || (*piStack_1ec != 0)) {\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    piVar33 = piStack_e0 + (uStack_1f0 - 1);\n                    uStack_1f0 = uVar14;\n                    while( true ) {\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }\n                    iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       );\n                  }\n                }\n                (**(code **)(puVar46 + 0x28520))(piVar17);\n                (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                piVar17 = piStack_e0;\n                if (uStack_1e4 == 1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }\n              uStack_1e4 = 0xc;\n              goto LAB_0004dbbc;\n            }\n          }" if (parenthesized_expression "(((uint)ppuVar24[7] & 0x8000000) == 0)" ( (binary_expression "((uint)ppuVar24[7] & 0x8000000) == 0" (parenthesized_expression "((uint)ppuVar24[7] & 0x8000000)" ( (binary_expression "(uint)ppuVar24[7] & 0x8000000" (cast_expression "(uint)ppuVar24[7]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppuVar24[7]" identifier [ number_literal ])) & number_literal) )) == number_literal) )) (compound_statement "{\n            if (!bVar1) {\n              uVar6 = puVar43[0x13];\n              goto joined_r0x0004e94c;\n            }\n            pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n            iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                     piStack_e0[uVar14] + 0xc,uVar14);\n            if ((*(char *)(puVar43 + 0x16) < '\0') || (puVar43[0x13] != 0)) goto LAB_0004e170;\n          }" { (if_statement "if (!bVar1) {\n              uVar6 = puVar43[0x13];\n              goto joined_r0x0004e94c;\n            }" if (parenthesized_expression "(!bVar1)" ( (unary_expression "!bVar1" ! identifier) )) (compound_statement "{\n              uVar6 = puVar43[0x13];\n              goto joined_r0x0004e94c;\n            }" { (expression_statement "uVar6 = puVar43[0x13];" (assignment_expression "uVar6 = puVar43[0x13]" identifier = (subscript_expression "puVar43[0x13]" identifier [ number_literal ])) ;) (goto_statement "goto joined_r0x0004e94c;" goto statement_identifier ;) })) (expression_statement "pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);" (assignment_expression "pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c)" identifier = (cast_expression "(code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar46 + 0x28244) + 0x7d8c)" ( (binary_expression "*(int *)(puVar46 + 0x28244) + 0x7d8c" (pointer_expression "*(int *)(puVar46 + 0x28244)" * (cast_expression "(int *)(puVar46 + 0x28244)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar46 + 0x28244)" ( (binary_expression "puVar46 + 0x28244" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                     piStack_e0[uVar14] + 0xc,uVar14);" (assignment_expression "iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                     piStack_e0[uVar14] + 0xc,uVar14)" identifier = (call_expression "FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                     piStack_e0[uVar14] + 0xc,uVar14)" identifier (argument_list "(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                     piStack_e0[uVar14] + 0xc,uVar14)" ( (pointer_expression "&puStack_144" & identifier) , (pointer_expression "*(undefined4 *)(piStack_e0[uVar14] + 8)" * (cast_expression "(undefined4 *)(piStack_e0[uVar14] + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piStack_e0[uVar14] + 8)" ( (binary_expression "piStack_e0[uVar14] + 8" (subscript_expression "piStack_e0[uVar14]" identifier [ identifier ]) + number_literal) )))) , (binary_expression "piStack_e0[uVar14] + 0xc" (subscript_expression "piStack_e0[uVar14]" identifier [ identifier ]) + number_literal) , identifier )))) ;) (if_statement "if ((*(char *)(puVar43 + 0x16) < '\0') || (puVar43[0x13] != 0)) goto LAB_0004e170;" if (parenthesized_expression "((*(char *)(puVar43 + 0x16) < '\0') || (puVar43[0x13] != 0))" ( (binary_expression "(*(char *)(puVar43 + 0x16) < '\0') || (puVar43[0x13] != 0)" (parenthesized_expression "(*(char *)(puVar43 + 0x16) < '\0')" ( (binary_expression "*(char *)(puVar43 + 0x16) < '\0'" (pointer_expression "*(char *)(puVar43 + 0x16)" * (cast_expression "(char *)(puVar43 + 0x16)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar43 + 0x16)" ( (binary_expression "puVar43 + 0x16" identifier + number_literal) )))) < (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(puVar43[0x13] != 0)" ( (binary_expression "puVar43[0x13] != 0" (subscript_expression "puVar43[0x13]" identifier [ number_literal ]) != number_literal) ))) )) (goto_statement "goto LAB_0004e170;" goto statement_identifier ;)) }) (else_clause "else {\n            uVar6 = puVar43[0x13];\njoined_r0x0004e94c:\n            if (uVar6 != 0) {\n              pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n              iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                       piStack_e0[uVar14] + 0xc,uVar14);\nLAB_0004e170:\n              iVar30 = iStack_e4;\n              puVar36 = puStack_f0;\n              if (uVar14 < 0x3fffffff) {\n                uStack_1f0 = uVar14 + 1;\n                piVar17 = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                if (piVar17 == (int *)0x0) goto LAB_0004dbf8;\n                if (puVar36[0x13] == 0) {\n                  piStack_15c = (int *)0x0;\n                  uStack_150 = 0;\n                  uStack_14c = 0;\n                  uStack_148 = 0;\n                  piStack_160 = piVar17;\n                  iStack_158 = iVar30;\n                  uStack_154 = uVar14;\n                  uStack_1e4 = FUN_0004d30c(&puStack_144,&piStack_160);\n                  (**(code **)(puVar46 + 0x28520))(uStack_148);\n                  if (uStack_1e4 == 0) {\n                    if (*piVar17 == 0) {\n                      (**(code **)(puVar46 + 0x28520))(piVar17);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar46 + 0x28520))(piStack_e0);\n                    uStack_e8 = uVar14;\n                    iStack_e4 = iVar30;\n                    piStack_e0 = piVar17;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  piStack_1ec = (int *)0x0;\n                }\n                else {\n                  piStack_1ec = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                  if (piStack_1ec == (int *)0x0) {\n                    (**(code **)(puVar46 + 0x28520))(piVar17);\n                    uStack_1e4 = 0xc;\n                    piVar17 = piStack_e0;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar15 = *(int *)(puVar46 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);\n                    uStack_150 = 0;\n                    uStack_14c = 0;\n                    uStack_148 = 0;\n                    piStack_160 = piVar17;\n                    piStack_15c = piStack_1ec;\n                    iStack_158 = iVar30;\n                    uStack_154 = uVar14;\n                    uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);\n                    (**(code **)(puVar46 + 0x28520))(uStack_148);\n                    if (uStack_1e4 != 0) break;\n                    if ((*piVar17 != 0) || (*piStack_1ec != 0)) {\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    piVar33 = piStack_e0 + (uStack_1f0 - 1);\n                    uStack_1f0 = uVar14;\n                    while( true ) {\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }\n                    iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       );\n                  }\n                }\n                (**(code **)(puVar46 + 0x28520))(piVar17);\n                (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                piVar17 = piStack_e0;\n                if (uStack_1e4 == 1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }\n              uStack_1e4 = 0xc;\n              goto LAB_0004dbbc;\n            }\n          }" else (compound_statement "{\n            uVar6 = puVar43[0x13];\njoined_r0x0004e94c:\n            if (uVar6 != 0) {\n              pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n              iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                       piStack_e0[uVar14] + 0xc,uVar14);\nLAB_0004e170:\n              iVar30 = iStack_e4;\n              puVar36 = puStack_f0;\n              if (uVar14 < 0x3fffffff) {\n                uStack_1f0 = uVar14 + 1;\n                piVar17 = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                if (piVar17 == (int *)0x0) goto LAB_0004dbf8;\n                if (puVar36[0x13] == 0) {\n                  piStack_15c = (int *)0x0;\n                  uStack_150 = 0;\n                  uStack_14c = 0;\n                  uStack_148 = 0;\n                  piStack_160 = piVar17;\n                  iStack_158 = iVar30;\n                  uStack_154 = uVar14;\n                  uStack_1e4 = FUN_0004d30c(&puStack_144,&piStack_160);\n                  (**(code **)(puVar46 + 0x28520))(uStack_148);\n                  if (uStack_1e4 == 0) {\n                    if (*piVar17 == 0) {\n                      (**(code **)(puVar46 + 0x28520))(piVar17);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar46 + 0x28520))(piStack_e0);\n                    uStack_e8 = uVar14;\n                    iStack_e4 = iVar30;\n                    piStack_e0 = piVar17;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  piStack_1ec = (int *)0x0;\n                }\n                else {\n                  piStack_1ec = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                  if (piStack_1ec == (int *)0x0) {\n                    (**(code **)(puVar46 + 0x28520))(piVar17);\n                    uStack_1e4 = 0xc;\n                    piVar17 = piStack_e0;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar15 = *(int *)(puVar46 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);\n                    uStack_150 = 0;\n                    uStack_14c = 0;\n                    uStack_148 = 0;\n                    piStack_160 = piVar17;\n                    piStack_15c = piStack_1ec;\n                    iStack_158 = iVar30;\n                    uStack_154 = uVar14;\n                    uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);\n                    (**(code **)(puVar46 + 0x28520))(uStack_148);\n                    if (uStack_1e4 != 0) break;\n                    if ((*piVar17 != 0) || (*piStack_1ec != 0)) {\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    piVar33 = piStack_e0 + (uStack_1f0 - 1);\n                    uStack_1f0 = uVar14;\n                    while( true ) {\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }\n                    iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       );\n                  }\n                }\n                (**(code **)(puVar46 + 0x28520))(piVar17);\n                (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                piVar17 = piStack_e0;\n                if (uStack_1e4 == 1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }\n              uStack_1e4 = 0xc;\n              goto LAB_0004dbbc;\n            }\n          }" { (expression_statement "uVar6 = puVar43[0x13];" (assignment_expression "uVar6 = puVar43[0x13]" identifier = (subscript_expression "puVar43[0x13]" identifier [ number_literal ])) ;) (labeled_statement "joined_r0x0004e94c:\n            if (uVar6 != 0) {\n              pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n              iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                       piStack_e0[uVar14] + 0xc,uVar14);\nLAB_0004e170:\n              iVar30 = iStack_e4;\n              puVar36 = puStack_f0;\n              if (uVar14 < 0x3fffffff) {\n                uStack_1f0 = uVar14 + 1;\n                piVar17 = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                if (piVar17 == (int *)0x0) goto LAB_0004dbf8;\n                if (puVar36[0x13] == 0) {\n                  piStack_15c = (int *)0x0;\n                  uStack_150 = 0;\n                  uStack_14c = 0;\n                  uStack_148 = 0;\n                  piStack_160 = piVar17;\n                  iStack_158 = iVar30;\n                  uStack_154 = uVar14;\n                  uStack_1e4 = FUN_0004d30c(&puStack_144,&piStack_160);\n                  (**(code **)(puVar46 + 0x28520))(uStack_148);\n                  if (uStack_1e4 == 0) {\n                    if (*piVar17 == 0) {\n                      (**(code **)(puVar46 + 0x28520))(piVar17);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar46 + 0x28520))(piStack_e0);\n                    uStack_e8 = uVar14;\n                    iStack_e4 = iVar30;\n                    piStack_e0 = piVar17;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  piStack_1ec = (int *)0x0;\n                }\n                else {\n                  piStack_1ec = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                  if (piStack_1ec == (int *)0x0) {\n                    (**(code **)(puVar46 + 0x28520))(piVar17);\n                    uStack_1e4 = 0xc;\n                    piVar17 = piStack_e0;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar15 = *(int *)(puVar46 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);\n                    uStack_150 = 0;\n                    uStack_14c = 0;\n                    uStack_148 = 0;\n                    piStack_160 = piVar17;\n                    piStack_15c = piStack_1ec;\n                    iStack_158 = iVar30;\n                    uStack_154 = uVar14;\n                    uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);\n                    (**(code **)(puVar46 + 0x28520))(uStack_148);\n                    if (uStack_1e4 != 0) break;\n                    if ((*piVar17 != 0) || (*piStack_1ec != 0)) {\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    piVar33 = piStack_e0 + (uStack_1f0 - 1);\n                    uStack_1f0 = uVar14;\n                    while( true ) {\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }\n                    iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       );\n                  }\n                }\n                (**(code **)(puVar46 + 0x28520))(piVar17);\n                (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                piVar17 = piStack_e0;\n                if (uStack_1e4 == 1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }\n              uStack_1e4 = 0xc;\n              goto LAB_0004dbbc;\n            }" statement_identifier : (if_statement "if (uVar6 != 0) {\n              pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n              iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                       piStack_e0[uVar14] + 0xc,uVar14);\nLAB_0004e170:\n              iVar30 = iStack_e4;\n              puVar36 = puStack_f0;\n              if (uVar14 < 0x3fffffff) {\n                uStack_1f0 = uVar14 + 1;\n                piVar17 = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                if (piVar17 == (int *)0x0) goto LAB_0004dbf8;\n                if (puVar36[0x13] == 0) {\n                  piStack_15c = (int *)0x0;\n                  uStack_150 = 0;\n                  uStack_14c = 0;\n                  uStack_148 = 0;\n                  piStack_160 = piVar17;\n                  iStack_158 = iVar30;\n                  uStack_154 = uVar14;\n                  uStack_1e4 = FUN_0004d30c(&puStack_144,&piStack_160);\n                  (**(code **)(puVar46 + 0x28520))(uStack_148);\n                  if (uStack_1e4 == 0) {\n                    if (*piVar17 == 0) {\n                      (**(code **)(puVar46 + 0x28520))(piVar17);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar46 + 0x28520))(piStack_e0);\n                    uStack_e8 = uVar14;\n                    iStack_e4 = iVar30;\n                    piStack_e0 = piVar17;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  piStack_1ec = (int *)0x0;\n                }\n                else {\n                  piStack_1ec = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                  if (piStack_1ec == (int *)0x0) {\n                    (**(code **)(puVar46 + 0x28520))(piVar17);\n                    uStack_1e4 = 0xc;\n                    piVar17 = piStack_e0;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar15 = *(int *)(puVar46 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);\n                    uStack_150 = 0;\n                    uStack_14c = 0;\n                    uStack_148 = 0;\n                    piStack_160 = piVar17;\n                    piStack_15c = piStack_1ec;\n                    iStack_158 = iVar30;\n                    uStack_154 = uVar14;\n                    uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);\n                    (**(code **)(puVar46 + 0x28520))(uStack_148);\n                    if (uStack_1e4 != 0) break;\n                    if ((*piVar17 != 0) || (*piStack_1ec != 0)) {\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    piVar33 = piStack_e0 + (uStack_1f0 - 1);\n                    uStack_1f0 = uVar14;\n                    while( true ) {\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }\n                    iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       );\n                  }\n                }\n                (**(code **)(puVar46 + 0x28520))(piVar17);\n                (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                piVar17 = piStack_e0;\n                if (uStack_1e4 == 1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }\n              uStack_1e4 = 0xc;\n              goto LAB_0004dbbc;\n            }" if (parenthesized_expression "(uVar6 != 0)" ( (binary_expression "uVar6 != 0" identifier != number_literal) )) (compound_statement "{\n              pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n              iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                       piStack_e0[uVar14] + 0xc,uVar14);\nLAB_0004e170:\n              iVar30 = iStack_e4;\n              puVar36 = puStack_f0;\n              if (uVar14 < 0x3fffffff) {\n                uStack_1f0 = uVar14 + 1;\n                piVar17 = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                if (piVar17 == (int *)0x0) goto LAB_0004dbf8;\n                if (puVar36[0x13] == 0) {\n                  piStack_15c = (int *)0x0;\n                  uStack_150 = 0;\n                  uStack_14c = 0;\n                  uStack_148 = 0;\n                  piStack_160 = piVar17;\n                  iStack_158 = iVar30;\n                  uStack_154 = uVar14;\n                  uStack_1e4 = FUN_0004d30c(&puStack_144,&piStack_160);\n                  (**(code **)(puVar46 + 0x28520))(uStack_148);\n                  if (uStack_1e4 == 0) {\n                    if (*piVar17 == 0) {\n                      (**(code **)(puVar46 + 0x28520))(piVar17);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar46 + 0x28520))(piStack_e0);\n                    uStack_e8 = uVar14;\n                    iStack_e4 = iVar30;\n                    piStack_e0 = piVar17;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  piStack_1ec = (int *)0x0;\n                }\n                else {\n                  piStack_1ec = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                  if (piStack_1ec == (int *)0x0) {\n                    (**(code **)(puVar46 + 0x28520))(piVar17);\n                    uStack_1e4 = 0xc;\n                    piVar17 = piStack_e0;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar15 = *(int *)(puVar46 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);\n                    uStack_150 = 0;\n                    uStack_14c = 0;\n                    uStack_148 = 0;\n                    piStack_160 = piVar17;\n                    piStack_15c = piStack_1ec;\n                    iStack_158 = iVar30;\n                    uStack_154 = uVar14;\n                    uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);\n                    (**(code **)(puVar46 + 0x28520))(uStack_148);\n                    if (uStack_1e4 != 0) break;\n                    if ((*piVar17 != 0) || (*piStack_1ec != 0)) {\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    piVar33 = piStack_e0 + (uStack_1f0 - 1);\n                    uStack_1f0 = uVar14;\n                    while( true ) {\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }\n                    iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       );\n                  }\n                }\n                (**(code **)(puVar46 + 0x28520))(piVar17);\n                (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                piVar17 = piStack_e0;\n                if (uStack_1e4 == 1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }\n              uStack_1e4 = 0xc;\n              goto LAB_0004dbbc;\n            }" { (expression_statement "pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);" (assignment_expression "pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c)" identifier = (cast_expression "(code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar46 + 0x28244) + 0x7d8c)" ( (binary_expression "*(int *)(puVar46 + 0x28244) + 0x7d8c" (pointer_expression "*(int *)(puVar46 + 0x28244)" * (cast_expression "(int *)(puVar46 + 0x28244)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar46 + 0x28244)" ( (binary_expression "puVar46 + 0x28244" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                       piStack_e0[uVar14] + 0xc,uVar14);" (assignment_expression "iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                       piStack_e0[uVar14] + 0xc,uVar14)" identifier = (call_expression "FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                       piStack_e0[uVar14] + 0xc,uVar14)" identifier (argument_list "(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                       piStack_e0[uVar14] + 0xc,uVar14)" ( (pointer_expression "&puStack_144" & identifier) , (pointer_expression "*(undefined4 *)(piStack_e0[uVar14] + 8)" * (cast_expression "(undefined4 *)(piStack_e0[uVar14] + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piStack_e0[uVar14] + 8)" ( (binary_expression "piStack_e0[uVar14] + 8" (subscript_expression "piStack_e0[uVar14]" identifier [ identifier ]) + number_literal) )))) , (binary_expression "piStack_e0[uVar14] + 0xc" (subscript_expression "piStack_e0[uVar14]" identifier [ identifier ]) + number_literal) , identifier )))) ;) (labeled_statement "LAB_0004e170:\n              iVar30 = iStack_e4;" statement_identifier : (expression_statement "iVar30 = iStack_e4;" (assignment_expression "iVar30 = iStack_e4" identifier = identifier) ;)) (expression_statement "puVar36 = puStack_f0;" (assignment_expression "puVar36 = puStack_f0" identifier = identifier) ;) (if_statement "if (uVar14 < 0x3fffffff) {\n                uStack_1f0 = uVar14 + 1;\n                piVar17 = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                if (piVar17 == (int *)0x0) goto LAB_0004dbf8;\n                if (puVar36[0x13] == 0) {\n                  piStack_15c = (int *)0x0;\n                  uStack_150 = 0;\n                  uStack_14c = 0;\n                  uStack_148 = 0;\n                  piStack_160 = piVar17;\n                  iStack_158 = iVar30;\n                  uStack_154 = uVar14;\n                  uStack_1e4 = FUN_0004d30c(&puStack_144,&piStack_160);\n                  (**(code **)(puVar46 + 0x28520))(uStack_148);\n                  if (uStack_1e4 == 0) {\n                    if (*piVar17 == 0) {\n                      (**(code **)(puVar46 + 0x28520))(piVar17);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar46 + 0x28520))(piStack_e0);\n                    uStack_e8 = uVar14;\n                    iStack_e4 = iVar30;\n                    piStack_e0 = piVar17;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  piStack_1ec = (int *)0x0;\n                }\n                else {\n                  piStack_1ec = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                  if (piStack_1ec == (int *)0x0) {\n                    (**(code **)(puVar46 + 0x28520))(piVar17);\n                    uStack_1e4 = 0xc;\n                    piVar17 = piStack_e0;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar15 = *(int *)(puVar46 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);\n                    uStack_150 = 0;\n                    uStack_14c = 0;\n                    uStack_148 = 0;\n                    piStack_160 = piVar17;\n                    piStack_15c = piStack_1ec;\n                    iStack_158 = iVar30;\n                    uStack_154 = uVar14;\n                    uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);\n                    (**(code **)(puVar46 + 0x28520))(uStack_148);\n                    if (uStack_1e4 != 0) break;\n                    if ((*piVar17 != 0) || (*piStack_1ec != 0)) {\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    piVar33 = piStack_e0 + (uStack_1f0 - 1);\n                    uStack_1f0 = uVar14;\n                    while( true ) {\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }\n                    iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       );\n                  }\n                }\n                (**(code **)(puVar46 + 0x28520))(piVar17);\n                (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                piVar17 = piStack_e0;\n                if (uStack_1e4 == 1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }" if (parenthesized_expression "(uVar14 < 0x3fffffff)" ( (binary_expression "uVar14 < 0x3fffffff" identifier < number_literal) )) (compound_statement "{\n                uStack_1f0 = uVar14 + 1;\n                piVar17 = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                if (piVar17 == (int *)0x0) goto LAB_0004dbf8;\n                if (puVar36[0x13] == 0) {\n                  piStack_15c = (int *)0x0;\n                  uStack_150 = 0;\n                  uStack_14c = 0;\n                  uStack_148 = 0;\n                  piStack_160 = piVar17;\n                  iStack_158 = iVar30;\n                  uStack_154 = uVar14;\n                  uStack_1e4 = FUN_0004d30c(&puStack_144,&piStack_160);\n                  (**(code **)(puVar46 + 0x28520))(uStack_148);\n                  if (uStack_1e4 == 0) {\n                    if (*piVar17 == 0) {\n                      (**(code **)(puVar46 + 0x28520))(piVar17);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar46 + 0x28520))(piStack_e0);\n                    uStack_e8 = uVar14;\n                    iStack_e4 = iVar30;\n                    piStack_e0 = piVar17;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  piStack_1ec = (int *)0x0;\n                }\n                else {\n                  piStack_1ec = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                  if (piStack_1ec == (int *)0x0) {\n                    (**(code **)(puVar46 + 0x28520))(piVar17);\n                    uStack_1e4 = 0xc;\n                    piVar17 = piStack_e0;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar15 = *(int *)(puVar46 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);\n                    uStack_150 = 0;\n                    uStack_14c = 0;\n                    uStack_148 = 0;\n                    piStack_160 = piVar17;\n                    piStack_15c = piStack_1ec;\n                    iStack_158 = iVar30;\n                    uStack_154 = uVar14;\n                    uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);\n                    (**(code **)(puVar46 + 0x28520))(uStack_148);\n                    if (uStack_1e4 != 0) break;\n                    if ((*piVar17 != 0) || (*piStack_1ec != 0)) {\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    piVar33 = piStack_e0 + (uStack_1f0 - 1);\n                    uStack_1f0 = uVar14;\n                    while( true ) {\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }\n                    iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       );\n                  }\n                }\n                (**(code **)(puVar46 + 0x28520))(piVar17);\n                (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                piVar17 = piStack_e0;\n                if (uStack_1e4 == 1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }" { (expression_statement "uStack_1f0 = uVar14 + 1;" (assignment_expression "uStack_1f0 = uVar14 + 1" identifier = (binary_expression "uVar14 + 1" identifier + number_literal)) ;) (expression_statement "piVar17 = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);" (assignment_expression "piVar17 = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4)" identifier = (cast_expression "(int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4)" (parenthesized_expression "(**(code **)(puVar46 + 0x28450))" ( (pointer_expression "**(code **)(puVar46 + 0x28450)" * (pointer_expression "*(code **)(puVar46 + 0x28450)" * (cast_expression "(code **)(puVar46 + 0x28450)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar46 + 0x28450)" ( (binary_expression "puVar46 + 0x28450" identifier + number_literal) ))))) )) (argument_list "(uStack_1f0 * 4)" ( (binary_expression "uStack_1f0 * 4" identifier * number_literal) ))))) ;) (if_statement "if (piVar17 == (int *)0x0) goto LAB_0004dbf8;" if (parenthesized_expression "(piVar17 == (int *)0x0)" ( (binary_expression "piVar17 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004dbf8;" goto statement_identifier ;)) (if_statement "if (puVar36[0x13] == 0) {\n                  piStack_15c = (int *)0x0;\n                  uStack_150 = 0;\n                  uStack_14c = 0;\n                  uStack_148 = 0;\n                  piStack_160 = piVar17;\n                  iStack_158 = iVar30;\n                  uStack_154 = uVar14;\n                  uStack_1e4 = FUN_0004d30c(&puStack_144,&piStack_160);\n                  (**(code **)(puVar46 + 0x28520))(uStack_148);\n                  if (uStack_1e4 == 0) {\n                    if (*piVar17 == 0) {\n                      (**(code **)(puVar46 + 0x28520))(piVar17);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar46 + 0x28520))(piStack_e0);\n                    uStack_e8 = uVar14;\n                    iStack_e4 = iVar30;\n                    piStack_e0 = piVar17;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  piStack_1ec = (int *)0x0;\n                }\n                else {\n                  piStack_1ec = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                  if (piStack_1ec == (int *)0x0) {\n                    (**(code **)(puVar46 + 0x28520))(piVar17);\n                    uStack_1e4 = 0xc;\n                    piVar17 = piStack_e0;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar15 = *(int *)(puVar46 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);\n                    uStack_150 = 0;\n                    uStack_14c = 0;\n                    uStack_148 = 0;\n                    piStack_160 = piVar17;\n                    piStack_15c = piStack_1ec;\n                    iStack_158 = iVar30;\n                    uStack_154 = uVar14;\n                    uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);\n                    (**(code **)(puVar46 + 0x28520))(uStack_148);\n                    if (uStack_1e4 != 0) break;\n                    if ((*piVar17 != 0) || (*piStack_1ec != 0)) {\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    piVar33 = piStack_e0 + (uStack_1f0 - 1);\n                    uStack_1f0 = uVar14;\n                    while( true ) {\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }\n                    iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       );\n                  }\n                }" if (parenthesized_expression "(puVar36[0x13] == 0)" ( (binary_expression "puVar36[0x13] == 0" (subscript_expression "puVar36[0x13]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                  piStack_15c = (int *)0x0;\n                  uStack_150 = 0;\n                  uStack_14c = 0;\n                  uStack_148 = 0;\n                  piStack_160 = piVar17;\n                  iStack_158 = iVar30;\n                  uStack_154 = uVar14;\n                  uStack_1e4 = FUN_0004d30c(&puStack_144,&piStack_160);\n                  (**(code **)(puVar46 + 0x28520))(uStack_148);\n                  if (uStack_1e4 == 0) {\n                    if (*piVar17 == 0) {\n                      (**(code **)(puVar46 + 0x28520))(piVar17);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar46 + 0x28520))(piStack_e0);\n                    uStack_e8 = uVar14;\n                    iStack_e4 = iVar30;\n                    piStack_e0 = piVar17;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  piStack_1ec = (int *)0x0;\n                }" { (expression_statement "piStack_15c = (int *)0x0;" (assignment_expression "piStack_15c = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uStack_150 = 0;" (assignment_expression "uStack_150 = 0" identifier = number_literal) ;) (expression_statement "uStack_14c = 0;" (assignment_expression "uStack_14c = 0" identifier = number_literal) ;) (expression_statement "uStack_148 = 0;" (assignment_expression "uStack_148 = 0" identifier = number_literal) ;) (expression_statement "piStack_160 = piVar17;" (assignment_expression "piStack_160 = piVar17" identifier = identifier) ;) (expression_statement "iStack_158 = iVar30;" (assignment_expression "iStack_158 = iVar30" identifier = identifier) ;) (expression_statement "uStack_154 = uVar14;" (assignment_expression "uStack_154 = uVar14" identifier = identifier) ;) (expression_statement "uStack_1e4 = FUN_0004d30c(&puStack_144,&piStack_160);" (assignment_expression "uStack_1e4 = FUN_0004d30c(&puStack_144,&piStack_160)" identifier = (call_expression "FUN_0004d30c(&puStack_144,&piStack_160)" identifier (argument_list "(&puStack_144,&piStack_160)" ( (pointer_expression "&puStack_144" & identifier) , (pointer_expression "&piStack_160" & identifier) )))) ;) (expression_statement "(**(code **)(puVar46 + 0x28520))(uStack_148);" (call_expression "(**(code **)(puVar46 + 0x28520))(uStack_148)" (parenthesized_expression "(**(code **)(puVar46 + 0x28520))" ( (pointer_expression "**(code **)(puVar46 + 0x28520)" * (pointer_expression "*(code **)(puVar46 + 0x28520)" * (cast_expression "(code **)(puVar46 + 0x28520)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar46 + 0x28520)" ( (binary_expression "puVar46 + 0x28520" identifier + number_literal) ))))) )) (argument_list "(uStack_148)" ( identifier ))) ;) (if_statement "if (uStack_1e4 == 0) {\n                    if (*piVar17 == 0) {\n                      (**(code **)(puVar46 + 0x28520))(piVar17);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar46 + 0x28520))(piStack_e0);\n                    uStack_e8 = uVar14;\n                    iStack_e4 = iVar30;\n                    piStack_e0 = piVar17;\n                    goto LAB_0004e7e0;\n                  }" if (parenthesized_expression "(uStack_1e4 == 0)" ( (binary_expression "uStack_1e4 == 0" identifier == number_literal) )) (compound_statement "{\n                    if (*piVar17 == 0) {\n                      (**(code **)(puVar46 + 0x28520))(piVar17);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar46 + 0x28520))(piStack_e0);\n                    uStack_e8 = uVar14;\n                    iStack_e4 = iVar30;\n                    piStack_e0 = piVar17;\n                    goto LAB_0004e7e0;\n                  }" { (if_statement "if (*piVar17 == 0) {\n                      (**(code **)(puVar46 + 0x28520))(piVar17);\n                      goto LAB_0004e2d4;\n                    }" if (parenthesized_expression "(*piVar17 == 0)" ( (binary_expression "*piVar17 == 0" (pointer_expression "*piVar17" * identifier) == number_literal) )) (compound_statement "{\n                      (**(code **)(puVar46 + 0x28520))(piVar17);\n                      goto LAB_0004e2d4;\n                    }" { (expression_statement "(**(code **)(puVar46 + 0x28520))(piVar17);" (call_expression "(**(code **)(puVar46 + 0x28520))(piVar17)" (parenthesized_expression "(**(code **)(puVar46 + 0x28520))" ( (pointer_expression "**(code **)(puVar46 + 0x28520)" * (pointer_expression "*(code **)(puVar46 + 0x28520)" * (cast_expression "(code **)(puVar46 + 0x28520)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar46 + 0x28520)" ( (binary_expression "puVar46 + 0x28520" identifier + number_literal) ))))) )) (argument_list "(piVar17)" ( identifier ))) ;) (goto_statement "goto LAB_0004e2d4;" goto statement_identifier ;) })) (labeled_statement "LAB_0004e9f8:\n                    (**(code **)(puVar46 + 0x28520))(piStack_e0);" statement_identifier : (expression_statement "(**(code **)(puVar46 + 0x28520))(piStack_e0);" (call_expression "(**(code **)(puVar46 + 0x28520))(piStack_e0)" (parenthesized_expression "(**(code **)(puVar46 + 0x28520))" ( (pointer_expression "**(code **)(puVar46 + 0x28520)" * (pointer_expression "*(code **)(puVar46 + 0x28520)" * (cast_expression "(code **)(puVar46 + 0x28520)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar46 + 0x28520)" ( (binary_expression "puVar46 + 0x28520" identifier + number_literal) ))))) )) (argument_list "(piStack_e0)" ( identifier ))) ;)) (expression_statement "uStack_e8 = uVar14;" (assignment_expression "uStack_e8 = uVar14" identifier = identifier) ;) (expression_statement "iStack_e4 = iVar30;" (assignment_expression "iStack_e4 = iVar30" identifier = identifier) ;) (expression_statement "piStack_e0 = piVar17;" (assignment_expression "piStack_e0 = piVar17" identifier = identifier) ;) (goto_statement "goto LAB_0004e7e0;" goto statement_identifier ;) })) (labeled_statement "LAB_0004ed18:\n                  piStack_1ec = (int *)0x0;" statement_identifier : (expression_statement "piStack_1ec = (int *)0x0;" (assignment_expression "piStack_1ec = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) }) (else_clause "else {\n                  piStack_1ec = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                  if (piStack_1ec == (int *)0x0) {\n                    (**(code **)(puVar46 + 0x28520))(piVar17);\n                    uStack_1e4 = 0xc;\n                    piVar17 = piStack_e0;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar15 = *(int *)(puVar46 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);\n                    uStack_150 = 0;\n                    uStack_14c = 0;\n                    uStack_148 = 0;\n                    piStack_160 = piVar17;\n                    piStack_15c = piStack_1ec;\n                    iStack_158 = iVar30;\n                    uStack_154 = uVar14;\n                    uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);\n                    (**(code **)(puVar46 + 0x28520))(uStack_148);\n                    if (uStack_1e4 != 0) break;\n                    if ((*piVar17 != 0) || (*piStack_1ec != 0)) {\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    piVar33 = piStack_e0 + (uStack_1f0 - 1);\n                    uStack_1f0 = uVar14;\n                    while( true ) {\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }\n                    iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       );\n                  }\n                }" else (compound_statement "{\n                  piStack_1ec = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                  if (piStack_1ec == (int *)0x0) {\n                    (**(code **)(puVar46 + 0x28520))(piVar17);\n                    uStack_1e4 = 0xc;\n                    piVar17 = piStack_e0;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar15 = *(int *)(puVar46 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);\n                    uStack_150 = 0;\n                    uStack_14c = 0;\n                    uStack_148 = 0;\n                    piStack_160 = piVar17;\n                    piStack_15c = piStack_1ec;\n                    iStack_158 = iVar30;\n                    uStack_154 = uVar14;\n                    uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);\n                    (**(code **)(puVar46 + 0x28520))(uStack_148);\n                    if (uStack_1e4 != 0) break;\n                    if ((*piVar17 != 0) || (*piStack_1ec != 0)) {\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    piVar33 = piStack_e0 + (uStack_1f0 - 1);\n                    uStack_1f0 = uVar14;\n                    while( true ) {\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }\n                    iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       );\n                  }\n                }" { (expression_statement "piStack_1ec = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);" (assignment_expression "piStack_1ec = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4)" identifier = (cast_expression "(int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4)" (parenthesized_expression "(**(code **)(puVar46 + 0x28450))" ( (pointer_expression "**(code **)(puVar46 + 0x28450)" * (pointer_expression "*(code **)(puVar46 + 0x28450)" * (cast_expression "(code **)(puVar46 + 0x28450)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar46 + 0x28450)" ( (binary_expression "puVar46 + 0x28450" identifier + number_literal) ))))) )) (argument_list "(uStack_1f0 * 4)" ( (binary_expression "uStack_1f0 * 4" identifier * number_literal) ))))) ;) (if_statement "if (piStack_1ec == (int *)0x0) {\n                    (**(code **)(puVar46 + 0x28520))(piVar17);\n                    uStack_1e4 = 0xc;\n                    piVar17 = piStack_e0;\n                    goto LAB_0004dbbc;\n                  }" if (parenthesized_expression "(piStack_1ec == (int *)0x0)" ( (binary_expression "piStack_1ec == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    (**(code **)(puVar46 + 0x28520))(piVar17);\n                    uStack_1e4 = 0xc;\n                    piVar17 = piStack_e0;\n                    goto LAB_0004dbbc;\n                  }" { (expression_statement "(**(code **)(puVar46 + 0x28520))(piVar17);" (call_expression "(**(code **)(puVar46 + 0x28520))(piVar17)" (parenthesized_expression "(**(code **)(puVar46 + 0x28520))" ( (pointer_expression "**(code **)(puVar46 + 0x28520)" * (pointer_expression "*(code **)(puVar46 + 0x28520)" * (cast_expression "(code **)(puVar46 + 0x28520)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar46 + 0x28520)" ( (binary_expression "puVar46 + 0x28520" identifier + number_literal) ))))) )) (argument_list "(piVar17)" ( identifier ))) ;) (expression_statement "uStack_1e4 = 0xc;" (assignment_expression "uStack_1e4 = 0xc" identifier = number_literal) ;) (expression_statement "piVar17 = piStack_e0;" (assignment_expression "piVar17 = piStack_e0" identifier = identifier) ;) (goto_statement "goto LAB_0004dbbc;" goto statement_identifier ;) })) (expression_statement "iVar15 = *(int *)(puVar46 + 0x2829c);" (assignment_expression "iVar15 = *(int *)(puVar46 + 0x2829c)" identifier = (pointer_expression "*(int *)(puVar46 + 0x2829c)" * (cast_expression "(int *)(puVar46 + 0x2829c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar46 + 0x2829c)" ( (binary_expression "puVar46 + 0x2829c" identifier + number_literal) ))))) ;) (while_statement "while( true ) {\n                    (**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);\n                    uStack_150 = 0;\n                    uStack_14c = 0;\n                    uStack_148 = 0;\n                    piStack_160 = piVar17;\n                    piStack_15c = piStack_1ec;\n                    iStack_158 = iVar30;\n                    uStack_154 = uVar14;\n                    uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);\n                    (**(code **)(puVar46 + 0x28520))(uStack_148);\n                    if (uStack_1e4 != 0) break;\n                    if ((*piVar17 != 0) || (*piStack_1ec != 0)) {\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    piVar33 = piStack_e0 + (uStack_1f0 - 1);\n                    uStack_1f0 = uVar14;\n                    while( true ) {\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }\n                    iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       );\n                  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                    (**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);\n                    uStack_150 = 0;\n                    uStack_14c = 0;\n                    uStack_148 = 0;\n                    piStack_160 = piVar17;\n                    piStack_15c = piStack_1ec;\n                    iStack_158 = iVar30;\n                    uStack_154 = uVar14;\n                    uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);\n                    (**(code **)(puVar46 + 0x28520))(uStack_148);\n                    if (uStack_1e4 != 0) break;\n                    if ((*piVar17 != 0) || (*piStack_1ec != 0)) {\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    piVar33 = piStack_e0 + (uStack_1f0 - 1);\n                    uStack_1f0 = uVar14;\n                    while( true ) {\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }\n                    iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       );\n                  }" { (expression_statement "(**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);" (call_expression "(**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4)" (parenthesized_expression "(**(code **)(puVar46 + 0x283f8))" ( (pointer_expression "**(code **)(puVar46 + 0x283f8)" * (pointer_expression "*(code **)(puVar46 + 0x283f8)" * (cast_expression "(code **)(puVar46 + 0x283f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar46 + 0x283f8)" ( (binary_expression "puVar46 + 0x283f8" identifier + number_literal) ))))) )) (argument_list "(piStack_1ec,0,uStack_1f0 * 4)" ( identifier , number_literal , (binary_expression "uStack_1f0 * 4" identifier * number_literal) ))) ;) (expression_statement "uStack_150 = 0;" (assignment_expression "uStack_150 = 0" identifier = number_literal) ;) (expression_statement "uStack_14c = 0;" (assignment_expression "uStack_14c = 0" identifier = number_literal) ;) (expression_statement "uStack_148 = 0;" (assignment_expression "uStack_148 = 0" identifier = number_literal) ;) (expression_statement "piStack_160 = piVar17;" (assignment_expression "piStack_160 = piVar17" identifier = identifier) ;) (expression_statement "piStack_15c = piStack_1ec;" (assignment_expression "piStack_15c = piStack_1ec" identifier = identifier) ;) (expression_statement "iStack_158 = iVar30;" (assignment_expression "iStack_158 = iVar30" identifier = identifier) ;) (expression_statement "uStack_154 = uVar14;" (assignment_expression "uStack_154 = uVar14" identifier = identifier) ;) (expression_statement "uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);" (assignment_expression "uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160)" identifier = (call_expression "(*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160)" (parenthesized_expression "(*(code *)(iVar15 + -0x2cf4))" ( (pointer_expression "*(code *)(iVar15 + -0x2cf4)" * (cast_expression "(code *)(iVar15 + -0x2cf4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + -0x2cf4)" ( (binary_expression "iVar15 + -0x2cf4" identifier + number_literal) )))) )) (argument_list "(&puStack_144,&piStack_160)" ( (pointer_expression "&puStack_144" & identifier) , (pointer_expression "&piStack_160" & identifier) )))) ;) (expression_statement "(**(code **)(puVar46 + 0x28520))(uStack_148);" (call_expression "(**(code **)(puVar46 + 0x28520))(uStack_148)" (parenthesized_expression "(**(code **)(puVar46 + 0x28520))" ( (pointer_expression "**(code **)(puVar46 + 0x28520)" * (pointer_expression "*(code **)(puVar46 + 0x28520)" * (cast_expression "(code **)(puVar46 + 0x28520)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar46 + 0x28520)" ( (binary_expression "puVar46 + 0x28520" identifier + number_literal) ))))) )) (argument_list "(uStack_148)" ( identifier ))) ;) (if_statement "if (uStack_1e4 != 0) break;" if (parenthesized_expression "(uStack_1e4 != 0)" ( (binary_expression "uStack_1e4 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (if_statement "if ((*piVar17 != 0) || (*piStack_1ec != 0)) {\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }" if (parenthesized_expression "((*piVar17 != 0) || (*piStack_1ec != 0))" ( (binary_expression "(*piVar17 != 0) || (*piStack_1ec != 0)" (parenthesized_expression "(*piVar17 != 0)" ( (binary_expression "*piVar17 != 0" (pointer_expression "*piVar17" * identifier) != number_literal) )) || (parenthesized_expression "(*piStack_1ec != 0)" ( (binary_expression "*piStack_1ec != 0" (pointer_expression "*piStack_1ec" * identifier) != number_literal) ))) )) (compound_statement "{\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }" { (expression_statement "uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);" (assignment_expression "uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0)" identifier = (call_expression "FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0)" identifier (argument_list "(puVar36,piVar17,piStack_1ec,uStack_1f0)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "(**(code **)(puVar46 + 0x28520))(piStack_1ec);" (call_expression "(**(code **)(puVar46 + 0x28520))(piStack_1ec)" (parenthesized_expression "(**(code **)(puVar46 + 0x28520))" ( (pointer_expression "**(code **)(puVar46 + 0x28520)" * (pointer_expression "*(code **)(puVar46 + 0x28520)" * (cast_expression "(code **)(puVar46 + 0x28520)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar46 + 0x28520)" ( (binary_expression "puVar46 + 0x28520" identifier + number_literal) ))))) )) (argument_list "(piStack_1ec)" ( identifier ))) ;) (if_statement "if (uStack_1e4 != 0) goto LAB_0004ed18;" if (parenthesized_expression "(uStack_1e4 != 0)" ( (binary_expression "uStack_1e4 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0004ed18;" goto statement_identifier ;)) (goto_statement "goto LAB_0004e9f8;" goto statement_identifier ;) })) (expression_statement "piVar33 = piStack_e0 + (uStack_1f0 - 1);" (assignment_expression "piVar33 = piStack_e0 + (uStack_1f0 - 1)" identifier = (binary_expression "piStack_e0 + (uStack_1f0 - 1)" identifier + (parenthesized_expression "(uStack_1f0 - 1)" ( (binary_expression "uStack_1f0 - 1" identifier - number_literal) )))) ;) (expression_statement "uStack_1f0 = uVar14;" (assignment_expression "uStack_1f0 = uVar14" identifier = identifier) ;) (while_statement "while( true ) {\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }" { (expression_statement "uVar14 = uStack_1f0 - 1;" (assignment_expression "uVar14 = uStack_1f0 - 1" identifier = (binary_expression "uStack_1f0 - 1" identifier - number_literal)) ;) (if_statement "if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }" if (parenthesized_expression "(uVar14 == 0xffffffff)" ( (binary_expression "uVar14 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }" { (expression_statement "(**(code **)(puVar46 + 0x28520))(piVar17);" (call_expression "(**(code **)(puVar46 + 0x28520))(piVar17)" (parenthesized_expression "(**(code **)(puVar46 + 0x28520))" ( (pointer_expression "**(code **)(puVar46 + 0x28520)" * (pointer_expression "*(code **)(puVar46 + 0x28520)" * (cast_expression "(code **)(puVar46 + 0x28520)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar46 + 0x28520)" ( (binary_expression "puVar46 + 0x28520" identifier + number_literal) ))))) )) (argument_list "(piVar17)" ( identifier ))) ;) (expression_statement "(**(code **)(puVar46 + 0x28520))(piStack_1ec);" (call_expression "(**(code **)(puVar46 + 0x28520))(piStack_1ec)" (parenthesized_expression "(**(code **)(puVar46 + 0x28520))" ( (pointer_expression "**(code **)(puVar46 + 0x28520)" * (pointer_expression "*(code **)(puVar46 + 0x28520)" * (cast_expression "(code **)(puVar46 + 0x28520)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar46 + 0x28520)" ( (binary_expression "puVar46 + 0x28520" identifier + number_literal) ))))) )) (argument_list "(piStack_1ec)" ( identifier ))) ;) (goto_statement "goto LAB_0004e2d4;" goto statement_identifier ;) })) (expression_statement "iVar30 = piVar33[-1];" (assignment_expression "iVar30 = piVar33[-1]" identifier = (subscript_expression "piVar33[-1]" identifier [ number_literal ])) ;) (if_statement "if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;" if (parenthesized_expression "((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0))" ( (binary_expression "(iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)" (parenthesized_expression "(iVar30 != 0)" ( (binary_expression "iVar30 != 0" identifier != number_literal) )) && (parenthesized_expression "((*(byte *)(iVar30 + 0x34) & 8) != 0)" ( (binary_expression "(*(byte *)(iVar30 + 0x34) & 8) != 0" (parenthesized_expression "(*(byte *)(iVar30 + 0x34) & 8)" ( (binary_expression "*(byte *)(iVar30 + 0x34) & 8" (pointer_expression "*(byte *)(iVar30 + 0x34)" * (cast_expression "(byte *)(iVar30 + 0x34)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar30 + 0x34)" ( (binary_expression "iVar30 + 0x34" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) (break_statement "break;" break ;)) (expression_statement "piVar33 = piVar33 + -1;" (assignment_expression "piVar33 = piVar33 + -1" identifier = (binary_expression "piVar33 + -1" identifier + number_literal)) ;) (expression_statement "uStack_1f0 = uVar14;" (assignment_expression "uStack_1f0 = uVar14" identifier = identifier) ;) })) (expression_statement "iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       );" (assignment_expression "iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       )" identifier = (call_expression "(*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       )" (parenthesized_expression "(*pcVar45)" ( (pointer_expression "*pcVar45" * identifier) )) (argument_list "(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       )" ( (pointer_expression "&puStack_144" & identifier) , (pointer_expression "*(undefined4 *)(iVar30 + 8)" * (cast_expression "(undefined4 *)(iVar30 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar30 + 8)" ( (binary_expression "iVar30 + 8" identifier + number_literal) )))) , (binary_expression "iVar30 + 0xc" identifier + number_literal) , identifier )))) ;) })) }))) (expression_statement "(**(code **)(puVar46 + 0x28520))(piVar17);" (call_expression "(**(code **)(puVar46 + 0x28520))(piVar17)" (parenthesized_expression "(**(code **)(puVar46 + 0x28520))" ( (pointer_expression "**(code **)(puVar46 + 0x28520)" * (pointer_expression "*(code **)(puVar46 + 0x28520)" * (cast_expression "(code **)(puVar46 + 0x28520)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar46 + 0x28520)" ( (binary_expression "puVar46 + 0x28520" identifier + number_literal) ))))) )) (argument_list "(piVar17)" ( identifier ))) ;) (expression_statement "(**(code **)(puVar46 + 0x28520))(piStack_1ec);" (call_expression "(**(code **)(puVar46 + 0x28520))(piStack_1ec)" (parenthesized_expression "(**(code **)(puVar46 + 0x28520))" ( (pointer_expression "**(code **)(puVar46 + 0x28520)" * (pointer_expression "*(code **)(puVar46 + 0x28520)" * (cast_expression "(code **)(puVar46 + 0x28520)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar46 + 0x28520)" ( (binary_expression "puVar46 + 0x28520" identifier + number_literal) ))))) )) (argument_list "(piStack_1ec)" ( identifier ))) ;) (expression_statement "piVar17 = piStack_e0;" (assignment_expression "piVar17 = piStack_e0" identifier = identifier) ;) (if_statement "if (uStack_1e4 == 1) goto LAB_0004e2d4;" if (parenthesized_expression "(uStack_1e4 == 1)" ( (binary_expression "uStack_1e4 == 1" identifier == number_literal) )) (goto_statement "goto LAB_0004e2d4;" goto statement_identifier ;)) (goto_statement "goto LAB_0004dbbc;" goto statement_identifier ;) })) (expression_statement "uStack_1e4 = 0xc;" (assignment_expression "uStack_1e4 = 0xc" identifier = number_literal) ;) (goto_statement "goto LAB_0004dbbc;" goto statement_identifier ;) }))) }))) (labeled_statement "LAB_0004e7e0:\n          piVar17 = piStack_e0;" statement_identifier : (expression_statement "piVar17 = piStack_e0;" (assignment_expression "piVar17 = piStack_e0" identifier = identifier) ;)) (expression_statement "uStack_1e4 = uVar11;" (assignment_expression "uStack_1e4 = uVar11" identifier = identifier) ;) (if_statement "if (local_78 == (uint *)0x0) goto LAB_0004dbbc;" if (parenthesized_expression "(local_78 == (uint *)0x0)" ( (binary_expression "local_78 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004dbbc;" goto statement_identifier ;)) (expression_statement "puVar23 = ppuVar24[7];" (assignment_expression "puVar23 = ppuVar24[7]" identifier = (subscript_expression "ppuVar24[7]" identifier [ number_literal ])) ;) (if_statement "if (bVar1) {\n            piVar17 = piStack_74 + 2;\n            do {\n              piVar17[1] = -1;\n              piVar33 = piVar17 + 2;\n              *piVar17 = -1;\n              piVar17 = piVar33;\n            } while (piStack_74 + (int)local_78 * 2 != piVar33);\n            *piStack_74 = 0;\n            piStack_74[1] = uStack_e8;\n            if (((uint)puVar23 & 0x8000000) == 0) {\n              if (*(char *)(puVar43 + 0x16) < '\0') {\n                bVar22 = 0 < (int)puVar43[0x13];\n              }\n              else {\n                bVar22 = false;\n              }\n              uStack_1e4 = FUN_0004bc00(ppuVar24,&puStack_144,local_78,piStack_74,bVar22);\n              piVar17 = piStack_e0;\n              if (uStack_1e4 != 0) goto LAB_0004dbbc;\n              puVar23 = (uint *)*piStack_74;\n            }\n            else {\nLAB_0004e838:\n              puVar23 = (uint *)0x0;\n            }\n            puVar36 = (uint *)0x0;\n            piVar17 = piStack_74;\n            while( true ) {\n              if (puVar23 != (uint *)0xffffffff) {\n                puVar32 = (uint *)piVar17[1];\n                puVar39 = puVar23;\n                puVar38 = puVar32;\n                if (cStack_f8 != '\0') {\n                  puVar39 = puStack_124;\n                  if (puStack_128 != puVar23) {\n                    puVar39 = *(uint **)(iStack_138 + (int)puVar23 * 4);\n                  }\n                  *piVar17 = (int)puVar39;\n                  puVar38 = puStack_124;\n                  if (puStack_128 != puVar32) {\n                    puVar38 = *(uint **)(iStack_138 + (int)puVar32 * 4);\n                  }\n                }\n                *piVar17 = (int)puStack_16c + (int)puVar39;\n                piVar17[1] = (int)puStack_16c + (int)puVar38;\n              }\n              puVar36 = (uint *)((int)puVar36 + 1);\n              piVar17 = piVar17 + 2;\n              if (puVar36 == local_78) break;\n              puVar23 = (uint *)*piVar17;\n            }\n            if (0 < iStack_180) {\n              piVar17 = piStack_74 + (int)local_78 * 2;\n              do {\n                *piVar17 = -1;\n                piVar33 = piVar17 + 2;\n                piVar17[1] = -1;\n                piVar17 = piVar33;\n              } while (piStack_74 + (iStack_180 + (int)local_78) * 2 != piVar33);\n            }\n            piVar33 = (int *)puVar43[0x21];\n            piVar17 = piStack_e0;\n            uStack_1e4 = uVar11;\n            if (piVar33 != (int *)0x0) {\n              iVar29 = 0;\n              piVar3 = piStack_74;\n              do {\n                pcVar45 = *(code **)(puVar46 + 0x28520);\n                if (iVar29 == (int)local_78 + -1) goto LAB_0004dbc0;\n                if (*piVar33 != iVar29) {\n                  piVar3[2] = piStack_74[(*piVar33 + 1) * 2];\n                  piVar3[3] = piStack_74[(*piVar33 + 1) * 2 + 1];\n                }\n                iVar29 = iVar29 + 1;\n                piVar33 = piVar33 + 1;\n                piVar3 = piVar3 + 2;\n              } while( true );\n            }\n            goto LAB_0004dbbc;\n          }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n            piVar17 = piStack_74 + 2;\n            do {\n              piVar17[1] = -1;\n              piVar33 = piVar17 + 2;\n              *piVar17 = -1;\n              piVar17 = piVar33;\n            } while (piStack_74 + (int)local_78 * 2 != piVar33);\n            *piStack_74 = 0;\n            piStack_74[1] = uStack_e8;\n            if (((uint)puVar23 & 0x8000000) == 0) {\n              if (*(char *)(puVar43 + 0x16) < '\0') {\n                bVar22 = 0 < (int)puVar43[0x13];\n              }\n              else {\n                bVar22 = false;\n              }\n              uStack_1e4 = FUN_0004bc00(ppuVar24,&puStack_144,local_78,piStack_74,bVar22);\n              piVar17 = piStack_e0;\n              if (uStack_1e4 != 0) goto LAB_0004dbbc;\n              puVar23 = (uint *)*piStack_74;\n            }\n            else {\nLAB_0004e838:\n              puVar23 = (uint *)0x0;\n            }\n            puVar36 = (uint *)0x0;\n            piVar17 = piStack_74;\n            while( true ) {\n              if (puVar23 != (uint *)0xffffffff) {\n                puVar32 = (uint *)piVar17[1];\n                puVar39 = puVar23;\n                puVar38 = puVar32;\n                if (cStack_f8 != '\0') {\n                  puVar39 = puStack_124;\n                  if (puStack_128 != puVar23) {\n                    puVar39 = *(uint **)(iStack_138 + (int)puVar23 * 4);\n                  }\n                  *piVar17 = (int)puVar39;\n                  puVar38 = puStack_124;\n                  if (puStack_128 != puVar32) {\n                    puVar38 = *(uint **)(iStack_138 + (int)puVar32 * 4);\n                  }\n                }\n                *piVar17 = (int)puStack_16c + (int)puVar39;\n                piVar17[1] = (int)puStack_16c + (int)puVar38;\n              }\n              puVar36 = (uint *)((int)puVar36 + 1);\n              piVar17 = piVar17 + 2;\n              if (puVar36 == local_78) break;\n              puVar23 = (uint *)*piVar17;\n            }\n            if (0 < iStack_180) {\n              piVar17 = piStack_74 + (int)local_78 * 2;\n              do {\n                *piVar17 = -1;\n                piVar33 = piVar17 + 2;\n                piVar17[1] = -1;\n                piVar17 = piVar33;\n              } while (piStack_74 + (iStack_180 + (int)local_78) * 2 != piVar33);\n            }\n            piVar33 = (int *)puVar43[0x21];\n            piVar17 = piStack_e0;\n            uStack_1e4 = uVar11;\n            if (piVar33 != (int *)0x0) {\n              iVar29 = 0;\n              piVar3 = piStack_74;\n              do {\n                pcVar45 = *(code **)(puVar46 + 0x28520);\n                if (iVar29 == (int)local_78 + -1) goto LAB_0004dbc0;\n                if (*piVar33 != iVar29) {\n                  piVar3[2] = piStack_74[(*piVar33 + 1) * 2];\n                  piVar3[3] = piStack_74[(*piVar33 + 1) * 2 + 1];\n                }\n                iVar29 = iVar29 + 1;\n                piVar33 = piVar33 + 1;\n                piVar3 = piVar3 + 2;\n              } while( true );\n            }\n            goto LAB_0004dbbc;\n          }" { (expression_statement "piVar17 = piStack_74 + 2;" (assignment_expression "piVar17 = piStack_74 + 2" identifier = (binary_expression "piStack_74 + 2" identifier + number_literal)) ;) (do_statement "do {\n              piVar17[1] = -1;\n              piVar33 = piVar17 + 2;\n              *piVar17 = -1;\n              piVar17 = piVar33;\n            } while (piStack_74 + (int)local_78 * 2 != piVar33);" do (compound_statement "{\n              piVar17[1] = -1;\n              piVar33 = piVar17 + 2;\n              *piVar17 = -1;\n              piVar17 = piVar33;\n            }" { (expression_statement "piVar17[1] = -1;" (assignment_expression "piVar17[1] = -1" (subscript_expression "piVar17[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar33 = piVar17 + 2;" (assignment_expression "piVar33 = piVar17 + 2" identifier = (binary_expression "piVar17 + 2" identifier + number_literal)) ;) (expression_statement "*piVar17 = -1;" (assignment_expression "*piVar17 = -1" (pointer_expression "*piVar17" * identifier) = number_literal) ;) (expression_statement "piVar17 = piVar33;" (assignment_expression "piVar17 = piVar33" identifier = identifier) ;) }) while (parenthesized_expression "(piStack_74 + (int)local_78 * 2 != piVar33)" ( (binary_expression "piStack_74 + (int)local_78 * 2 != piVar33" (binary_expression "piStack_74 + (int)local_78 * 2" identifier + (binary_expression "(int)local_78 * 2" (cast_expression "(int)local_78" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) != identifier) )) ;) (expression_statement "*piStack_74 = 0;" (assignment_expression "*piStack_74 = 0" (pointer_expression "*piStack_74" * identifier) = number_literal) ;) (expression_statement "piStack_74[1] = uStack_e8;" (assignment_expression "piStack_74[1] = uStack_e8" (subscript_expression "piStack_74[1]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (((uint)puVar23 & 0x8000000) == 0) {\n              if (*(char *)(puVar43 + 0x16) < '\0') {\n                bVar22 = 0 < (int)puVar43[0x13];\n              }\n              else {\n                bVar22 = false;\n              }\n              uStack_1e4 = FUN_0004bc00(ppuVar24,&puStack_144,local_78,piStack_74,bVar22);\n              piVar17 = piStack_e0;\n              if (uStack_1e4 != 0) goto LAB_0004dbbc;\n              puVar23 = (uint *)*piStack_74;\n            }\n            else {\nLAB_0004e838:\n              puVar23 = (uint *)0x0;\n            }" if (parenthesized_expression "(((uint)puVar23 & 0x8000000) == 0)" ( (binary_expression "((uint)puVar23 & 0x8000000) == 0" (parenthesized_expression "((uint)puVar23 & 0x8000000)" ( (binary_expression "(uint)puVar23 & 0x8000000" (cast_expression "(uint)puVar23" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n              if (*(char *)(puVar43 + 0x16) < '\0') {\n                bVar22 = 0 < (int)puVar43[0x13];\n              }\n              else {\n                bVar22 = false;\n              }\n              uStack_1e4 = FUN_0004bc00(ppuVar24,&puStack_144,local_78,piStack_74,bVar22);\n              piVar17 = piStack_e0;\n              if (uStack_1e4 != 0) goto LAB_0004dbbc;\n              puVar23 = (uint *)*piStack_74;\n            }" { (if_statement "if (*(char *)(puVar43 + 0x16) < '\0') {\n                bVar22 = 0 < (int)puVar43[0x13];\n              }\n              else {\n                bVar22 = false;\n              }" if (parenthesized_expression "(*(char *)(puVar43 + 0x16) < '\0')" ( (binary_expression "*(char *)(puVar43 + 0x16) < '\0'" (pointer_expression "*(char *)(puVar43 + 0x16)" * (cast_expression "(char *)(puVar43 + 0x16)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar43 + 0x16)" ( (binary_expression "puVar43 + 0x16" identifier + number_literal) )))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                bVar22 = 0 < (int)puVar43[0x13];\n              }" { (expression_statement "bVar22 = 0 < (int)puVar43[0x13];" (assignment_expression "bVar22 = 0 < (int)puVar43[0x13]" identifier = (binary_expression "0 < (int)puVar43[0x13]" number_literal < (cast_expression "(int)puVar43[0x13]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar43[0x13]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n                bVar22 = false;\n              }" else (compound_statement "{\n                bVar22 = false;\n              }" { (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" identifier = false) ;) }))) (expression_statement "uStack_1e4 = FUN_0004bc00(ppuVar24,&puStack_144,local_78,piStack_74,bVar22);" (assignment_expression "uStack_1e4 = FUN_0004bc00(ppuVar24,&puStack_144,local_78,piStack_74,bVar22)" identifier = (call_expression "FUN_0004bc00(ppuVar24,&puStack_144,local_78,piStack_74,bVar22)" identifier (argument_list "(ppuVar24,&puStack_144,local_78,piStack_74,bVar22)" ( identifier , (pointer_expression "&puStack_144" & identifier) , identifier , identifier , identifier )))) ;) (expression_statement "piVar17 = piStack_e0;" (assignment_expression "piVar17 = piStack_e0" identifier = identifier) ;) (if_statement "if (uStack_1e4 != 0) goto LAB_0004dbbc;" if (parenthesized_expression "(uStack_1e4 != 0)" ( (binary_expression "uStack_1e4 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0004dbbc;" goto statement_identifier ;)) (expression_statement "puVar23 = (uint *)*piStack_74;" (assignment_expression "puVar23 = (uint *)*piStack_74" identifier = (cast_expression "(uint *)*piStack_74" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piStack_74" * identifier))) ;) }) (else_clause "else {\nLAB_0004e838:\n              puVar23 = (uint *)0x0;\n            }" else (compound_statement "{\nLAB_0004e838:\n              puVar23 = (uint *)0x0;\n            }" { (labeled_statement "LAB_0004e838:\n              puVar23 = (uint *)0x0;" statement_identifier : (expression_statement "puVar23 = (uint *)0x0;" (assignment_expression "puVar23 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) }))) (expression_statement "puVar36 = (uint *)0x0;" (assignment_expression "puVar36 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar17 = piStack_74;" (assignment_expression "piVar17 = piStack_74" identifier = identifier) ;) (while_statement "while( true ) {\n              if (puVar23 != (uint *)0xffffffff) {\n                puVar32 = (uint *)piVar17[1];\n                puVar39 = puVar23;\n                puVar38 = puVar32;\n                if (cStack_f8 != '\0') {\n                  puVar39 = puStack_124;\n                  if (puStack_128 != puVar23) {\n                    puVar39 = *(uint **)(iStack_138 + (int)puVar23 * 4);\n                  }\n                  *piVar17 = (int)puVar39;\n                  puVar38 = puStack_124;\n                  if (puStack_128 != puVar32) {\n                    puVar38 = *(uint **)(iStack_138 + (int)puVar32 * 4);\n                  }\n                }\n                *piVar17 = (int)puStack_16c + (int)puVar39;\n                piVar17[1] = (int)puStack_16c + (int)puVar38;\n              }\n              puVar36 = (uint *)((int)puVar36 + 1);\n              piVar17 = piVar17 + 2;\n              if (puVar36 == local_78) break;\n              puVar23 = (uint *)*piVar17;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              if (puVar23 != (uint *)0xffffffff) {\n                puVar32 = (uint *)piVar17[1];\n                puVar39 = puVar23;\n                puVar38 = puVar32;\n                if (cStack_f8 != '\0') {\n                  puVar39 = puStack_124;\n                  if (puStack_128 != puVar23) {\n                    puVar39 = *(uint **)(iStack_138 + (int)puVar23 * 4);\n                  }\n                  *piVar17 = (int)puVar39;\n                  puVar38 = puStack_124;\n                  if (puStack_128 != puVar32) {\n                    puVar38 = *(uint **)(iStack_138 + (int)puVar32 * 4);\n                  }\n                }\n                *piVar17 = (int)puStack_16c + (int)puVar39;\n                piVar17[1] = (int)puStack_16c + (int)puVar38;\n              }\n              puVar36 = (uint *)((int)puVar36 + 1);\n              piVar17 = piVar17 + 2;\n              if (puVar36 == local_78) break;\n              puVar23 = (uint *)*piVar17;\n            }" { (if_statement "if (puVar23 != (uint *)0xffffffff) {\n                puVar32 = (uint *)piVar17[1];\n                puVar39 = puVar23;\n                puVar38 = puVar32;\n                if (cStack_f8 != '\0') {\n                  puVar39 = puStack_124;\n                  if (puStack_128 != puVar23) {\n                    puVar39 = *(uint **)(iStack_138 + (int)puVar23 * 4);\n                  }\n                  *piVar17 = (int)puVar39;\n                  puVar38 = puStack_124;\n                  if (puStack_128 != puVar32) {\n                    puVar38 = *(uint **)(iStack_138 + (int)puVar32 * 4);\n                  }\n                }\n                *piVar17 = (int)puStack_16c + (int)puVar39;\n                piVar17[1] = (int)puStack_16c + (int)puVar38;\n              }" if (parenthesized_expression "(puVar23 != (uint *)0xffffffff)" ( (binary_expression "puVar23 != (uint *)0xffffffff" identifier != (cast_expression "(uint *)0xffffffff" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                puVar32 = (uint *)piVar17[1];\n                puVar39 = puVar23;\n                puVar38 = puVar32;\n                if (cStack_f8 != '\0') {\n                  puVar39 = puStack_124;\n                  if (puStack_128 != puVar23) {\n                    puVar39 = *(uint **)(iStack_138 + (int)puVar23 * 4);\n                  }\n                  *piVar17 = (int)puVar39;\n                  puVar38 = puStack_124;\n                  if (puStack_128 != puVar32) {\n                    puVar38 = *(uint **)(iStack_138 + (int)puVar32 * 4);\n                  }\n                }\n                *piVar17 = (int)puStack_16c + (int)puVar39;\n                piVar17[1] = (int)puStack_16c + (int)puVar38;\n              }" { (expression_statement "puVar32 = (uint *)piVar17[1];" (assignment_expression "puVar32 = (uint *)piVar17[1]" identifier = (cast_expression "(uint *)piVar17[1]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar17[1]" identifier [ number_literal ]))) ;) (expression_statement "puVar39 = puVar23;" (assignment_expression "puVar39 = puVar23" identifier = identifier) ;) (expression_statement "puVar38 = puVar32;" (assignment_expression "puVar38 = puVar32" identifier = identifier) ;) (if_statement "if (cStack_f8 != '\0') {\n                  puVar39 = puStack_124;\n                  if (puStack_128 != puVar23) {\n                    puVar39 = *(uint **)(iStack_138 + (int)puVar23 * 4);\n                  }\n                  *piVar17 = (int)puVar39;\n                  puVar38 = puStack_124;\n                  if (puStack_128 != puVar32) {\n                    puVar38 = *(uint **)(iStack_138 + (int)puVar32 * 4);\n                  }\n                }" if (parenthesized_expression "(cStack_f8 != '\0')" ( (binary_expression "cStack_f8 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                  puVar39 = puStack_124;\n                  if (puStack_128 != puVar23) {\n                    puVar39 = *(uint **)(iStack_138 + (int)puVar23 * 4);\n                  }\n                  *piVar17 = (int)puVar39;\n                  puVar38 = puStack_124;\n                  if (puStack_128 != puVar32) {\n                    puVar38 = *(uint **)(iStack_138 + (int)puVar32 * 4);\n                  }\n                }" { (expression_statement "puVar39 = puStack_124;" (assignment_expression "puVar39 = puStack_124" identifier = identifier) ;) (if_statement "if (puStack_128 != puVar23) {\n                    puVar39 = *(uint **)(iStack_138 + (int)puVar23 * 4);\n                  }" if (parenthesized_expression "(puStack_128 != puVar23)" ( (binary_expression "puStack_128 != puVar23" identifier != identifier) )) (compound_statement "{\n                    puVar39 = *(uint **)(iStack_138 + (int)puVar23 * 4);\n                  }" { (expression_statement "puVar39 = *(uint **)(iStack_138 + (int)puVar23 * 4);" (assignment_expression "puVar39 = *(uint **)(iStack_138 + (int)puVar23 * 4)" identifier = (pointer_expression "*(uint **)(iStack_138 + (int)puVar23 * 4)" * (cast_expression "(uint **)(iStack_138 + (int)puVar23 * 4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iStack_138 + (int)puVar23 * 4)" ( (binary_expression "iStack_138 + (int)puVar23 * 4" identifier + (binary_expression "(int)puVar23 * 4" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))))) ;) })) (expression_statement "*piVar17 = (int)puVar39;" (assignment_expression "*piVar17 = (int)puVar39" (pointer_expression "*piVar17" * identifier) = (cast_expression "(int)puVar39" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "puVar38 = puStack_124;" (assignment_expression "puVar38 = puStack_124" identifier = identifier) ;) (if_statement "if (puStack_128 != puVar32) {\n                    puVar38 = *(uint **)(iStack_138 + (int)puVar32 * 4);\n                  }" if (parenthesized_expression "(puStack_128 != puVar32)" ( (binary_expression "puStack_128 != puVar32" identifier != identifier) )) (compound_statement "{\n                    puVar38 = *(uint **)(iStack_138 + (int)puVar32 * 4);\n                  }" { (expression_statement "puVar38 = *(uint **)(iStack_138 + (int)puVar32 * 4);" (assignment_expression "puVar38 = *(uint **)(iStack_138 + (int)puVar32 * 4)" identifier = (pointer_expression "*(uint **)(iStack_138 + (int)puVar32 * 4)" * (cast_expression "(uint **)(iStack_138 + (int)puVar32 * 4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iStack_138 + (int)puVar32 * 4)" ( (binary_expression "iStack_138 + (int)puVar32 * 4" identifier + (binary_expression "(int)puVar32 * 4" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))))) ;) })) })) (expression_statement "*piVar17 = (int)puStack_16c + (int)puVar39;" (assignment_expression "*piVar17 = (int)puStack_16c + (int)puVar39" (pointer_expression "*piVar17" * identifier) = (binary_expression "(int)puStack_16c + (int)puVar39" (cast_expression "(int)puStack_16c" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)puVar39" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "piVar17[1] = (int)puStack_16c + (int)puVar38;" (assignment_expression "piVar17[1] = (int)puStack_16c + (int)puVar38" (subscript_expression "piVar17[1]" identifier [ number_literal ]) = (binary_expression "(int)puStack_16c + (int)puVar38" (cast_expression "(int)puStack_16c" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)puVar38" ( (type_descriptor "int" primitive_type) ) identifier))) ;) })) (expression_statement "puVar36 = (uint *)((int)puVar36 + 1);" (assignment_expression "puVar36 = (uint *)((int)puVar36 + 1)" identifier = (cast_expression "(uint *)((int)puVar36 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar36 + 1)" ( (binary_expression "(int)puVar36 + 1" (cast_expression "(int)puVar36" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "piVar17 = piVar17 + 2;" (assignment_expression "piVar17 = piVar17 + 2" identifier = (binary_expression "piVar17 + 2" identifier + number_literal)) ;) (if_statement "if (puVar36 == local_78) break;" if (parenthesized_expression "(puVar36 == local_78)" ( (binary_expression "puVar36 == local_78" identifier == identifier) )) (break_statement "break;" break ;)) (expression_statement "puVar23 = (uint *)*piVar17;" (assignment_expression "puVar23 = (uint *)*piVar17" identifier = (cast_expression "(uint *)*piVar17" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar17" * identifier))) ;) })) (if_statement "if (0 < iStack_180) {\n              piVar17 = piStack_74 + (int)local_78 * 2;\n              do {\n                *piVar17 = -1;\n                piVar33 = piVar17 + 2;\n                piVar17[1] = -1;\n                piVar17 = piVar33;\n              } while (piStack_74 + (iStack_180 + (int)local_78) * 2 != piVar33);\n            }" if (parenthesized_expression "(0 < iStack_180)" ( (binary_expression "0 < iStack_180" number_literal < identifier) )) (compound_statement "{\n              piVar17 = piStack_74 + (int)local_78 * 2;\n              do {\n                *piVar17 = -1;\n                piVar33 = piVar17 + 2;\n                piVar17[1] = -1;\n                piVar17 = piVar33;\n              } while (piStack_74 + (iStack_180 + (int)local_78) * 2 != piVar33);\n            }" { (expression_statement "piVar17 = piStack_74 + (int)local_78 * 2;" (assignment_expression "piVar17 = piStack_74 + (int)local_78 * 2" identifier = (binary_expression "piStack_74 + (int)local_78 * 2" identifier + (binary_expression "(int)local_78 * 2" (cast_expression "(int)local_78" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (do_statement "do {\n                *piVar17 = -1;\n                piVar33 = piVar17 + 2;\n                piVar17[1] = -1;\n                piVar17 = piVar33;\n              } while (piStack_74 + (iStack_180 + (int)local_78) * 2 != piVar33);" do (compound_statement "{\n                *piVar17 = -1;\n                piVar33 = piVar17 + 2;\n                piVar17[1] = -1;\n                piVar17 = piVar33;\n              }" { (expression_statement "*piVar17 = -1;" (assignment_expression "*piVar17 = -1" (pointer_expression "*piVar17" * identifier) = number_literal) ;) (expression_statement "piVar33 = piVar17 + 2;" (assignment_expression "piVar33 = piVar17 + 2" identifier = (binary_expression "piVar17 + 2" identifier + number_literal)) ;) (expression_statement "piVar17[1] = -1;" (assignment_expression "piVar17[1] = -1" (subscript_expression "piVar17[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar17 = piVar33;" (assignment_expression "piVar17 = piVar33" identifier = identifier) ;) }) while (parenthesized_expression "(piStack_74 + (iStack_180 + (int)local_78) * 2 != piVar33)" ( (binary_expression "piStack_74 + (iStack_180 + (int)local_78) * 2 != piVar33" (binary_expression "piStack_74 + (iStack_180 + (int)local_78) * 2" identifier + (binary_expression "(iStack_180 + (int)local_78) * 2" (parenthesized_expression "(iStack_180 + (int)local_78)" ( (binary_expression "iStack_180 + (int)local_78" identifier + (cast_expression "(int)local_78" ( (type_descriptor "int" primitive_type) ) identifier)) )) * number_literal)) != identifier) )) ;) })) (expression_statement "piVar33 = (int *)puVar43[0x21];" (assignment_expression "piVar33 = (int *)puVar43[0x21]" identifier = (cast_expression "(int *)puVar43[0x21]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar43[0x21]" identifier [ number_literal ]))) ;) (expression_statement "piVar17 = piStack_e0;" (assignment_expression "piVar17 = piStack_e0" identifier = identifier) ;) (expression_statement "uStack_1e4 = uVar11;" (assignment_expression "uStack_1e4 = uVar11" identifier = identifier) ;) (if_statement "if (piVar33 != (int *)0x0) {\n              iVar29 = 0;\n              piVar3 = piStack_74;\n              do {\n                pcVar45 = *(code **)(puVar46 + 0x28520);\n                if (iVar29 == (int)local_78 + -1) goto LAB_0004dbc0;\n                if (*piVar33 != iVar29) {\n                  piVar3[2] = piStack_74[(*piVar33 + 1) * 2];\n                  piVar3[3] = piStack_74[(*piVar33 + 1) * 2 + 1];\n                }\n                iVar29 = iVar29 + 1;\n                piVar33 = piVar33 + 1;\n                piVar3 = piVar3 + 2;\n              } while( true );\n            }" if (parenthesized_expression "(piVar33 != (int *)0x0)" ( (binary_expression "piVar33 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              iVar29 = 0;\n              piVar3 = piStack_74;\n              do {\n                pcVar45 = *(code **)(puVar46 + 0x28520);\n                if (iVar29 == (int)local_78 + -1) goto LAB_0004dbc0;\n                if (*piVar33 != iVar29) {\n                  piVar3[2] = piStack_74[(*piVar33 + 1) * 2];\n                  piVar3[3] = piStack_74[(*piVar33 + 1) * 2 + 1];\n                }\n                iVar29 = iVar29 + 1;\n                piVar33 = piVar33 + 1;\n                piVar3 = piVar3 + 2;\n              } while( true );\n            }" { (expression_statement "iVar29 = 0;" (assignment_expression "iVar29 = 0" identifier = number_literal) ;) (expression_statement "piVar3 = piStack_74;" (assignment_expression "piVar3 = piStack_74" identifier = identifier) ;) (do_statement "do {\n                pcVar45 = *(code **)(puVar46 + 0x28520);\n                if (iVar29 == (int)local_78 + -1) goto LAB_0004dbc0;\n                if (*piVar33 != iVar29) {\n                  piVar3[2] = piStack_74[(*piVar33 + 1) * 2];\n                  piVar3[3] = piStack_74[(*piVar33 + 1) * 2 + 1];\n                }\n                iVar29 = iVar29 + 1;\n                piVar33 = piVar33 + 1;\n                piVar3 = piVar3 + 2;\n              } while( true );" do (compound_statement "{\n                pcVar45 = *(code **)(puVar46 + 0x28520);\n                if (iVar29 == (int)local_78 + -1) goto LAB_0004dbc0;\n                if (*piVar33 != iVar29) {\n                  piVar3[2] = piStack_74[(*piVar33 + 1) * 2];\n                  piVar3[3] = piStack_74[(*piVar33 + 1) * 2 + 1];\n                }\n                iVar29 = iVar29 + 1;\n                piVar33 = piVar33 + 1;\n                piVar3 = piVar3 + 2;\n              }" { (expression_statement "pcVar45 = *(code **)(puVar46 + 0x28520);" (assignment_expression "pcVar45 = *(code **)(puVar46 + 0x28520)" identifier = (pointer_expression "*(code **)(puVar46 + 0x28520)" * (cast_expression "(code **)(puVar46 + 0x28520)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar46 + 0x28520)" ( (binary_expression "puVar46 + 0x28520" identifier + number_literal) ))))) ;) (if_statement "if (iVar29 == (int)local_78 + -1) goto LAB_0004dbc0;" if (parenthesized_expression "(iVar29 == (int)local_78 + -1)" ( (binary_expression "iVar29 == (int)local_78 + -1" identifier == (binary_expression "(int)local_78 + -1" (cast_expression "(int)local_78" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) )) (goto_statement "goto LAB_0004dbc0;" goto statement_identifier ;)) (if_statement "if (*piVar33 != iVar29) {\n                  piVar3[2] = piStack_74[(*piVar33 + 1) * 2];\n                  piVar3[3] = piStack_74[(*piVar33 + 1) * 2 + 1];\n                }" if (parenthesized_expression "(*piVar33 != iVar29)" ( (binary_expression "*piVar33 != iVar29" (pointer_expression "*piVar33" * identifier) != identifier) )) (compound_statement "{\n                  piVar3[2] = piStack_74[(*piVar33 + 1) * 2];\n                  piVar3[3] = piStack_74[(*piVar33 + 1) * 2 + 1];\n                }" { (expression_statement "piVar3[2] = piStack_74[(*piVar33 + 1) * 2];" (assignment_expression "piVar3[2] = piStack_74[(*piVar33 + 1) * 2]" (subscript_expression "piVar3[2]" identifier [ number_literal ]) = (subscript_expression "piStack_74[(*piVar33 + 1) * 2]" identifier [ (binary_expression "(*piVar33 + 1) * 2" (parenthesized_expression "(*piVar33 + 1)" ( (binary_expression "*piVar33 + 1" (pointer_expression "*piVar33" * identifier) + number_literal) )) * number_literal) ])) ;) (expression_statement "piVar3[3] = piStack_74[(*piVar33 + 1) * 2 + 1];" (assignment_expression "piVar3[3] = piStack_74[(*piVar33 + 1) * 2 + 1]" (subscript_expression "piVar3[3]" identifier [ number_literal ]) = (subscript_expression "piStack_74[(*piVar33 + 1) * 2 + 1]" identifier [ (binary_expression "(*piVar33 + 1) * 2 + 1" (binary_expression "(*piVar33 + 1) * 2" (parenthesized_expression "(*piVar33 + 1)" ( (binary_expression "*piVar33 + 1" (pointer_expression "*piVar33" * identifier) + number_literal) )) * number_literal) + number_literal) ])) ;) })) (expression_statement "iVar29 = iVar29 + 1;" (assignment_expression "iVar29 = iVar29 + 1" identifier = (binary_expression "iVar29 + 1" identifier + number_literal)) ;) (expression_statement "piVar33 = piVar33 + 1;" (assignment_expression "piVar33 = piVar33 + 1" identifier = (binary_expression "piVar33 + 1" identifier + number_literal)) ;) (expression_statement "piVar3 = piVar3 + 2;" (assignment_expression "piVar3 = piVar3 + 2" identifier = (binary_expression "piVar3 + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (goto_statement "goto LAB_0004dbbc;" goto statement_identifier ;) })) (expression_statement "*piStack_74 = 0;" (assignment_expression "*piStack_74 = 0" (pointer_expression "*piStack_74" * identifier) = number_literal) ;) (expression_statement "piStack_74[1] = uStack_e8;" (assignment_expression "piStack_74[1] = uStack_e8" (subscript_expression "piStack_74[1]" identifier [ number_literal ]) = identifier) ;) (goto_statement "goto LAB_0004e838;" goto statement_identifier ;) })) (labeled_statement "LAB_0004e2d4:\n        FUN_00044db0(&puStack_144);" statement_identifier : (expression_statement "FUN_00044db0(&puStack_144);" (call_expression "FUN_00044db0(&puStack_144)" identifier (argument_list "(&puStack_144)" ( (pointer_expression "&puStack_144" & identifier) ))) ;)) (expression_statement "param_4 = puStack_16c;" (assignment_expression "param_4 = puStack_16c" identifier = identifier) ;) })) (expression_statement "param_4 = (uint *)((int)param_4 + iVar29);" (assignment_expression "param_4 = (uint *)((int)param_4 + iVar29)" identifier = (cast_expression "(uint *)((int)param_4 + iVar29)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_4 + iVar29)" ( (binary_expression "(int)param_4 + iVar29" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "puStack_16c = param_4;" (assignment_expression "puStack_16c = param_4" identifier = identifier) ;) (if_statement "if (((int)param_4 < (int)puVar23) ||\n         (iVar30 = iStack_12c, puVar36 = puStack_88, (int)puVar38 < (int)param_4)) break;" if (parenthesized_expression "(((int)param_4 < (int)puVar23) ||\n         (iVar30 = iStack_12c, puVar36 = puStack_88, (int)puVar38 < (int)param_4))" ( (binary_expression "((int)param_4 < (int)puVar23) ||\n         (iVar30 = iStack_12c, puVar36 = puStack_88, (int)puVar38 < (int)param_4)" (parenthesized_expression "((int)param_4 < (int)puVar23)" ( (binary_expression "(int)param_4 < (int)puVar23" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier)) )) || (parenthesized_expression "(iVar30 = iStack_12c, puVar36 = puStack_88, (int)puVar38 < (int)param_4)" ( (comma_expression "iVar30 = iStack_12c, puVar36 = puStack_88, (int)puVar38 < (int)param_4" (assignment_expression "iVar30 = iStack_12c" identifier = identifier) , (comma_expression "puVar36 = puStack_88, (int)puVar38 < (int)param_4" (assignment_expression "puVar36 = puStack_88" identifier = identifier) , (binary_expression "(int)puVar38 < (int)param_4" (cast_expression "(int)puVar38" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier)))) ))) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "( true )" ( true )) ;) }))) (labeled_statement "LAB_0004df68:\n  uStack_1e4 = 1;" statement_identifier : (expression_statement "uStack_1e4 = 1;" (assignment_expression "uStack_1e4 = 1" identifier = number_literal) ;)) (expression_statement "piVar17 = piStack_e0;" (assignment_expression "piVar17 = piStack_e0" identifier = identifier) ;) (goto_statement "goto LAB_0004dbbc;" goto statement_identifier ;) (labeled_statement "code_r0x0004ea7c:\n  uStack_1e4 = uStack_168;" statement_identifier : (expression_statement "uStack_1e4 = uStack_168;" (assignment_expression "uStack_1e4 = uStack_168" identifier = identifier) ;)) (expression_statement "piVar17 = piStack_e0;" (assignment_expression "piVar17 = piStack_e0" identifier = identifier) ;) (if_statement "if (uStack_168 == 0xc) goto LAB_0004dbbc;" if (parenthesized_expression "(uStack_168 == 0xc)" ( (binary_expression "uStack_168 == 0xc" identifier == number_literal) )) (goto_statement "goto LAB_0004dbbc;" goto statement_identifier ;)) (expression_statement "uVar20 = 0x435;" (assignment_expression "uVar20 = 0x435" identifier = number_literal) ;) (labeled_statement "LAB_0004ea9c:\n  (**(code **)(puVar46 + 0x282f4))\n            (*(int *)(puVar46 + 0x27edc) + 0x2b30,*(int *)(puVar46 + 0x27edc) + 0x2ac0,uVar20,\n             *(int *)(puVar46 + 0x27edc) + 0x3030);" statement_identifier : (expression_statement "(**(code **)(puVar46 + 0x282f4))\n            (*(int *)(puVar46 + 0x27edc) + 0x2b30,*(int *)(puVar46 + 0x27edc) + 0x2ac0,uVar20,\n             *(int *)(puVar46 + 0x27edc) + 0x3030);" (call_expression "(**(code **)(puVar46 + 0x282f4))\n            (*(int *)(puVar46 + 0x27edc) + 0x2b30,*(int *)(puVar46 + 0x27edc) + 0x2ac0,uVar20,\n             *(int *)(puVar46 + 0x27edc) + 0x3030)" (parenthesized_expression "(**(code **)(puVar46 + 0x282f4))" ( (pointer_expression "**(code **)(puVar46 + 0x282f4)" * (pointer_expression "*(code **)(puVar46 + 0x282f4)" * (cast_expression "(code **)(puVar46 + 0x282f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar46 + 0x282f4)" ( (binary_expression "puVar46 + 0x282f4" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar46 + 0x27edc) + 0x2b30,*(int *)(puVar46 + 0x27edc) + 0x2ac0,uVar20,\n             *(int *)(puVar46 + 0x27edc) + 0x3030)" ( (binary_expression "*(int *)(puVar46 + 0x27edc) + 0x2b30" (pointer_expression "*(int *)(puVar46 + 0x27edc)" * (cast_expression "(int *)(puVar46 + 0x27edc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar46 + 0x27edc)" ( (binary_expression "puVar46 + 0x27edc" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar46 + 0x27edc) + 0x2ac0" (pointer_expression "*(int *)(puVar46 + 0x27edc)" * (cast_expression "(int *)(puVar46 + 0x27edc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar46 + 0x27edc)" ( (binary_expression "puVar46 + 0x27edc" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(puVar46 + 0x27edc) + 0x3030" (pointer_expression "*(int *)(puVar46 + 0x27edc)" * (cast_expression "(int *)(puVar46 + 0x27edc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar46 + 0x27edc)" ( (binary_expression "puVar46 + 0x27edc" identifier + number_literal) )))) + number_literal) ))) ;)) (expression_statement "uVar6 = extraout_v1;" (assignment_expression "uVar6 = extraout_v1" identifier = identifier) ;) (expression_statement "ppuVar24 = &puStack_144;" (assignment_expression "ppuVar24 = &puStack_144" identifier = (pointer_expression "&puStack_144" & identifier)) ;) (labeled_statement "LAB_0004eabc:\n  uVar31 = 8;" statement_identifier : (expression_statement "uVar31 = 8;" (assignment_expression "uVar31 = 8" identifier = number_literal) ;)) (goto_statement "goto LAB_0004dab0;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (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 (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * 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 (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (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 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 (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 (pointer_declarator * 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 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 IDENT ;) (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 (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( 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 = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < IDENT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) - LIT) ))) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + 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 *)) ) (subscript_expression IDENT [ LIT ]))) , (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression IDENT * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (labeled_statement 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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))))) ;) (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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) ))))) ;) (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) )))) , (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) })) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , (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 (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + 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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) ))))) ;) (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) )))) , (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;)) (goto_statement goto statement_identifier ;) })))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) })) (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 *)) ) IDENT)) )) (argument_list ( IDENT ))) ;)) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) IDENT))) )) (compound_statement { (return_statement return IDENT ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * 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) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (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) , LIT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) < (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })))) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))) ))) )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) ))) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) ))) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) ))) )) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) == LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) == LIT) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) == LIT) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )) == LIT) ))) )) ))) )) (compound_statement { (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 *)) ) LIT)) ;) }) (else_clause else (compound_statement { (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 = (binary_expression (subscript_expression IDENT [ LIT ]) != LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) }))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) << LIT) ))) >> LIT) )))) ;) (expression_statement (assignment_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 = (binary_expression IDENT >> LIT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) << LIT) )) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) << LIT) )) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT ))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;)) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( 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 ))) ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * IDENT)) )) (break_statement break ;))) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_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 = IDENT) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) << LIT) ))) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (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 ( (binary_expression IDENT * LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression IDENT * LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) < IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( IDENT )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) != LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_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 ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (goto_statement goto statement_identifier ;)) (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 ( (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (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 = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = LIT) , (binary_expression LIT < (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) << LIT))) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = LIT) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) | IDENT) | IDENT)) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) && (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (binary_expression (parenthesized_expression ( (binary_expression IDENT - LIT) )) * LIT)) ))))) + LIT) )))) )) (argument_list ( )))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( (pointer_expression & IDENT) , IDENT , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - IDENT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))))) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) || (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , 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) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) )) || (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (binary_expression IDENT - LIT) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (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 IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (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 ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT , (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 IDENT = (subscript_expression IDENT [ LIT ])) ;) }))))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) , (comma_expression (assignment_expression (subscript_expression IDENT [ IDENT ]) = IDENT) , (binary_expression IDENT == LIT))) ))) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) << LIT) < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (binary_expression IDENT + LIT) , IDENT )))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) })))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) || (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) || (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( (pointer_expression & IDENT) , (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_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 = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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) )))) ;) (do_statement do (compound_statement { (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + 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) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (pointer_expression & IDENT) , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT << LIT) )) >> LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;))) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) ))) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) ))) )) ))) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT , (pointer_expression & IDENT) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( (pointer_expression & IDENT) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) )))) * LIT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (pointer_expression & IDENT) , (binary_expression IDENT + LIT) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT , (pointer_expression & IDENT) , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (pointer_expression & IDENT) , (binary_expression IDENT + LIT) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT , (pointer_expression & IDENT) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT ))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ IDENT ]) == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (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 = IDENT) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;)) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) ))))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression IDENT * LIT)) ))))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;))) (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 IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (binary_expression IDENT - LIT) , IDENT )))) ;) (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 + (binary_expression IDENT * LIT)) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT)) ))))) ;) }))) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , IDENT )))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (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 *)) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) , IDENT )))) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = 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 IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression IDENT && (parenthesized_expression ( (unary_expression ! IDENT) ))) )) ))) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , LIT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (break_statement break ;) })) }) while (parenthesized_expression ( (binary_expression IDENT == LIT) )) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( IDENT )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (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 (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (binary_expression IDENT + LIT) , IDENT )))) , (binary_expression IDENT != LIT)) ))) )) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)) + IDENT) )))) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , LIT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (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 = BOOL) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = BOOL) ;) }))) (goto_statement goto statement_identifier ;) })) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ IDENT ]) + LIT) )))) , (binary_expression (subscript_expression IDENT [ IDENT ]) + LIT) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < (char_literal ' escape_sequence ')) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) ))) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != 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 (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ IDENT ]) + LIT) )))) , (binary_expression (subscript_expression IDENT [ IDENT ]) + LIT) , IDENT )))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression 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 = (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 IDENT * LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_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 ;) })) (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 ))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;)) }) (else_clause else (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 ( (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 (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) ;) (expression_statement (assignment_expression IDENT = 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) ))))) ;) (while_statement while (parenthesized_expression ( BOOL )) (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 , LIT , (binary_expression IDENT * LIT) ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) || (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , 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 ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT - LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (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 ))) ;) (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 (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) ))) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (pointer_expression & IDENT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (binary_expression IDENT + LIT) , 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 (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) }))) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) != IDENT) )) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;)) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (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 *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (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 + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) ))))) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (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 + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) ))))) ;) })) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) * LIT)) != IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (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 == (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != IDENT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )) * LIT) ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )) * LIT) + LIT) ])) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( BOOL )) ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ))) )) (break_statement break ;)) }) while (parenthesized_expression ( BOOL )) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression 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 ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (goto_statement goto statement_identifier ;) })))
(function_definition "uint FUN_0004d30c(uint *param_1,uint *param_2,uint *param_3,uint *param_4)\n\n{\n  bool bVar1;\n  bool bVar2;\n  int *piVar3;\n  bool bVar4;\n  bool bVar5;\n  uint uVar6;\n  code *pcVar7;\n  code *pcVar8;\n  code *pcVar9;\n  int *piVar10;\n  uint uVar11;\n  uint **ppuVar12;\n  int iVar13;\n  uint uVar14;\n  int iVar15;\n  int iVar16;\n  int *piVar17;\n  char cVar21;\n  int iVar18;\n  uint uVar19;\n  undefined4 uVar20;\n  bool bVar22;\n  uint *puVar23;\n  uint extraout_v1;\n  uint **ppuVar24;\n  int iVar25;\n  int iVar26;\n  uint uVar27;\n  int iVar28;\n  int iVar29;\n  int iVar30;\n  uint uVar31;\n  uint *puVar32;\n  int *piVar33;\n  uint uVar34;\n  undefined4 *puVar35;\n  uint *puVar36;\n  uint uVar37;\n  uint *puVar38;\n  uint *puVar39;\n  uint uVar40;\n  int *unaff_s4;\n  uint uVar41;\n  int unaff_s5;\n  uint uVar42;\n  int unaff_s6;\n  uint *puVar43;\n  int iVar44;\n  uint *unaff_s7;\n  code *pcVar45;\n  undefined *puVar46;\n  int unaff_s8;\n  uint uStack_1f0;\n  int *piStack_1ec;\n  uint uStack_1e4;\n  uint *puStack_1e0;\n  uint **ppuStack_1dc;\n  uint uStack_1d0;\n  int iStack_180;\n  uint *puStack_16c;\n  uint uStack_168;\n  uint uStack_164;\n  int *piStack_160;\n  int *piStack_15c;\n  int iStack_158;\n  uint uStack_154;\n  undefined4 uStack_150;\n  undefined4 uStack_14c;\n  undefined4 uStack_148;\n  uint *puStack_144;\n  uint *puStack_140;\n  int *piStack_13c;\n  int iStack_138;\n  int iStack_12c;\n  uint *puStack_128;\n  uint *puStack_124;\n  uint uStack_120;\n  uint uStack_11c;\n  uint *puStack_118;\n  uint *puStack_114;\n  uint *puStack_110;\n  uint *puStack_10c;\n  undefined4 uStack_108;\n  uint *puStack_104;\n  uint *puStack_100;\n  byte bStack_fc;\n  byte bStack_fb;\n  byte bStack_fa;\n  byte bStack_f9;\n  char cStack_f8;\n  byte bStack_f7;\n  byte bStack_f6;\n  uint uStack_f4;\n  uint *puStack_f0;\n  undefined1 *puStack_ec;\n  uint uStack_e8;\n  int iStack_e4;\n  int *piStack_e0;\n  int iStack_dc;\n  undefined4 uStack_d8;\n  int iStack_d4;\n  int iStack_d0;\n  int iStack_cc;\n  int iStack_c4;\n  int iStack_c0;\n  int iStack_bc;\n  uint *puStack_b8;\n  uint *puStack_b4;\n  uint *puStack_b0;\n  uint *puStack_ac;\n  int *piStack_a8;\n  int iStack_a4;\n  int iStack_a0;\n  uint *puStack_9c;\n  int iStack_98;\n  code *pcStack_94;\n  uint *puStack_88;\n  uint *local_80;\n  uint *local_7c;\n  uint *local_78;\n  int *piStack_74;\n  int local_64;\n  uint local_38;\n  undefined4 local_34;\n  undefined4 *local_30;\n  uint **local_2c;\n  \n  puVar46 = PTR___stack_chk_guard_00075be8;\n  local_38 = 1;\n  local_34 = 1;\n  local_2c = *(uint ***)PTR___stack_chk_guard_00075be8;\n  puVar36 = (uint *)param_2[3];\n  puVar39 = (uint *)param_2[2];\n  puVar23 = param_2;\n  local_30 = (undefined4 *)(*(code *)PTR_malloc_00075b2c)(4);\n  if (local_30 == (undefined4 *)0x0) {\n    uVar6 = 0xc;\n  }\n  else {\n    *local_30 = puVar39;\n    pcVar45 = (code *)(PTR_DAT_00075978 + -0x1248);\n    puVar23 = param_2;\n    param_3 = puVar36;\n    param_4 = &local_38;\n    uVar6 = FUN_0004edb8(param_1);\n    if (uVar6 == 0) {\n      local_64 = 0;\n      if (0 < (int)puVar36) {\n        pcVar7 = (code *)(PTR_LAB_00075920 + 0x5610);\n        pcVar8 = (code *)(PTR_LAB_00075920 + 0x33f8);\n        pcVar9 = (code *)(PTR_LAB_00075920 + 0x5230);\n        do {\n          unaff_s7 = (uint *)((int)puVar36 * 4);\n          if (*(int *)(*param_2 + (int)unaff_s7) == 0) {\n            local_64 = local_64 + 1;\n            if ((int)param_1[0x1e] < local_64) goto LAB_0004d6a0;\n          }\n          else {\n            local_64 = 0;\n            if ((int)param_1[0x1e] < 0) {\nLAB_0004d6a0:\n              puVar23 = (uint *)0x0;\n              param_3 = unaff_s7;\n              (*(code *)PTR_memset_00075ad4)();\n              (*(code *)PTR_free_00075bfc)(local_30);\n              uVar6 = 0;\n              goto LAB_0004d644;\n            }\n          }\n          local_34 = 0;\n          unaff_s6 = *(int *)((int)unaff_s7 + (param_1[0x19] - 4));\n          puVar36 = (uint *)((int)puVar36 + -1);\n          if ((unaff_s6 != 0) && (unaff_s4 = (int *)param_1[0x15], 0 < *(int *)(unaff_s6 + 0x14))) {\n            unaff_s5 = 0;\n            do {\n              puVar39 = *(uint **)(*(int *)(unaff_s6 + 0x18) + unaff_s5 * 4);\n              unaff_s8 = (int)puVar39 * 8;\n              iVar29 = *unaff_s4 + unaff_s8;\n              if ((*(uint *)(iVar29 + 4) & 0x800) == 0) {\nLAB_0004d464:\n                iVar29 = FUN_00047bf8(param_1,iVar29,puVar36);\n                if (iVar29 != 0) {\n                  iVar29 = *(int *)(*param_2 + (int)unaff_s7);\n                  if (iVar29 != 0) {\n                    param_3 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc);\n                    iVar29 = 1;\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                }\n              }\n              else {\n                puVar35 = (undefined4 *)param_1[0x15];\n                uVar6 = param_2[3];\n                param_3 = puVar39;\n                param_4 = param_1;\n                local_80 = puVar36;\n                iVar29 = FUN_0004b150(*puVar35,puVar35 + 0x20);\n                if (iVar29 < 1) {\n                  if (iVar29 == 0) {\n                    iVar29 = *unaff_s4;\n                    goto LAB_0004d460;\n                  }\n                }\n                else if ((int)puVar36 + iVar29 <= (int)uVar6) {\n                  iVar30 = *(int *)(*param_2 + ((int)puVar36 + iVar29) * 4);\n                  if (iVar30 != 0) {\n                    param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                  iVar29 = *unaff_s4;\nLAB_0004d460:\n                  iVar29 = iVar29 + unaff_s8;\n                  goto LAB_0004d464;\n                }\nLAB_0004d4b4:\n                if (param_2[5] != 0) {\n                  local_80 = (uint *)((int)puVar36 + iVar29);\n                  param_3 = param_2 + 6;\n                  param_4 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                  local_7c = puVar39;\n                  local_78 = puVar36;\n                  iVar29 = (*pcVar7)(param_1,param_2 + 5);\n                  if (iVar29 != 0) goto LAB_0004d510;\n                }\n                puVar23 = puVar39;\n                iVar29 = (*pcVar8)(&local_38);\n                if (iVar29 == 0) {\n                  uVar6 = 0xc;\n                  goto LAB_0004d62c;\n                }\n              }\nLAB_0004d510:\n              unaff_s5 = unaff_s5 + 1;\n              param_4 = &local_38;\n            } while (unaff_s5 < *(int *)(unaff_s6 + 0x14));\n          }\n          puVar23 = param_2;\n          param_3 = puVar36;\n          param_4 = &local_38;\n          uVar6 = (*pcVar45)(param_1);\n          if (uVar6 != 0) goto LAB_0004d62c;\n        } while (puVar36 != (uint *)0x0);\n      }\n      uVar6 = 0;\n    }\nLAB_0004d62c:\n    (*(code *)PTR_free_00075bfc)(local_30);\n  }\nLAB_0004d644:\n  if (local_2c == *(uint ***)puVar46) {\n    return uVar6;\n  }\n  pcVar45 = FUN_0004d6dc;\n  ppuVar24 = local_2c;\n  puVar46 = PTR___stack_chk_fail_00075ba8;\n  (*(code *)PTR___stack_chk_fail_00075ba8)();\n  puVar32 = local_7c;\n  puVar38 = local_80;\n  piVar10 = *(int **)(puVar46 + 0x2850c);\n  iStack_bc = *piVar10;\n  puVar43 = *ppuVar24;\n  puStack_b8 = puVar36;\n  puStack_b4 = param_2;\n  puStack_b0 = param_1;\n  puStack_ac = puVar39;\n  piStack_a8 = unaff_s4;\n  iStack_a4 = unaff_s5;\n  iStack_a0 = unaff_s6;\n  puStack_9c = unaff_s7;\n  iStack_98 = unaff_s8;\n  pcStack_94 = pcVar45;\n  puStack_88 = param_3;\n  (**(code **)(puVar46 + 0x283f8))(&puStack_144,0,0x88);\n  puStack_1e0 = ppuVar24[4];\n  if (puStack_1e0 != (uint *)0x0) {\n    if (((*(byte *)(ppuVar24 + 7) & 0x10) == 0) || (param_4 == puVar38)) {\n      puStack_1e0 = (uint *)0x0;\n    }\n    else if ((char)*(byte *)(ppuVar24 + 7) < '\0') {\n      puStack_1e0 = (uint *)0x0;\n    }\n  }\n  puVar36 = ppuVar24[6];\n  if (puVar36 < local_78) {\n    iStack_180 = ((int)local_78 + -1) - (int)puVar36;\n    local_78 = (uint *)((int)local_78 + ((int)puVar36 - ((int)local_78 + -1)));\n    puVar36 = ppuVar24[2];\n  }\n  else {\n    puVar36 = ppuVar24[2];\n    iStack_180 = 0;\n  }\n  puStack_f0 = puVar43;\n  if ((((puVar36 == (uint *)0x0) || (puVar43[9] == 0)) || (puVar43[10] == 0)) ||\n     ((puVar43[0xb] == 0 || (puVar43[0xc] == 0)))) {\nLAB_0004db54:\n    uStack_1e4 = 1;\n    goto LAB_0004db58;\n  }\n  if (((*(int *)(puVar43[9] + 8) == 0) && (*(int *)(puVar43[10] + 8) == 0)) &&\n     ((*(int *)(puVar43[0xb] + 8) == 0 || (((uint)ppuVar24[7] & 0x1000000) == 0)))) {\n    if (param_4 == (uint *)0x0) {\n      puVar38 = (uint *)0x0;\n    }\n    else {\n      if (puVar38 != (uint *)0x0) goto LAB_0004db54;\n      param_4 = (uint *)0x0;\n    }\n  }\n  if (local_78 == (uint *)0x0) {\n    bVar22 = puVar43[0x13] != 0;\n  }\n  else {\n    bVar22 = true;\n  }\n  uStack_f4 = puVar43[0x17];\n  puVar36 = ppuVar24[5];\n  uVar6 = puVar43[2] + 1;\n  if ((int)(puVar43[2] + 1) < (int)uStack_f4) {\n    uVar6 = uStack_f4;\n  }\n  bStack_fc = (byte)((uint)((int)ppuVar24[3] << 9) >> 0x18);\n  bStack_f9 = 1;\n  if (puVar36 == (uint *)0x0) {\n    bStack_f9 = bStack_fc >> 7;\n  }\n  uVar34 = (int)puStack_88 + 1U;\n  if ((int)uVar6 <= (int)((int)puStack_88 + 1U)) {\n    uVar34 = uVar6;\n  }\n  bStack_fc = bStack_fc >> 7;\n  bStack_fb = (byte)((puVar43[0x16] << 2) >> 0x1f);\n  bStack_fa = (byte)((puVar43[0x16] << 3) >> 0x1f);\n  puStack_114 = puStack_88;\n  puStack_118 = puStack_88;\n  puStack_10c = puStack_88;\n  puStack_110 = puStack_88;\n  puStack_144 = puVar23;\n  puStack_104 = puVar36;\n  uStack_1e4 = FUN_00043278(&puStack_144,uVar34);\n  piVar17 = piStack_e0;\n  if (uStack_1e4 != 0) {\nLAB_0004dbbc:\n    while( true ) {\n      pcVar45 = *(code **)(puVar46 + 0x28520);\nLAB_0004dbc0:\n      (*pcVar45)(piVar17);\n      if (puVar43[0x13] != 0) {\nLAB_0004dc14:\n        FUN_00044db0(&puStack_144);\n        (**(code **)(puVar46 + 0x28520))(iStack_c0);\n        (**(code **)(puVar46 + 0x28520))(iStack_d0);\n      }\nLAB_0004dbd4:\n      FUN_00044d40(&puStack_144);\nLAB_0004db58:\n      if (iStack_bc == *piVar10) break;\n      uStack_1e4 = (**(code **)(puVar46 + 0x284cc))();\n      piVar17 = piStack_e0;\n    }\n    return uStack_1e4;\n  }\n  puStack_100 = puVar43 + 0x18;\n  bStack_f6 = (byte)((puVar43[0x16] << 4) >> 0x1f);\n  if ((bStack_f9 != 0) || (puStack_140 = puVar23, puStack_128 = puStack_88, 1 < (int)puVar43[0x17]))\n  {\n    puStack_128 = (uint *)0x0;\n  }\n  puStack_10c = puVar32;\n  puStack_110 = puVar32;\n  puStack_124 = puStack_128;\n  bStack_f7 = (byte)((uint)((int)ppuVar24[7] << 7) >> 0x1f);\n  uVar6 = puVar43[0x13];\n  iVar29 = uVar6 * 2;\n  puStack_ec = &_gp_1;\n  uStack_e8 = 0xffffffff;\n  if (0 < iVar29) {\n    if (0xccccccc < iVar29) goto LAB_0004dbf8;\n    iVar30 = (**(code **)(puVar46 + 0x28450))(uVar6 * 0x28);\n    iStack_d0 = iVar30;\n    iStack_c0 = (**(code **)(puVar46 + 0x28450))(uVar6 * 8);\n    if ((iVar30 == 0) || (iStack_c0 == 0)) goto LAB_0004dbf8;\n  }\n  iStack_d4 = iVar29;\n  iStack_c4 = iVar29;\n  bVar1 = (uint *)0x1 < local_78;\n  iStack_cc = 1;\n  if ((bVar1) || ((puVar43[0x16] & 0x40000000) != 0)) {\n    if (0x3ffffffe < uStack_120) {\nLAB_0004dbf8:\n      uStack_1e4 = 0xc;\n      (**(code **)(puVar46 + 0x28520))(piStack_e0);\n      if (puVar43[0x13] == 0) goto LAB_0004dbd4;\n      goto LAB_0004dc14;\n    }\n    piStack_e0 = (int *)(**(code **)(puVar46 + 0x28450))((uStack_120 + 1) * 4);\n    piVar17 = piStack_e0;\n    if (piStack_e0 == (int *)0x0) {\nLAB_0004dbb4:\n      uStack_1e4 = 0xc;\n      goto LAB_0004dbbc;\n    }\n  }\n  else {\n    piStack_e0 = (int *)0x0;\n  }\n  uVar34 = puVar43[0x17];\n  iVar29 = -1;\n  puStack_16c = param_4;\n  uStack_108 = 6;\n  uVar6 = (uint)((int)puVar38 < (int)param_4);\n  puVar23 = puVar38;\n  if (uVar6 == 0) {\n    iVar29 = 1;\n    puVar23 = param_4;\n  }\n  if ((int)puVar38 <= (int)param_4) {\n    puVar38 = param_4;\n  }\n  if (puStack_1e0 == (uint *)0x0) goto LAB_0004eabc;\n  uVar11 = 4;\n  if (((uVar34 != 1) && (uVar11 = 0, -1 < (int)ppuVar24[3] << 9)) &&\n     (uVar11 = 4, puVar36 != (uint *)0x0)) {\n    uVar11 = 0;\n  }\n  uVar31 = 2;\n  if (uVar6 != 0) {\n    uVar31 = 0;\n  }\n  uVar31 = puVar36 != (uint *)0x0 | uVar11 | uVar31;\nLAB_0004dab0:\n  if (((int)puVar23 <= (int)param_4) && ((int)param_4 <= (int)puVar38)) {\n    ppuVar12 = &puStack_16c;\n    if (uVar6 != 0) {\n      ppuVar12 = (uint **)0x0;\n    }\n    iVar25 = *(int *)(puVar46 + 0x28244);\n    iVar13 = *(int *)(puVar46 + 0x27edc);\n    iVar26 = *(int *)(puVar46 + 0x2829c);\n    iVar30 = iStack_12c;\n    puVar36 = puStack_88;\n    do {\n      puStack_88 = puVar36;\n      if (uVar31 - 4 < 5) {\n                    \n                    \n        uVar6 = (*(code *)(puVar46 + *(int *)(iVar13 + 0x2be4 + (uVar31 - 4) * 4) + 0x2fea4))();\n        return uVar6;\n      }\n      iStack_12c = iVar30;\n      while( true ) {\n        puVar39 = (uint *)((int)param_4 - iVar30);\n        if (puStack_124 <= puVar39) {\n          uStack_1e4 = (*(code *)(iVar25 + 0x7eac))(&puStack_144,param_4,&_gp_1);\n          piVar17 = piStack_e0;\n          if (uStack_1e4 != 0) goto LAB_0004dbbc;\n          puVar39 = (uint *)((int)param_4 - iStack_12c);\n          iVar30 = iStack_12c;\n        }\n        if ((int)param_4 < (int)puVar36) {\n          cVar21 = *(char *)((int)puStack_1e0 + (uint)*(byte *)((int)puStack_140 + (int)puVar39));\n        }\n        else {\n          cVar21 = *(char *)puStack_1e0;\n        }\n        if (cVar21 != '\0') break;\n        param_4 = (uint *)((int)param_4 + iVar29);\n        puStack_16c = param_4;\n        if (((int)param_4 < (int)puVar23) || ((int)puVar38 < (int)param_4)) goto LAB_0004df68;\n      }\n      uVar11 = FUN_00047eac(&puStack_144,param_4,&_gp_1);\n      puVar36 = puStack_f0;\n      uVar6 = uStack_11c;\n      piVar17 = piStack_e0;\n      uStack_1e4 = uVar11;\n      if (uVar11 != 0) goto LAB_0004dbbc;\n      if (((uVar34 == 1) || (puStack_128 == (uint *)0x0)) || (*piStack_13c != -1)) {\n        iStack_cc = 0;\n        uStack_d8 = 0;\n        uVar41 = puStack_f0[9];\n        uStack_1d0 = uStack_11c;\n        iStack_dc = 0;\n        uStack_168 = 0;\n        if ((*(byte *)(uVar41 + 0x34) & 1) != 0) {\n          uVar14 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n          if ((uVar14 & 1) == 0) {\n            if (uVar14 == 0) goto LAB_0004dd24;\n            if ((uVar14 & 6) == 6) {\n              uVar41 = puVar36[0xc];\n            }\n            else if ((uVar14 & 2) == 0) {\n              if ((uVar14 & 4) == 0) goto LAB_0004dd24;\n              uVar41 = FUN_00046cac(&uStack_168,puVar36,*(undefined4 *)(uVar41 + 0x28),uVar14);\n            }\n            else {\n              uVar41 = puVar36[0xb];\n            }\n          }\n          else {\n            uVar41 = puVar36[10];\n          }\n          if (uVar41 == 0) goto code_r0x0004ea7c;\n        }\nLAB_0004dd24:\n        bVar4 = ppuVar12 != (uint **)0x0;\n        if ((piStack_e0 == (int *)0x0) ||\n           (uVar14 = puVar36[0x13], piStack_e0[uVar6] = uVar41, uVar14 == 0)) {\nLAB_0004dd48:\n          if (*(int *)(uVar41 + 0x34) << 4 < 0) {\n            if (((*(byte *)(uVar41 + 0x34) & 1) == 0) ||\n               (iVar30 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar41 + 8),uVar41 + 0xc,uVar6),\n               iVar30 != 0)) {\n              uVar14 = uVar6;\n              bVar5 = bVar22;\n              if (!bVar22) goto LAB_0004e0e4;\n            }\n            else {\n              uVar6 = 0xffffffff;\n              bVar5 = false;\n            }\n          }\n          else {\n            uVar6 = 0xffffffff;\n            bVar5 = false;\n          }\n          iVar30 = *(int *)(puVar46 + 0x28244);\n          iVar15 = *(int *)(puVar46 + 0x2829c);\n          uVar14 = uStack_11c;\n          ppuStack_1dc = ppuVar12;\n          while ((int)uVar14 < (int)puStack_10c) {\n            uVar40 = uVar14 + 1;\n            if ((((int)uVar40 < (int)uStack_120) || ((int)puStack_114 <= (int)uStack_120)) &&\n               (((int)uVar40 < (int)puStack_128 || ((int)puStack_114 <= (int)puStack_128)))) {\n              iVar16 = *(int *)(uVar41 + 0x34);\n              puVar36 = puStack_f0;\n            }\n            else {\n              uStack_168 = (*(code *)(iVar30 + 0x41e4))(&puStack_144,uVar14 + 2);\n              if (uStack_168 != 0) {\n                if (uStack_168 == 0xc) goto LAB_0004dbf8;\n                uVar20 = 0x46c;\n                goto LAB_0004ea9c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x34);\n              uVar14 = uStack_11c;\n              puVar36 = puStack_f0;\n            }\n            puStack_f0 = puVar36;\n            if (iVar16 << 5 < 0) {\n              iVar16 = *(int *)(uVar41 + 8);\n              if (0 < iVar16) {\n                param_4 = (uint *)0x0;\n                iVar18 = *(int *)(puVar46 + 0x28244);\n                pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7ab0);\n                do {\n                  uVar42 = *puVar36;\n                  iVar44 = *(int *)(*(int *)(uVar41 + 0xc) + (int)param_4 * 4);\n                  uVar37 = *(uint *)(uVar42 + iVar44 * 8 + 4);\n                  if ((uVar37 & 0x800) != 0) {\n                    if ((uVar37 & 0xffc000) != 0) {\n                      uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec);\n                      uVar37 = (uVar37 << 8) >> 0x16;\n                      if ((uVar37 & 4) == 0) {\n                        uVar27 = uVar19 & 1;\n                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    iVar16 = (*(code *)(iVar15 + -0x4eb0))\n                                       (uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14);\n                    if (iVar16 != 0) {\n                      if (iStack_cc < iVar16) {\n                        iStack_cc = iVar16;\n                      }\n                      iVar16 = iVar16 + uStack_11c;\n                      uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16);\n                      uVar14 = uStack_164;\n                      if (uStack_164 != 0) goto joined_r0x0004e770;\n                      piVar33 = piStack_e0 + iVar16;\n                      iVar28 = *piVar33;\n                      piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc);\n                      if (iVar28 == 0) {\n                        piStack_160 = (int *)*piVar17;\n                        piStack_15c = (int *)piVar17[1];\n                        iStack_158 = piVar17[2];\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        *piVar33 = iVar44;\n                      }\n                      else {\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }\n                      if ((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar16 = *(int *)(uVar41 + 8);\n                    uVar14 = uStack_11c;\n                  }\nLAB_0004e670:\n                  param_4 = (uint *)((int)param_4 + 1);\n                } while ((int)param_4 < iVar16);\n              }\n              uStack_168 = 0;\n            }\n            uStack_11c = uVar14 + 1;\n            uVar14 = (uint)*(byte *)((int)puStack_140 + uVar14);\n            do {\n              if (*(int *)(uVar41 + 0x2c) != 0) {\n                uVar37 = *(uint *)(*(int *)(uVar41 + 0x2c) + uVar14 * 4);\nLAB_0004ddf0:\n                if (piStack_e0 != (int *)0x0) goto LAB_0004ddfc;\n                goto LAB_0004de1c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x30);\n              if (iVar16 != 0) {\n                uVar37 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n                if ((uVar37 & 1) == 0) {\n                  uVar37 = *(uint *)(iVar16 + uVar14 * 4);\n                }\n                else {\n                  uVar37 = *(uint *)(iVar16 + (uVar14 + 0x100) * 4);\n                }\n                goto LAB_0004ddf0;\n              }\n              iVar16 = (*(code *)(iVar26 + -0x7510))(puStack_f0,uVar41);\n            } while (iVar16 != 0);\n            uStack_168 = 0xc;\n            uVar14 = uStack_168;\njoined_r0x0004e770:\n            uStack_168 = uVar14;\n            if (piStack_e0 == (int *)0x0) {\n              piVar17 = (int *)0x0;\n              goto LAB_0004dbb4;\n            }\n            uVar37 = 0;\nLAB_0004ddfc:\n            uVar37 = FUN_0004d0a8(&uStack_168,&puStack_144,uVar37);\nLAB_0004de1c:\n            uVar14 = uStack_11c;\n            if (uVar37 == 0) {\n              piVar17 = piStack_e0;\n              if (uStack_168 != 0) goto LAB_0004dbb4;\n              if ((piStack_e0 == (int *)0x0) || ((bVar5 && (!bVar22)))) break;\n              param_4 = &uStack_168;\n              do {\n                bVar2 = false;\n                piVar17 = piStack_e0 + uStack_11c;\n                uVar14 = uStack_11c;\n                do {\n                  uVar37 = uVar14 + 1;\n                  piVar17 = piVar17 + 1;\n                  if (iStack_dc < (int)uVar37) {\n                    if (bVar2) {\n                      uStack_11c = uVar14;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar2 = true;\n                  uVar14 = uVar37;\n                } while (*piVar17 == 0);\n                uStack_11c = uVar37;\n                uVar37 = FUN_0004d0a8(param_4,&puStack_144,0);\n                uVar14 = uStack_11c;\n                if (uStack_168 != 0) {\n                  if (uVar37 == 0) goto LAB_0004e0cc;\n                  break;\n                }\n              } while (uVar37 == 0);\n            }\n            uVar42 = uStack_1d0;\n            if ((bVar4) && (uVar42 = uVar40, uVar41 != uVar37)) {\n              bVar4 = false;\n              uVar42 = uStack_1d0;\n            }\n            uStack_1d0 = uVar42;\n            uVar41 = uVar37;\n            uStack_11c = uVar14;\n            if (((*(byte *)(uVar37 + 0x34) & 8) != 0) &&\n               (((*(byte *)(uVar37 + 0x34) & 1) == 0 ||\n                (iVar16 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar37 + 8),uVar37 + 0xc,uVar14)\n                , iVar16 != 0)))) {\n              if (!bVar22) goto LAB_0004e0e4;\n              ppuStack_1dc = (uint **)0x0;\n              uVar6 = uVar14;\n              bVar5 = bVar22;\n            }\n          }\nLAB_0004e0cc:\n          uVar14 = uVar6;\n          if (ppuStack_1dc != (uint **)0x0) {\n            *ppuStack_1dc = (uint *)((int)*ppuStack_1dc + uStack_1d0);\n          }\n        }\n        else {\n          uVar14 = FUN_00047924(&puStack_144,uVar41 + 8,uVar41 + 0xc,0);\n          uStack_168 = uVar14;\n          if (uVar14 == 0) {\n            if ((*(byte *)(uVar41 + 0x34) & 2) == 0) {\n              bVar4 = false;\n            }\n            else {\n              uVar14 = FUN_0004c6a8(&puStack_144,uVar41 + 8,uVar41 + 0xc);\n              uStack_168 = uVar14;\n              if (uVar14 != 0) goto LAB_0004e0e4;\n              bVar4 = false;\n            }\n            goto LAB_0004dd48;\n          }\n        }\nLAB_0004e0e4:\n        piVar17 = piStack_e0;\n        if (uVar14 != 0xffffffff) {\n          if (uVar14 == 0xfffffffe) goto LAB_0004dbf8;\n          uStack_e8 = uVar14;\n          if (((uint)ppuVar24[7] & 0x8000000) == 0) {\n            if (!bVar1) {\n              uVar6 = puVar43[0x13];\n              goto joined_r0x0004e94c;\n            }\n            pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n            iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                     piStack_e0[uVar14] + 0xc,uVar14);\n            if ((*(char *)(puVar43 + 0x16) < '\0') || (puVar43[0x13] != 0)) goto LAB_0004e170;\n          }\n          else {\n            uVar6 = puVar43[0x13];\njoined_r0x0004e94c:\n            if (uVar6 != 0) {\n              pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n              iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                       piStack_e0[uVar14] + 0xc,uVar14);\nLAB_0004e170:\n              iVar30 = iStack_e4;\n              puVar36 = puStack_f0;\n              if (uVar14 < 0x3fffffff) {\n                uStack_1f0 = uVar14 + 1;\n                piVar17 = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                if (piVar17 == (int *)0x0) goto LAB_0004dbf8;\n                if (puVar36[0x13] == 0) {\n                  piStack_15c = (int *)0x0;\n                  uStack_150 = 0;\n                  uStack_14c = 0;\n                  uStack_148 = 0;\n                  piStack_160 = piVar17;\n                  iStack_158 = iVar30;\n                  uStack_154 = uVar14;\n                  uStack_1e4 = FUN_0004d30c(&puStack_144,&piStack_160);\n                  (**(code **)(puVar46 + 0x28520))(uStack_148);\n                  if (uStack_1e4 == 0) {\n                    if (*piVar17 == 0) {\n                      (**(code **)(puVar46 + 0x28520))(piVar17);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar46 + 0x28520))(piStack_e0);\n                    uStack_e8 = uVar14;\n                    iStack_e4 = iVar30;\n                    piStack_e0 = piVar17;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  piStack_1ec = (int *)0x0;\n                }\n                else {\n                  piStack_1ec = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                  if (piStack_1ec == (int *)0x0) {\n                    (**(code **)(puVar46 + 0x28520))(piVar17);\n                    uStack_1e4 = 0xc;\n                    piVar17 = piStack_e0;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar15 = *(int *)(puVar46 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);\n                    uStack_150 = 0;\n                    uStack_14c = 0;\n                    uStack_148 = 0;\n                    piStack_160 = piVar17;\n                    piStack_15c = piStack_1ec;\n                    iStack_158 = iVar30;\n                    uStack_154 = uVar14;\n                    uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);\n                    (**(code **)(puVar46 + 0x28520))(uStack_148);\n                    if (uStack_1e4 != 0) break;\n                    if ((*piVar17 != 0) || (*piStack_1ec != 0)) {\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    piVar33 = piStack_e0 + (uStack_1f0 - 1);\n                    uStack_1f0 = uVar14;\n                    while( true ) {\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }\n                    iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       );\n                  }\n                }\n                (**(code **)(puVar46 + 0x28520))(piVar17);\n                (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                piVar17 = piStack_e0;\n                if (uStack_1e4 == 1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }\n              uStack_1e4 = 0xc;\n              goto LAB_0004dbbc;\n            }\n          }\nLAB_0004e7e0:\n          piVar17 = piStack_e0;\n          uStack_1e4 = uVar11;\n          if (local_78 == (uint *)0x0) goto LAB_0004dbbc;\n          puVar23 = ppuVar24[7];\n          if (bVar1) {\n            piVar17 = piStack_74 + 2;\n            do {\n              piVar17[1] = -1;\n              piVar33 = piVar17 + 2;\n              *piVar17 = -1;\n              piVar17 = piVar33;\n            } while (piStack_74 + (int)local_78 * 2 != piVar33);\n            *piStack_74 = 0;\n            piStack_74[1] = uStack_e8;\n            if (((uint)puVar23 & 0x8000000) == 0) {\n              if (*(char *)(puVar43 + 0x16) < '\0') {\n                bVar22 = 0 < (int)puVar43[0x13];\n              }\n              else {\n                bVar22 = false;\n              }\n              uStack_1e4 = FUN_0004bc00(ppuVar24,&puStack_144,local_78,piStack_74,bVar22);\n              piVar17 = piStack_e0;\n              if (uStack_1e4 != 0) goto LAB_0004dbbc;\n              puVar23 = (uint *)*piStack_74;\n            }\n            else {\nLAB_0004e838:\n              puVar23 = (uint *)0x0;\n            }\n            puVar36 = (uint *)0x0;\n            piVar17 = piStack_74;\n            while( true ) {\n              if (puVar23 != (uint *)0xffffffff) {\n                puVar32 = (uint *)piVar17[1];\n                puVar39 = puVar23;\n                puVar38 = puVar32;\n                if (cStack_f8 != '\0') {\n                  puVar39 = puStack_124;\n                  if (puStack_128 != puVar23) {\n                    puVar39 = *(uint **)(iStack_138 + (int)puVar23 * 4);\n                  }\n                  *piVar17 = (int)puVar39;\n                  puVar38 = puStack_124;\n                  if (puStack_128 != puVar32) {\n                    puVar38 = *(uint **)(iStack_138 + (int)puVar32 * 4);\n                  }\n                }\n                *piVar17 = (int)puStack_16c + (int)puVar39;\n                piVar17[1] = (int)puStack_16c + (int)puVar38;\n              }\n              puVar36 = (uint *)((int)puVar36 + 1);\n              piVar17 = piVar17 + 2;\n              if (puVar36 == local_78) break;\n              puVar23 = (uint *)*piVar17;\n            }\n            if (0 < iStack_180) {\n              piVar17 = piStack_74 + (int)local_78 * 2;\n              do {\n                *piVar17 = -1;\n                piVar33 = piVar17 + 2;\n                piVar17[1] = -1;\n                piVar17 = piVar33;\n              } while (piStack_74 + (iStack_180 + (int)local_78) * 2 != piVar33);\n            }\n            piVar33 = (int *)puVar43[0x21];\n            piVar17 = piStack_e0;\n            uStack_1e4 = uVar11;\n            if (piVar33 != (int *)0x0) {\n              iVar29 = 0;\n              piVar3 = piStack_74;\n              do {\n                pcVar45 = *(code **)(puVar46 + 0x28520);\n                if (iVar29 == (int)local_78 + -1) goto LAB_0004dbc0;\n                if (*piVar33 != iVar29) {\n                  piVar3[2] = piStack_74[(*piVar33 + 1) * 2];\n                  piVar3[3] = piStack_74[(*piVar33 + 1) * 2 + 1];\n                }\n                iVar29 = iVar29 + 1;\n                piVar33 = piVar33 + 1;\n                piVar3 = piVar3 + 2;\n              } while( true );\n            }\n            goto LAB_0004dbbc;\n          }\n          *piStack_74 = 0;\n          piStack_74[1] = uStack_e8;\n          goto LAB_0004e838;\n        }\nLAB_0004e2d4:\n        FUN_00044db0(&puStack_144);\n        param_4 = puStack_16c;\n      }\n      param_4 = (uint *)((int)param_4 + iVar29);\n      puStack_16c = param_4;\n      if (((int)param_4 < (int)puVar23) ||\n         (iVar30 = iStack_12c, puVar36 = puStack_88, (int)puVar38 < (int)param_4)) break;\n    } while( true );\n  }\nLAB_0004df68:\n  uStack_1e4 = 1;\n  piVar17 = piStack_e0;\n  goto LAB_0004dbbc;\ncode_r0x0004ea7c:\n  uStack_1e4 = uStack_168;\n  piVar17 = piStack_e0;\n  if (uStack_168 == 0xc) goto LAB_0004dbbc;\n  uVar20 = 0x435;\nLAB_0004ea9c:\n  (**(code **)(puVar46 + 0x282f4))\n            (*(int *)(puVar46 + 0x27edc) + 0x2b30,*(int *)(puVar46 + 0x27edc) + 0x2ac0,uVar20,\n             *(int *)(puVar46 + 0x27edc) + 0x3030);\n  uVar6 = extraout_v1;\n  ppuVar24 = &puStack_144;\nLAB_0004eabc:\n  uVar31 = 8;\n  goto LAB_0004dab0;\n}" (type_identifier "uint") (function_declarator "FUN_0004d30c(uint *param_1,uint *param_2,uint *param_3,uint *param_4)" (identifier "FUN_0004d30c") (parameter_list "(uint *param_1,uint *param_2,uint *param_3,uint *param_4)" (( "(") (parameter_declaration "uint *param_1" (type_identifier "uint") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "uint *param_2" (type_identifier "uint") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "uint *param_3" (type_identifier "uint") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "uint *param_4" (type_identifier "uint") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) () ")"))) (compound_statement "{\n  bool bVar1;\n  bool bVar2;\n  int *piVar3;\n  bool bVar4;\n  bool bVar5;\n  uint uVar6;\n  code *pcVar7;\n  code *pcVar8;\n  code *pcVar9;\n  int *piVar10;\n  uint uVar11;\n  uint **ppuVar12;\n  int iVar13;\n  uint uVar14;\n  int iVar15;\n  int iVar16;\n  int *piVar17;\n  char cVar21;\n  int iVar18;\n  uint uVar19;\n  undefined4 uVar20;\n  bool bVar22;\n  uint *puVar23;\n  uint extraout_v1;\n  uint **ppuVar24;\n  int iVar25;\n  int iVar26;\n  uint uVar27;\n  int iVar28;\n  int iVar29;\n  int iVar30;\n  uint uVar31;\n  uint *puVar32;\n  int *piVar33;\n  uint uVar34;\n  undefined4 *puVar35;\n  uint *puVar36;\n  uint uVar37;\n  uint *puVar38;\n  uint *puVar39;\n  uint uVar40;\n  int *unaff_s4;\n  uint uVar41;\n  int unaff_s5;\n  uint uVar42;\n  int unaff_s6;\n  uint *puVar43;\n  int iVar44;\n  uint *unaff_s7;\n  code *pcVar45;\n  undefined *puVar46;\n  int unaff_s8;\n  uint uStack_1f0;\n  int *piStack_1ec;\n  uint uStack_1e4;\n  uint *puStack_1e0;\n  uint **ppuStack_1dc;\n  uint uStack_1d0;\n  int iStack_180;\n  uint *puStack_16c;\n  uint uStack_168;\n  uint uStack_164;\n  int *piStack_160;\n  int *piStack_15c;\n  int iStack_158;\n  uint uStack_154;\n  undefined4 uStack_150;\n  undefined4 uStack_14c;\n  undefined4 uStack_148;\n  uint *puStack_144;\n  uint *puStack_140;\n  int *piStack_13c;\n  int iStack_138;\n  int iStack_12c;\n  uint *puStack_128;\n  uint *puStack_124;\n  uint uStack_120;\n  uint uStack_11c;\n  uint *puStack_118;\n  uint *puStack_114;\n  uint *puStack_110;\n  uint *puStack_10c;\n  undefined4 uStack_108;\n  uint *puStack_104;\n  uint *puStack_100;\n  byte bStack_fc;\n  byte bStack_fb;\n  byte bStack_fa;\n  byte bStack_f9;\n  char cStack_f8;\n  byte bStack_f7;\n  byte bStack_f6;\n  uint uStack_f4;\n  uint *puStack_f0;\n  undefined1 *puStack_ec;\n  uint uStack_e8;\n  int iStack_e4;\n  int *piStack_e0;\n  int iStack_dc;\n  undefined4 uStack_d8;\n  int iStack_d4;\n  int iStack_d0;\n  int iStack_cc;\n  int iStack_c4;\n  int iStack_c0;\n  int iStack_bc;\n  uint *puStack_b8;\n  uint *puStack_b4;\n  uint *puStack_b0;\n  uint *puStack_ac;\n  int *piStack_a8;\n  int iStack_a4;\n  int iStack_a0;\n  uint *puStack_9c;\n  int iStack_98;\n  code *pcStack_94;\n  uint *puStack_88;\n  uint *local_80;\n  uint *local_7c;\n  uint *local_78;\n  int *piStack_74;\n  int local_64;\n  uint local_38;\n  undefined4 local_34;\n  undefined4 *local_30;\n  uint **local_2c;\n  \n  puVar46 = PTR___stack_chk_guard_00075be8;\n  local_38 = 1;\n  local_34 = 1;\n  local_2c = *(uint ***)PTR___stack_chk_guard_00075be8;\n  puVar36 = (uint *)param_2[3];\n  puVar39 = (uint *)param_2[2];\n  puVar23 = param_2;\n  local_30 = (undefined4 *)(*(code *)PTR_malloc_00075b2c)(4);\n  if (local_30 == (undefined4 *)0x0) {\n    uVar6 = 0xc;\n  }\n  else {\n    *local_30 = puVar39;\n    pcVar45 = (code *)(PTR_DAT_00075978 + -0x1248);\n    puVar23 = param_2;\n    param_3 = puVar36;\n    param_4 = &local_38;\n    uVar6 = FUN_0004edb8(param_1);\n    if (uVar6 == 0) {\n      local_64 = 0;\n      if (0 < (int)puVar36) {\n        pcVar7 = (code *)(PTR_LAB_00075920 + 0x5610);\n        pcVar8 = (code *)(PTR_LAB_00075920 + 0x33f8);\n        pcVar9 = (code *)(PTR_LAB_00075920 + 0x5230);\n        do {\n          unaff_s7 = (uint *)((int)puVar36 * 4);\n          if (*(int *)(*param_2 + (int)unaff_s7) == 0) {\n            local_64 = local_64 + 1;\n            if ((int)param_1[0x1e] < local_64) goto LAB_0004d6a0;\n          }\n          else {\n            local_64 = 0;\n            if ((int)param_1[0x1e] < 0) {\nLAB_0004d6a0:\n              puVar23 = (uint *)0x0;\n              param_3 = unaff_s7;\n              (*(code *)PTR_memset_00075ad4)();\n              (*(code *)PTR_free_00075bfc)(local_30);\n              uVar6 = 0;\n              goto LAB_0004d644;\n            }\n          }\n          local_34 = 0;\n          unaff_s6 = *(int *)((int)unaff_s7 + (param_1[0x19] - 4));\n          puVar36 = (uint *)((int)puVar36 + -1);\n          if ((unaff_s6 != 0) && (unaff_s4 = (int *)param_1[0x15], 0 < *(int *)(unaff_s6 + 0x14))) {\n            unaff_s5 = 0;\n            do {\n              puVar39 = *(uint **)(*(int *)(unaff_s6 + 0x18) + unaff_s5 * 4);\n              unaff_s8 = (int)puVar39 * 8;\n              iVar29 = *unaff_s4 + unaff_s8;\n              if ((*(uint *)(iVar29 + 4) & 0x800) == 0) {\nLAB_0004d464:\n                iVar29 = FUN_00047bf8(param_1,iVar29,puVar36);\n                if (iVar29 != 0) {\n                  iVar29 = *(int *)(*param_2 + (int)unaff_s7);\n                  if (iVar29 != 0) {\n                    param_3 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc);\n                    iVar29 = 1;\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                }\n              }\n              else {\n                puVar35 = (undefined4 *)param_1[0x15];\n                uVar6 = param_2[3];\n                param_3 = puVar39;\n                param_4 = param_1;\n                local_80 = puVar36;\n                iVar29 = FUN_0004b150(*puVar35,puVar35 + 0x20);\n                if (iVar29 < 1) {\n                  if (iVar29 == 0) {\n                    iVar29 = *unaff_s4;\n                    goto LAB_0004d460;\n                  }\n                }\n                else if ((int)puVar36 + iVar29 <= (int)uVar6) {\n                  iVar30 = *(int *)(*param_2 + ((int)puVar36 + iVar29) * 4);\n                  if (iVar30 != 0) {\n                    param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                  iVar29 = *unaff_s4;\nLAB_0004d460:\n                  iVar29 = iVar29 + unaff_s8;\n                  goto LAB_0004d464;\n                }\nLAB_0004d4b4:\n                if (param_2[5] != 0) {\n                  local_80 = (uint *)((int)puVar36 + iVar29);\n                  param_3 = param_2 + 6;\n                  param_4 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                  local_7c = puVar39;\n                  local_78 = puVar36;\n                  iVar29 = (*pcVar7)(param_1,param_2 + 5);\n                  if (iVar29 != 0) goto LAB_0004d510;\n                }\n                puVar23 = puVar39;\n                iVar29 = (*pcVar8)(&local_38);\n                if (iVar29 == 0) {\n                  uVar6 = 0xc;\n                  goto LAB_0004d62c;\n                }\n              }\nLAB_0004d510:\n              unaff_s5 = unaff_s5 + 1;\n              param_4 = &local_38;\n            } while (unaff_s5 < *(int *)(unaff_s6 + 0x14));\n          }\n          puVar23 = param_2;\n          param_3 = puVar36;\n          param_4 = &local_38;\n          uVar6 = (*pcVar45)(param_1);\n          if (uVar6 != 0) goto LAB_0004d62c;\n        } while (puVar36 != (uint *)0x0);\n      }\n      uVar6 = 0;\n    }\nLAB_0004d62c:\n    (*(code *)PTR_free_00075bfc)(local_30);\n  }\nLAB_0004d644:\n  if (local_2c == *(uint ***)puVar46) {\n    return uVar6;\n  }\n  pcVar45 = FUN_0004d6dc;\n  ppuVar24 = local_2c;\n  puVar46 = PTR___stack_chk_fail_00075ba8;\n  (*(code *)PTR___stack_chk_fail_00075ba8)();\n  puVar32 = local_7c;\n  puVar38 = local_80;\n  piVar10 = *(int **)(puVar46 + 0x2850c);\n  iStack_bc = *piVar10;\n  puVar43 = *ppuVar24;\n  puStack_b8 = puVar36;\n  puStack_b4 = param_2;\n  puStack_b0 = param_1;\n  puStack_ac = puVar39;\n  piStack_a8 = unaff_s4;\n  iStack_a4 = unaff_s5;\n  iStack_a0 = unaff_s6;\n  puStack_9c = unaff_s7;\n  iStack_98 = unaff_s8;\n  pcStack_94 = pcVar45;\n  puStack_88 = param_3;\n  (**(code **)(puVar46 + 0x283f8))(&puStack_144,0,0x88);\n  puStack_1e0 = ppuVar24[4];\n  if (puStack_1e0 != (uint *)0x0) {\n    if (((*(byte *)(ppuVar24 + 7) & 0x10) == 0) || (param_4 == puVar38)) {\n      puStack_1e0 = (uint *)0x0;\n    }\n    else if ((char)*(byte *)(ppuVar24 + 7) < '\0') {\n      puStack_1e0 = (uint *)0x0;\n    }\n  }\n  puVar36 = ppuVar24[6];\n  if (puVar36 < local_78) {\n    iStack_180 = ((int)local_78 + -1) - (int)puVar36;\n    local_78 = (uint *)((int)local_78 + ((int)puVar36 - ((int)local_78 + -1)));\n    puVar36 = ppuVar24[2];\n  }\n  else {\n    puVar36 = ppuVar24[2];\n    iStack_180 = 0;\n  }\n  puStack_f0 = puVar43;\n  if ((((puVar36 == (uint *)0x0) || (puVar43[9] == 0)) || (puVar43[10] == 0)) ||\n     ((puVar43[0xb] == 0 || (puVar43[0xc] == 0)))) {\nLAB_0004db54:\n    uStack_1e4 = 1;\n    goto LAB_0004db58;\n  }\n  if (((*(int *)(puVar43[9] + 8) == 0) && (*(int *)(puVar43[10] + 8) == 0)) &&\n     ((*(int *)(puVar43[0xb] + 8) == 0 || (((uint)ppuVar24[7] & 0x1000000) == 0)))) {\n    if (param_4 == (uint *)0x0) {\n      puVar38 = (uint *)0x0;\n    }\n    else {\n      if (puVar38 != (uint *)0x0) goto LAB_0004db54;\n      param_4 = (uint *)0x0;\n    }\n  }\n  if (local_78 == (uint *)0x0) {\n    bVar22 = puVar43[0x13] != 0;\n  }\n  else {\n    bVar22 = true;\n  }\n  uStack_f4 = puVar43[0x17];\n  puVar36 = ppuVar24[5];\n  uVar6 = puVar43[2] + 1;\n  if ((int)(puVar43[2] + 1) < (int)uStack_f4) {\n    uVar6 = uStack_f4;\n  }\n  bStack_fc = (byte)((uint)((int)ppuVar24[3] << 9) >> 0x18);\n  bStack_f9 = 1;\n  if (puVar36 == (uint *)0x0) {\n    bStack_f9 = bStack_fc >> 7;\n  }\n  uVar34 = (int)puStack_88 + 1U;\n  if ((int)uVar6 <= (int)((int)puStack_88 + 1U)) {\n    uVar34 = uVar6;\n  }\n  bStack_fc = bStack_fc >> 7;\n  bStack_fb = (byte)((puVar43[0x16] << 2) >> 0x1f);\n  bStack_fa = (byte)((puVar43[0x16] << 3) >> 0x1f);\n  puStack_114 = puStack_88;\n  puStack_118 = puStack_88;\n  puStack_10c = puStack_88;\n  puStack_110 = puStack_88;\n  puStack_144 = puVar23;\n  puStack_104 = puVar36;\n  uStack_1e4 = FUN_00043278(&puStack_144,uVar34);\n  piVar17 = piStack_e0;\n  if (uStack_1e4 != 0) {\nLAB_0004dbbc:\n    while( true ) {\n      pcVar45 = *(code **)(puVar46 + 0x28520);\nLAB_0004dbc0:\n      (*pcVar45)(piVar17);\n      if (puVar43[0x13] != 0) {\nLAB_0004dc14:\n        FUN_00044db0(&puStack_144);\n        (**(code **)(puVar46 + 0x28520))(iStack_c0);\n        (**(code **)(puVar46 + 0x28520))(iStack_d0);\n      }\nLAB_0004dbd4:\n      FUN_00044d40(&puStack_144);\nLAB_0004db58:\n      if (iStack_bc == *piVar10) break;\n      uStack_1e4 = (**(code **)(puVar46 + 0x284cc))();\n      piVar17 = piStack_e0;\n    }\n    return uStack_1e4;\n  }\n  puStack_100 = puVar43 + 0x18;\n  bStack_f6 = (byte)((puVar43[0x16] << 4) >> 0x1f);\n  if ((bStack_f9 != 0) || (puStack_140 = puVar23, puStack_128 = puStack_88, 1 < (int)puVar43[0x17]))\n  {\n    puStack_128 = (uint *)0x0;\n  }\n  puStack_10c = puVar32;\n  puStack_110 = puVar32;\n  puStack_124 = puStack_128;\n  bStack_f7 = (byte)((uint)((int)ppuVar24[7] << 7) >> 0x1f);\n  uVar6 = puVar43[0x13];\n  iVar29 = uVar6 * 2;\n  puStack_ec = &_gp_1;\n  uStack_e8 = 0xffffffff;\n  if (0 < iVar29) {\n    if (0xccccccc < iVar29) goto LAB_0004dbf8;\n    iVar30 = (**(code **)(puVar46 + 0x28450))(uVar6 * 0x28);\n    iStack_d0 = iVar30;\n    iStack_c0 = (**(code **)(puVar46 + 0x28450))(uVar6 * 8);\n    if ((iVar30 == 0) || (iStack_c0 == 0)) goto LAB_0004dbf8;\n  }\n  iStack_d4 = iVar29;\n  iStack_c4 = iVar29;\n  bVar1 = (uint *)0x1 < local_78;\n  iStack_cc = 1;\n  if ((bVar1) || ((puVar43[0x16] & 0x40000000) != 0)) {\n    if (0x3ffffffe < uStack_120) {\nLAB_0004dbf8:\n      uStack_1e4 = 0xc;\n      (**(code **)(puVar46 + 0x28520))(piStack_e0);\n      if (puVar43[0x13] == 0) goto LAB_0004dbd4;\n      goto LAB_0004dc14;\n    }\n    piStack_e0 = (int *)(**(code **)(puVar46 + 0x28450))((uStack_120 + 1) * 4);\n    piVar17 = piStack_e0;\n    if (piStack_e0 == (int *)0x0) {\nLAB_0004dbb4:\n      uStack_1e4 = 0xc;\n      goto LAB_0004dbbc;\n    }\n  }\n  else {\n    piStack_e0 = (int *)0x0;\n  }\n  uVar34 = puVar43[0x17];\n  iVar29 = -1;\n  puStack_16c = param_4;\n  uStack_108 = 6;\n  uVar6 = (uint)((int)puVar38 < (int)param_4);\n  puVar23 = puVar38;\n  if (uVar6 == 0) {\n    iVar29 = 1;\n    puVar23 = param_4;\n  }\n  if ((int)puVar38 <= (int)param_4) {\n    puVar38 = param_4;\n  }\n  if (puStack_1e0 == (uint *)0x0) goto LAB_0004eabc;\n  uVar11 = 4;\n  if (((uVar34 != 1) && (uVar11 = 0, -1 < (int)ppuVar24[3] << 9)) &&\n     (uVar11 = 4, puVar36 != (uint *)0x0)) {\n    uVar11 = 0;\n  }\n  uVar31 = 2;\n  if (uVar6 != 0) {\n    uVar31 = 0;\n  }\n  uVar31 = puVar36 != (uint *)0x0 | uVar11 | uVar31;\nLAB_0004dab0:\n  if (((int)puVar23 <= (int)param_4) && ((int)param_4 <= (int)puVar38)) {\n    ppuVar12 = &puStack_16c;\n    if (uVar6 != 0) {\n      ppuVar12 = (uint **)0x0;\n    }\n    iVar25 = *(int *)(puVar46 + 0x28244);\n    iVar13 = *(int *)(puVar46 + 0x27edc);\n    iVar26 = *(int *)(puVar46 + 0x2829c);\n    iVar30 = iStack_12c;\n    puVar36 = puStack_88;\n    do {\n      puStack_88 = puVar36;\n      if (uVar31 - 4 < 5) {\n                    \n                    \n        uVar6 = (*(code *)(puVar46 + *(int *)(iVar13 + 0x2be4 + (uVar31 - 4) * 4) + 0x2fea4))();\n        return uVar6;\n      }\n      iStack_12c = iVar30;\n      while( true ) {\n        puVar39 = (uint *)((int)param_4 - iVar30);\n        if (puStack_124 <= puVar39) {\n          uStack_1e4 = (*(code *)(iVar25 + 0x7eac))(&puStack_144,param_4,&_gp_1);\n          piVar17 = piStack_e0;\n          if (uStack_1e4 != 0) goto LAB_0004dbbc;\n          puVar39 = (uint *)((int)param_4 - iStack_12c);\n          iVar30 = iStack_12c;\n        }\n        if ((int)param_4 < (int)puVar36) {\n          cVar21 = *(char *)((int)puStack_1e0 + (uint)*(byte *)((int)puStack_140 + (int)puVar39));\n        }\n        else {\n          cVar21 = *(char *)puStack_1e0;\n        }\n        if (cVar21 != '\0') break;\n        param_4 = (uint *)((int)param_4 + iVar29);\n        puStack_16c = param_4;\n        if (((int)param_4 < (int)puVar23) || ((int)puVar38 < (int)param_4)) goto LAB_0004df68;\n      }\n      uVar11 = FUN_00047eac(&puStack_144,param_4,&_gp_1);\n      puVar36 = puStack_f0;\n      uVar6 = uStack_11c;\n      piVar17 = piStack_e0;\n      uStack_1e4 = uVar11;\n      if (uVar11 != 0) goto LAB_0004dbbc;\n      if (((uVar34 == 1) || (puStack_128 == (uint *)0x0)) || (*piStack_13c != -1)) {\n        iStack_cc = 0;\n        uStack_d8 = 0;\n        uVar41 = puStack_f0[9];\n        uStack_1d0 = uStack_11c;\n        iStack_dc = 0;\n        uStack_168 = 0;\n        if ((*(byte *)(uVar41 + 0x34) & 1) != 0) {\n          uVar14 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n          if ((uVar14 & 1) == 0) {\n            if (uVar14 == 0) goto LAB_0004dd24;\n            if ((uVar14 & 6) == 6) {\n              uVar41 = puVar36[0xc];\n            }\n            else if ((uVar14 & 2) == 0) {\n              if ((uVar14 & 4) == 0) goto LAB_0004dd24;\n              uVar41 = FUN_00046cac(&uStack_168,puVar36,*(undefined4 *)(uVar41 + 0x28),uVar14);\n            }\n            else {\n              uVar41 = puVar36[0xb];\n            }\n          }\n          else {\n            uVar41 = puVar36[10];\n          }\n          if (uVar41 == 0) goto code_r0x0004ea7c;\n        }\nLAB_0004dd24:\n        bVar4 = ppuVar12 != (uint **)0x0;\n        if ((piStack_e0 == (int *)0x0) ||\n           (uVar14 = puVar36[0x13], piStack_e0[uVar6] = uVar41, uVar14 == 0)) {\nLAB_0004dd48:\n          if (*(int *)(uVar41 + 0x34) << 4 < 0) {\n            if (((*(byte *)(uVar41 + 0x34) & 1) == 0) ||\n               (iVar30 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar41 + 8),uVar41 + 0xc,uVar6),\n               iVar30 != 0)) {\n              uVar14 = uVar6;\n              bVar5 = bVar22;\n              if (!bVar22) goto LAB_0004e0e4;\n            }\n            else {\n              uVar6 = 0xffffffff;\n              bVar5 = false;\n            }\n          }\n          else {\n            uVar6 = 0xffffffff;\n            bVar5 = false;\n          }\n          iVar30 = *(int *)(puVar46 + 0x28244);\n          iVar15 = *(int *)(puVar46 + 0x2829c);\n          uVar14 = uStack_11c;\n          ppuStack_1dc = ppuVar12;\n          while ((int)uVar14 < (int)puStack_10c) {\n            uVar40 = uVar14 + 1;\n            if ((((int)uVar40 < (int)uStack_120) || ((int)puStack_114 <= (int)uStack_120)) &&\n               (((int)uVar40 < (int)puStack_128 || ((int)puStack_114 <= (int)puStack_128)))) {\n              iVar16 = *(int *)(uVar41 + 0x34);\n              puVar36 = puStack_f0;\n            }\n            else {\n              uStack_168 = (*(code *)(iVar30 + 0x41e4))(&puStack_144,uVar14 + 2);\n              if (uStack_168 != 0) {\n                if (uStack_168 == 0xc) goto LAB_0004dbf8;\n                uVar20 = 0x46c;\n                goto LAB_0004ea9c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x34);\n              uVar14 = uStack_11c;\n              puVar36 = puStack_f0;\n            }\n            puStack_f0 = puVar36;\n            if (iVar16 << 5 < 0) {\n              iVar16 = *(int *)(uVar41 + 8);\n              if (0 < iVar16) {\n                param_4 = (uint *)0x0;\n                iVar18 = *(int *)(puVar46 + 0x28244);\n                pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7ab0);\n                do {\n                  uVar42 = *puVar36;\n                  iVar44 = *(int *)(*(int *)(uVar41 + 0xc) + (int)param_4 * 4);\n                  uVar37 = *(uint *)(uVar42 + iVar44 * 8 + 4);\n                  if ((uVar37 & 0x800) != 0) {\n                    if ((uVar37 & 0xffc000) != 0) {\n                      uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec);\n                      uVar37 = (uVar37 << 8) >> 0x16;\n                      if ((uVar37 & 4) == 0) {\n                        uVar27 = uVar19 & 1;\n                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    iVar16 = (*(code *)(iVar15 + -0x4eb0))\n                                       (uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14);\n                    if (iVar16 != 0) {\n                      if (iStack_cc < iVar16) {\n                        iStack_cc = iVar16;\n                      }\n                      iVar16 = iVar16 + uStack_11c;\n                      uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16);\n                      uVar14 = uStack_164;\n                      if (uStack_164 != 0) goto joined_r0x0004e770;\n                      piVar33 = piStack_e0 + iVar16;\n                      iVar28 = *piVar33;\n                      piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc);\n                      if (iVar28 == 0) {\n                        piStack_160 = (int *)*piVar17;\n                        piStack_15c = (int *)piVar17[1];\n                        iStack_158 = piVar17[2];\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        *piVar33 = iVar44;\n                      }\n                      else {\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }\n                      if ((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar16 = *(int *)(uVar41 + 8);\n                    uVar14 = uStack_11c;\n                  }\nLAB_0004e670:\n                  param_4 = (uint *)((int)param_4 + 1);\n                } while ((int)param_4 < iVar16);\n              }\n              uStack_168 = 0;\n            }\n            uStack_11c = uVar14 + 1;\n            uVar14 = (uint)*(byte *)((int)puStack_140 + uVar14);\n            do {\n              if (*(int *)(uVar41 + 0x2c) != 0) {\n                uVar37 = *(uint *)(*(int *)(uVar41 + 0x2c) + uVar14 * 4);\nLAB_0004ddf0:\n                if (piStack_e0 != (int *)0x0) goto LAB_0004ddfc;\n                goto LAB_0004de1c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x30);\n              if (iVar16 != 0) {\n                uVar37 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n                if ((uVar37 & 1) == 0) {\n                  uVar37 = *(uint *)(iVar16 + uVar14 * 4);\n                }\n                else {\n                  uVar37 = *(uint *)(iVar16 + (uVar14 + 0x100) * 4);\n                }\n                goto LAB_0004ddf0;\n              }\n              iVar16 = (*(code *)(iVar26 + -0x7510))(puStack_f0,uVar41);\n            } while (iVar16 != 0);\n            uStack_168 = 0xc;\n            uVar14 = uStack_168;\njoined_r0x0004e770:\n            uStack_168 = uVar14;\n            if (piStack_e0 == (int *)0x0) {\n              piVar17 = (int *)0x0;\n              goto LAB_0004dbb4;\n            }\n            uVar37 = 0;\nLAB_0004ddfc:\n            uVar37 = FUN_0004d0a8(&uStack_168,&puStack_144,uVar37);\nLAB_0004de1c:\n            uVar14 = uStack_11c;\n            if (uVar37 == 0) {\n              piVar17 = piStack_e0;\n              if (uStack_168 != 0) goto LAB_0004dbb4;\n              if ((piStack_e0 == (int *)0x0) || ((bVar5 && (!bVar22)))) break;\n              param_4 = &uStack_168;\n              do {\n                bVar2 = false;\n                piVar17 = piStack_e0 + uStack_11c;\n                uVar14 = uStack_11c;\n                do {\n                  uVar37 = uVar14 + 1;\n                  piVar17 = piVar17 + 1;\n                  if (iStack_dc < (int)uVar37) {\n                    if (bVar2) {\n                      uStack_11c = uVar14;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar2 = true;\n                  uVar14 = uVar37;\n                } while (*piVar17 == 0);\n                uStack_11c = uVar37;\n                uVar37 = FUN_0004d0a8(param_4,&puStack_144,0);\n                uVar14 = uStack_11c;\n                if (uStack_168 != 0) {\n                  if (uVar37 == 0) goto LAB_0004e0cc;\n                  break;\n                }\n              } while (uVar37 == 0);\n            }\n            uVar42 = uStack_1d0;\n            if ((bVar4) && (uVar42 = uVar40, uVar41 != uVar37)) {\n              bVar4 = false;\n              uVar42 = uStack_1d0;\n            }\n            uStack_1d0 = uVar42;\n            uVar41 = uVar37;\n            uStack_11c = uVar14;\n            if (((*(byte *)(uVar37 + 0x34) & 8) != 0) &&\n               (((*(byte *)(uVar37 + 0x34) & 1) == 0 ||\n                (iVar16 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar37 + 8),uVar37 + 0xc,uVar14)\n                , iVar16 != 0)))) {\n              if (!bVar22) goto LAB_0004e0e4;\n              ppuStack_1dc = (uint **)0x0;\n              uVar6 = uVar14;\n              bVar5 = bVar22;\n            }\n          }\nLAB_0004e0cc:\n          uVar14 = uVar6;\n          if (ppuStack_1dc != (uint **)0x0) {\n            *ppuStack_1dc = (uint *)((int)*ppuStack_1dc + uStack_1d0);\n          }\n        }\n        else {\n          uVar14 = FUN_00047924(&puStack_144,uVar41 + 8,uVar41 + 0xc,0);\n          uStack_168 = uVar14;\n          if (uVar14 == 0) {\n            if ((*(byte *)(uVar41 + 0x34) & 2) == 0) {\n              bVar4 = false;\n            }\n            else {\n              uVar14 = FUN_0004c6a8(&puStack_144,uVar41 + 8,uVar41 + 0xc);\n              uStack_168 = uVar14;\n              if (uVar14 != 0) goto LAB_0004e0e4;\n              bVar4 = false;\n            }\n            goto LAB_0004dd48;\n          }\n        }\nLAB_0004e0e4:\n        piVar17 = piStack_e0;\n        if (uVar14 != 0xffffffff) {\n          if (uVar14 == 0xfffffffe) goto LAB_0004dbf8;\n          uStack_e8 = uVar14;\n          if (((uint)ppuVar24[7] & 0x8000000) == 0) {\n            if (!bVar1) {\n              uVar6 = puVar43[0x13];\n              goto joined_r0x0004e94c;\n            }\n            pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n            iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                     piStack_e0[uVar14] + 0xc,uVar14);\n            if ((*(char *)(puVar43 + 0x16) < '\0') || (puVar43[0x13] != 0)) goto LAB_0004e170;\n          }\n          else {\n            uVar6 = puVar43[0x13];\njoined_r0x0004e94c:\n            if (uVar6 != 0) {\n              pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n              iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                       piStack_e0[uVar14] + 0xc,uVar14);\nLAB_0004e170:\n              iVar30 = iStack_e4;\n              puVar36 = puStack_f0;\n              if (uVar14 < 0x3fffffff) {\n                uStack_1f0 = uVar14 + 1;\n                piVar17 = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                if (piVar17 == (int *)0x0) goto LAB_0004dbf8;\n                if (puVar36[0x13] == 0) {\n                  piStack_15c = (int *)0x0;\n                  uStack_150 = 0;\n                  uStack_14c = 0;\n                  uStack_148 = 0;\n                  piStack_160 = piVar17;\n                  iStack_158 = iVar30;\n                  uStack_154 = uVar14;\n                  uStack_1e4 = FUN_0004d30c(&puStack_144,&piStack_160);\n                  (**(code **)(puVar46 + 0x28520))(uStack_148);\n                  if (uStack_1e4 == 0) {\n                    if (*piVar17 == 0) {\n                      (**(code **)(puVar46 + 0x28520))(piVar17);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar46 + 0x28520))(piStack_e0);\n                    uStack_e8 = uVar14;\n                    iStack_e4 = iVar30;\n                    piStack_e0 = piVar17;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  piStack_1ec = (int *)0x0;\n                }\n                else {\n                  piStack_1ec = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                  if (piStack_1ec == (int *)0x0) {\n                    (**(code **)(puVar46 + 0x28520))(piVar17);\n                    uStack_1e4 = 0xc;\n                    piVar17 = piStack_e0;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar15 = *(int *)(puVar46 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);\n                    uStack_150 = 0;\n                    uStack_14c = 0;\n                    uStack_148 = 0;\n                    piStack_160 = piVar17;\n                    piStack_15c = piStack_1ec;\n                    iStack_158 = iVar30;\n                    uStack_154 = uVar14;\n                    uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);\n                    (**(code **)(puVar46 + 0x28520))(uStack_148);\n                    if (uStack_1e4 != 0) break;\n                    if ((*piVar17 != 0) || (*piStack_1ec != 0)) {\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    piVar33 = piStack_e0 + (uStack_1f0 - 1);\n                    uStack_1f0 = uVar14;\n                    while( true ) {\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }\n                    iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       );\n                  }\n                }\n                (**(code **)(puVar46 + 0x28520))(piVar17);\n                (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                piVar17 = piStack_e0;\n                if (uStack_1e4 == 1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }\n              uStack_1e4 = 0xc;\n              goto LAB_0004dbbc;\n            }\n          }\nLAB_0004e7e0:\n          piVar17 = piStack_e0;\n          uStack_1e4 = uVar11;\n          if (local_78 == (uint *)0x0) goto LAB_0004dbbc;\n          puVar23 = ppuVar24[7];\n          if (bVar1) {\n            piVar17 = piStack_74 + 2;\n            do {\n              piVar17[1] = -1;\n              piVar33 = piVar17 + 2;\n              *piVar17 = -1;\n              piVar17 = piVar33;\n            } while (piStack_74 + (int)local_78 * 2 != piVar33);\n            *piStack_74 = 0;\n            piStack_74[1] = uStack_e8;\n            if (((uint)puVar23 & 0x8000000) == 0) {\n              if (*(char *)(puVar43 + 0x16) < '\0') {\n                bVar22 = 0 < (int)puVar43[0x13];\n              }\n              else {\n                bVar22 = false;\n              }\n              uStack_1e4 = FUN_0004bc00(ppuVar24,&puStack_144,local_78,piStack_74,bVar22);\n              piVar17 = piStack_e0;\n              if (uStack_1e4 != 0) goto LAB_0004dbbc;\n              puVar23 = (uint *)*piStack_74;\n            }\n            else {\nLAB_0004e838:\n              puVar23 = (uint *)0x0;\n            }\n            puVar36 = (uint *)0x0;\n            piVar17 = piStack_74;\n            while( true ) {\n              if (puVar23 != (uint *)0xffffffff) {\n                puVar32 = (uint *)piVar17[1];\n                puVar39 = puVar23;\n                puVar38 = puVar32;\n                if (cStack_f8 != '\0') {\n                  puVar39 = puStack_124;\n                  if (puStack_128 != puVar23) {\n                    puVar39 = *(uint **)(iStack_138 + (int)puVar23 * 4);\n                  }\n                  *piVar17 = (int)puVar39;\n                  puVar38 = puStack_124;\n                  if (puStack_128 != puVar32) {\n                    puVar38 = *(uint **)(iStack_138 + (int)puVar32 * 4);\n                  }\n                }\n                *piVar17 = (int)puStack_16c + (int)puVar39;\n                piVar17[1] = (int)puStack_16c + (int)puVar38;\n              }\n              puVar36 = (uint *)((int)puVar36 + 1);\n              piVar17 = piVar17 + 2;\n              if (puVar36 == local_78) break;\n              puVar23 = (uint *)*piVar17;\n            }\n            if (0 < iStack_180) {\n              piVar17 = piStack_74 + (int)local_78 * 2;\n              do {\n                *piVar17 = -1;\n                piVar33 = piVar17 + 2;\n                piVar17[1] = -1;\n                piVar17 = piVar33;\n              } while (piStack_74 + (iStack_180 + (int)local_78) * 2 != piVar33);\n            }\n            piVar33 = (int *)puVar43[0x21];\n            piVar17 = piStack_e0;\n            uStack_1e4 = uVar11;\n            if (piVar33 != (int *)0x0) {\n              iVar29 = 0;\n              piVar3 = piStack_74;\n              do {\n                pcVar45 = *(code **)(puVar46 + 0x28520);\n                if (iVar29 == (int)local_78 + -1) goto LAB_0004dbc0;\n                if (*piVar33 != iVar29) {\n                  piVar3[2] = piStack_74[(*piVar33 + 1) * 2];\n                  piVar3[3] = piStack_74[(*piVar33 + 1) * 2 + 1];\n                }\n                iVar29 = iVar29 + 1;\n                piVar33 = piVar33 + 1;\n                piVar3 = piVar3 + 2;\n              } while( true );\n            }\n            goto LAB_0004dbbc;\n          }\n          *piStack_74 = 0;\n          piStack_74[1] = uStack_e8;\n          goto LAB_0004e838;\n        }\nLAB_0004e2d4:\n        FUN_00044db0(&puStack_144);\n        param_4 = puStack_16c;\n      }\n      param_4 = (uint *)((int)param_4 + iVar29);\n      puStack_16c = param_4;\n      if (((int)param_4 < (int)puVar23) ||\n         (iVar30 = iStack_12c, puVar36 = puStack_88, (int)puVar38 < (int)param_4)) break;\n    } while( true );\n  }\nLAB_0004df68:\n  uStack_1e4 = 1;\n  piVar17 = piStack_e0;\n  goto LAB_0004dbbc;\ncode_r0x0004ea7c:\n  uStack_1e4 = uStack_168;\n  piVar17 = piStack_e0;\n  if (uStack_168 == 0xc) goto LAB_0004dbbc;\n  uVar20 = 0x435;\nLAB_0004ea9c:\n  (**(code **)(puVar46 + 0x282f4))\n            (*(int *)(puVar46 + 0x27edc) + 0x2b30,*(int *)(puVar46 + 0x27edc) + 0x2ac0,uVar20,\n             *(int *)(puVar46 + 0x27edc) + 0x3030);\n  uVar6 = extraout_v1;\n  ppuVar24 = &puStack_144;\nLAB_0004eabc:\n  uVar31 = 8;\n  goto LAB_0004dab0;\n}" ({ "{") (declaration "bool bVar1;" (primitive_type "bool") (identifier "bVar1") (; ";")) (declaration "bool bVar2;" (primitive_type "bool") (identifier "bVar2") (; ";")) (declaration "int *piVar3;" (primitive_type "int") (pointer_declarator "*piVar3" (* "*") (identifier "piVar3")) (; ";")) (declaration "bool bVar4;" (primitive_type "bool") (identifier "bVar4") (; ";")) (declaration "bool bVar5;" (primitive_type "bool") (identifier "bVar5") (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "code *pcVar7;" (type_identifier "code") (pointer_declarator "*pcVar7" (* "*") (identifier "pcVar7")) (; ";")) (declaration "code *pcVar8;" (type_identifier "code") (pointer_declarator "*pcVar8" (* "*") (identifier "pcVar8")) (; ";")) (declaration "code *pcVar9;" (type_identifier "code") (pointer_declarator "*pcVar9" (* "*") (identifier "pcVar9")) (; ";")) (declaration "int *piVar10;" (primitive_type "int") (pointer_declarator "*piVar10" (* "*") (identifier "piVar10")) (; ";")) (declaration "uint uVar11;" (type_identifier "uint") (identifier "uVar11") (; ";")) (declaration "uint **ppuVar12;" (type_identifier "uint") (pointer_declarator "**ppuVar12" (* "*") (pointer_declarator "*ppuVar12" (* "*") (identifier "ppuVar12"))) (; ";")) (declaration "int iVar13;" (primitive_type "int") (identifier "iVar13") (; ";")) (declaration "uint uVar14;" (type_identifier "uint") (identifier "uVar14") (; ";")) (declaration "int iVar15;" (primitive_type "int") (identifier "iVar15") (; ";")) (declaration "int iVar16;" (primitive_type "int") (identifier "iVar16") (; ";")) (declaration "int *piVar17;" (primitive_type "int") (pointer_declarator "*piVar17" (* "*") (identifier "piVar17")) (; ";")) (declaration "char cVar21;" (primitive_type "char") (identifier "cVar21") (; ";")) (declaration "int iVar18;" (primitive_type "int") (identifier "iVar18") (; ";")) (declaration "uint uVar19;" (type_identifier "uint") (identifier "uVar19") (; ";")) (declaration "undefined4 uVar20;" (type_identifier "undefined4") (identifier "uVar20") (; ";")) (declaration "bool bVar22;" (primitive_type "bool") (identifier "bVar22") (; ";")) (declaration "uint *puVar23;" (type_identifier "uint") (pointer_declarator "*puVar23" (* "*") (identifier "puVar23")) (; ";")) (declaration "uint extraout_v1;" (type_identifier "uint") (identifier "extraout_v1") (; ";")) (declaration "uint **ppuVar24;" (type_identifier "uint") (pointer_declarator "**ppuVar24" (* "*") (pointer_declarator "*ppuVar24" (* "*") (identifier "ppuVar24"))) (; ";")) (declaration "int iVar25;" (primitive_type "int") (identifier "iVar25") (; ";")) (declaration "int iVar26;" (primitive_type "int") (identifier "iVar26") (; ";")) (declaration "uint uVar27;" (type_identifier "uint") (identifier "uVar27") (; ";")) (declaration "int iVar28;" (primitive_type "int") (identifier "iVar28") (; ";")) (declaration "int iVar29;" (primitive_type "int") (identifier "iVar29") (; ";")) (declaration "int iVar30;" (primitive_type "int") (identifier "iVar30") (; ";")) (declaration "uint uVar31;" (type_identifier "uint") (identifier "uVar31") (; ";")) (declaration "uint *puVar32;" (type_identifier "uint") (pointer_declarator "*puVar32" (* "*") (identifier "puVar32")) (; ";")) (declaration "int *piVar33;" (primitive_type "int") (pointer_declarator "*piVar33" (* "*") (identifier "piVar33")) (; ";")) (declaration "uint uVar34;" (type_identifier "uint") (identifier "uVar34") (; ";")) (declaration "undefined4 *puVar35;" (type_identifier "undefined4") (pointer_declarator "*puVar35" (* "*") (identifier "puVar35")) (; ";")) (declaration "uint *puVar36;" (type_identifier "uint") (pointer_declarator "*puVar36" (* "*") (identifier "puVar36")) (; ";")) (declaration "uint uVar37;" (type_identifier "uint") (identifier "uVar37") (; ";")) (declaration "uint *puVar38;" (type_identifier "uint") (pointer_declarator "*puVar38" (* "*") (identifier "puVar38")) (; ";")) (declaration "uint *puVar39;" (type_identifier "uint") (pointer_declarator "*puVar39" (* "*") (identifier "puVar39")) (; ";")) (declaration "uint uVar40;" (type_identifier "uint") (identifier "uVar40") (; ";")) (declaration "int *unaff_s4;" (primitive_type "int") (pointer_declarator "*unaff_s4" (* "*") (identifier "unaff_s4")) (; ";")) (declaration "uint uVar41;" (type_identifier "uint") (identifier "uVar41") (; ";")) (declaration "int unaff_s5;" (primitive_type "int") (identifier "unaff_s5") (; ";")) (declaration "uint uVar42;" (type_identifier "uint") (identifier "uVar42") (; ";")) (declaration "int unaff_s6;" (primitive_type "int") (identifier "unaff_s6") (; ";")) (declaration "uint *puVar43;" (type_identifier "uint") (pointer_declarator "*puVar43" (* "*") (identifier "puVar43")) (; ";")) (declaration "int iVar44;" (primitive_type "int") (identifier "iVar44") (; ";")) (declaration "uint *unaff_s7;" (type_identifier "uint") (pointer_declarator "*unaff_s7" (* "*") (identifier "unaff_s7")) (; ";")) (declaration "code *pcVar45;" (type_identifier "code") (pointer_declarator "*pcVar45" (* "*") (identifier "pcVar45")) (; ";")) (declaration "undefined *puVar46;" (type_identifier "undefined") (pointer_declarator "*puVar46" (* "*") (identifier "puVar46")) (; ";")) (declaration "int unaff_s8;" (primitive_type "int") (identifier "unaff_s8") (; ";")) (declaration "uint uStack_1f0;" (type_identifier "uint") (identifier "uStack_1f0") (; ";")) (declaration "int *piStack_1ec;" (primitive_type "int") (pointer_declarator "*piStack_1ec" (* "*") (identifier "piStack_1ec")) (; ";")) (declaration "uint uStack_1e4;" (type_identifier "uint") (identifier "uStack_1e4") (; ";")) (declaration "uint *puStack_1e0;" (type_identifier "uint") (pointer_declarator "*puStack_1e0" (* "*") (identifier "puStack_1e0")) (; ";")) (declaration "uint **ppuStack_1dc;" (type_identifier "uint") (pointer_declarator "**ppuStack_1dc" (* "*") (pointer_declarator "*ppuStack_1dc" (* "*") (identifier "ppuStack_1dc"))) (; ";")) (declaration "uint uStack_1d0;" (type_identifier "uint") (identifier "uStack_1d0") (; ";")) (declaration "int iStack_180;" (primitive_type "int") (identifier "iStack_180") (; ";")) (declaration "uint *puStack_16c;" (type_identifier "uint") (pointer_declarator "*puStack_16c" (* "*") (identifier "puStack_16c")) (; ";")) (declaration "uint uStack_168;" (type_identifier "uint") (identifier "uStack_168") (; ";")) (declaration "uint uStack_164;" (type_identifier "uint") (identifier "uStack_164") (; ";")) (declaration "int *piStack_160;" (primitive_type "int") (pointer_declarator "*piStack_160" (* "*") (identifier "piStack_160")) (; ";")) (declaration "int *piStack_15c;" (primitive_type "int") (pointer_declarator "*piStack_15c" (* "*") (identifier "piStack_15c")) (; ";")) (declaration "int iStack_158;" (primitive_type "int") (identifier "iStack_158") (; ";")) (declaration "uint uStack_154;" (type_identifier "uint") (identifier "uStack_154") (; ";")) (declaration "undefined4 uStack_150;" (type_identifier "undefined4") (identifier "uStack_150") (; ";")) (declaration "undefined4 uStack_14c;" (type_identifier "undefined4") (identifier "uStack_14c") (; ";")) (declaration "undefined4 uStack_148;" (type_identifier "undefined4") (identifier "uStack_148") (; ";")) (declaration "uint *puStack_144;" (type_identifier "uint") (pointer_declarator "*puStack_144" (* "*") (identifier "puStack_144")) (; ";")) (declaration "uint *puStack_140;" (type_identifier "uint") (pointer_declarator "*puStack_140" (* "*") (identifier "puStack_140")) (; ";")) (declaration "int *piStack_13c;" (primitive_type "int") (pointer_declarator "*piStack_13c" (* "*") (identifier "piStack_13c")) (; ";")) (declaration "int iStack_138;" (primitive_type "int") (identifier "iStack_138") (; ";")) (declaration "int iStack_12c;" (primitive_type "int") (identifier "iStack_12c") (; ";")) (declaration "uint *puStack_128;" (type_identifier "uint") (pointer_declarator "*puStack_128" (* "*") (identifier "puStack_128")) (; ";")) (declaration "uint *puStack_124;" (type_identifier "uint") (pointer_declarator "*puStack_124" (* "*") (identifier "puStack_124")) (; ";")) (declaration "uint uStack_120;" (type_identifier "uint") (identifier "uStack_120") (; ";")) (declaration "uint uStack_11c;" (type_identifier "uint") (identifier "uStack_11c") (; ";")) (declaration "uint *puStack_118;" (type_identifier "uint") (pointer_declarator "*puStack_118" (* "*") (identifier "puStack_118")) (; ";")) (declaration "uint *puStack_114;" (type_identifier "uint") (pointer_declarator "*puStack_114" (* "*") (identifier "puStack_114")) (; ";")) (declaration "uint *puStack_110;" (type_identifier "uint") (pointer_declarator "*puStack_110" (* "*") (identifier "puStack_110")) (; ";")) (declaration "uint *puStack_10c;" (type_identifier "uint") (pointer_declarator "*puStack_10c" (* "*") (identifier "puStack_10c")) (; ";")) (declaration "undefined4 uStack_108;" (type_identifier "undefined4") (identifier "uStack_108") (; ";")) (declaration "uint *puStack_104;" (type_identifier "uint") (pointer_declarator "*puStack_104" (* "*") (identifier "puStack_104")) (; ";")) (declaration "uint *puStack_100;" (type_identifier "uint") (pointer_declarator "*puStack_100" (* "*") (identifier "puStack_100")) (; ";")) (declaration "byte bStack_fc;" (type_identifier "byte") (identifier "bStack_fc") (; ";")) (declaration "byte bStack_fb;" (type_identifier "byte") (identifier "bStack_fb") (; ";")) (declaration "byte bStack_fa;" (type_identifier "byte") (identifier "bStack_fa") (; ";")) (declaration "byte bStack_f9;" (type_identifier "byte") (identifier "bStack_f9") (; ";")) (declaration "char cStack_f8;" (primitive_type "char") (identifier "cStack_f8") (; ";")) (declaration "byte bStack_f7;" (type_identifier "byte") (identifier "bStack_f7") (; ";")) (declaration "byte bStack_f6;" (type_identifier "byte") (identifier "bStack_f6") (; ";")) (declaration "uint uStack_f4;" (type_identifier "uint") (identifier "uStack_f4") (; ";")) (declaration "uint *puStack_f0;" (type_identifier "uint") (pointer_declarator "*puStack_f0" (* "*") (identifier "puStack_f0")) (; ";")) (declaration "undefined1 *puStack_ec;" (type_identifier "undefined1") (pointer_declarator "*puStack_ec" (* "*") (identifier "puStack_ec")) (; ";")) (declaration "uint uStack_e8;" (type_identifier "uint") (identifier "uStack_e8") (; ";")) (declaration "int iStack_e4;" (primitive_type "int") (identifier "iStack_e4") (; ";")) (declaration "int *piStack_e0;" (primitive_type "int") (pointer_declarator "*piStack_e0" (* "*") (identifier "piStack_e0")) (; ";")) (declaration "int iStack_dc;" (primitive_type "int") (identifier "iStack_dc") (; ";")) (declaration "undefined4 uStack_d8;" (type_identifier "undefined4") (identifier "uStack_d8") (; ";")) (declaration "int iStack_d4;" (primitive_type "int") (identifier "iStack_d4") (; ";")) (declaration "int iStack_d0;" (primitive_type "int") (identifier "iStack_d0") (; ";")) (declaration "int iStack_cc;" (primitive_type "int") (identifier "iStack_cc") (; ";")) (declaration "int iStack_c4;" (primitive_type "int") (identifier "iStack_c4") (; ";")) (declaration "int iStack_c0;" (primitive_type "int") (identifier "iStack_c0") (; ";")) (declaration "int iStack_bc;" (primitive_type "int") (identifier "iStack_bc") (; ";")) (declaration "uint *puStack_b8;" (type_identifier "uint") (pointer_declarator "*puStack_b8" (* "*") (identifier "puStack_b8")) (; ";")) (declaration "uint *puStack_b4;" (type_identifier "uint") (pointer_declarator "*puStack_b4" (* "*") (identifier "puStack_b4")) (; ";")) (declaration "uint *puStack_b0;" (type_identifier "uint") (pointer_declarator "*puStack_b0" (* "*") (identifier "puStack_b0")) (; ";")) (declaration "uint *puStack_ac;" (type_identifier "uint") (pointer_declarator "*puStack_ac" (* "*") (identifier "puStack_ac")) (; ";")) (declaration "int *piStack_a8;" (primitive_type "int") (pointer_declarator "*piStack_a8" (* "*") (identifier "piStack_a8")) (; ";")) (declaration "int iStack_a4;" (primitive_type "int") (identifier "iStack_a4") (; ";")) (declaration "int iStack_a0;" (primitive_type "int") (identifier "iStack_a0") (; ";")) (declaration "uint *puStack_9c;" (type_identifier "uint") (pointer_declarator "*puStack_9c" (* "*") (identifier "puStack_9c")) (; ";")) (declaration "int iStack_98;" (primitive_type "int") (identifier "iStack_98") (; ";")) (declaration "code *pcStack_94;" (type_identifier "code") (pointer_declarator "*pcStack_94" (* "*") (identifier "pcStack_94")) (; ";")) (declaration "uint *puStack_88;" (type_identifier "uint") (pointer_declarator "*puStack_88" (* "*") (identifier "puStack_88")) (; ";")) (declaration "uint *local_80;" (type_identifier "uint") (pointer_declarator "*local_80" (* "*") (identifier "local_80")) (; ";")) (declaration "uint *local_7c;" (type_identifier "uint") (pointer_declarator "*local_7c" (* "*") (identifier "local_7c")) (; ";")) (declaration "uint *local_78;" (type_identifier "uint") (pointer_declarator "*local_78" (* "*") (identifier "local_78")) (; ";")) (declaration "int *piStack_74;" (primitive_type "int") (pointer_declarator "*piStack_74" (* "*") (identifier "piStack_74")) (; ";")) (declaration "int local_64;" (primitive_type "int") (identifier "local_64") (; ";")) (declaration "uint local_38;" (type_identifier "uint") (identifier "local_38") (; ";")) (declaration "undefined4 local_34;" (type_identifier "undefined4") (identifier "local_34") (; ";")) (declaration "undefined4 *local_30;" (type_identifier "undefined4") (pointer_declarator "*local_30" (* "*") (identifier "local_30")) (; ";")) (declaration "uint **local_2c;" (type_identifier "uint") (pointer_declarator "**local_2c" (* "*") (pointer_declarator "*local_2c" (* "*") (identifier "local_2c"))) (; ";")) (expression_statement "puVar46 = PTR___stack_chk_guard_00075be8;" (assignment_expression "puVar46 = PTR___stack_chk_guard_00075be8" (identifier "puVar46") (= "=") (identifier "PTR___stack_chk_guard_00075be8")) (; ";")) (expression_statement "local_38 = 1;" (assignment_expression "local_38 = 1" (identifier "local_38") (= "=") (number_literal "1")) (; ";")) (expression_statement "local_34 = 1;" (assignment_expression "local_34 = 1" (identifier "local_34") (= "=") (number_literal "1")) (; ";")) (expression_statement "local_2c = *(uint ***)PTR___stack_chk_guard_00075be8;" (assignment_expression "local_2c = *(uint ***)PTR___stack_chk_guard_00075be8" (identifier "local_2c") (= "=") (pointer_expression "*(uint ***)PTR___stack_chk_guard_00075be8" (* "*") (cast_expression "(uint ***)PTR___stack_chk_guard_00075be8" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (identifier "PTR___stack_chk_guard_00075be8")))) (; ";")) (expression_statement "puVar36 = (uint *)param_2[3];" (assignment_expression "puVar36 = (uint *)param_2[3]" (identifier "puVar36") (= "=") (cast_expression "(uint *)param_2[3]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_2[3]" (identifier "param_2") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "puVar39 = (uint *)param_2[2];" (assignment_expression "puVar39 = (uint *)param_2[2]" (identifier "puVar39") (= "=") (cast_expression "(uint *)param_2[2]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "puVar23 = param_2;" (assignment_expression "puVar23 = param_2" (identifier "puVar23") (= "=") (identifier "param_2")) (; ";")) (expression_statement "local_30 = (undefined4 *)(*(code *)PTR_malloc_00075b2c)(4);" (assignment_expression "local_30 = (undefined4 *)(*(code *)PTR_malloc_00075b2c)(4)" (identifier "local_30") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR_malloc_00075b2c)(4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_malloc_00075b2c)(4)" (parenthesized_expression "(*(code *)PTR_malloc_00075b2c)" (( "(") (pointer_expression "*(code *)PTR_malloc_00075b2c" (* "*") (cast_expression "(code *)PTR_malloc_00075b2c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_malloc_00075b2c"))) () ")")) (argument_list "(4)" (( "(") (number_literal "4") () ")"))))) (; ";")) (if_statement "if (local_30 == (undefined4 *)0x0) {\n    uVar6 = 0xc;\n  }\n  else {\n    *local_30 = puVar39;\n    pcVar45 = (code *)(PTR_DAT_00075978 + -0x1248);\n    puVar23 = param_2;\n    param_3 = puVar36;\n    param_4 = &local_38;\n    uVar6 = FUN_0004edb8(param_1);\n    if (uVar6 == 0) {\n      local_64 = 0;\n      if (0 < (int)puVar36) {\n        pcVar7 = (code *)(PTR_LAB_00075920 + 0x5610);\n        pcVar8 = (code *)(PTR_LAB_00075920 + 0x33f8);\n        pcVar9 = (code *)(PTR_LAB_00075920 + 0x5230);\n        do {\n          unaff_s7 = (uint *)((int)puVar36 * 4);\n          if (*(int *)(*param_2 + (int)unaff_s7) == 0) {\n            local_64 = local_64 + 1;\n            if ((int)param_1[0x1e] < local_64) goto LAB_0004d6a0;\n          }\n          else {\n            local_64 = 0;\n            if ((int)param_1[0x1e] < 0) {\nLAB_0004d6a0:\n              puVar23 = (uint *)0x0;\n              param_3 = unaff_s7;\n              (*(code *)PTR_memset_00075ad4)();\n              (*(code *)PTR_free_00075bfc)(local_30);\n              uVar6 = 0;\n              goto LAB_0004d644;\n            }\n          }\n          local_34 = 0;\n          unaff_s6 = *(int *)((int)unaff_s7 + (param_1[0x19] - 4));\n          puVar36 = (uint *)((int)puVar36 + -1);\n          if ((unaff_s6 != 0) && (unaff_s4 = (int *)param_1[0x15], 0 < *(int *)(unaff_s6 + 0x14))) {\n            unaff_s5 = 0;\n            do {\n              puVar39 = *(uint **)(*(int *)(unaff_s6 + 0x18) + unaff_s5 * 4);\n              unaff_s8 = (int)puVar39 * 8;\n              iVar29 = *unaff_s4 + unaff_s8;\n              if ((*(uint *)(iVar29 + 4) & 0x800) == 0) {\nLAB_0004d464:\n                iVar29 = FUN_00047bf8(param_1,iVar29,puVar36);\n                if (iVar29 != 0) {\n                  iVar29 = *(int *)(*param_2 + (int)unaff_s7);\n                  if (iVar29 != 0) {\n                    param_3 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc);\n                    iVar29 = 1;\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                }\n              }\n              else {\n                puVar35 = (undefined4 *)param_1[0x15];\n                uVar6 = param_2[3];\n                param_3 = puVar39;\n                param_4 = param_1;\n                local_80 = puVar36;\n                iVar29 = FUN_0004b150(*puVar35,puVar35 + 0x20);\n                if (iVar29 < 1) {\n                  if (iVar29 == 0) {\n                    iVar29 = *unaff_s4;\n                    goto LAB_0004d460;\n                  }\n                }\n                else if ((int)puVar36 + iVar29 <= (int)uVar6) {\n                  iVar30 = *(int *)(*param_2 + ((int)puVar36 + iVar29) * 4);\n                  if (iVar30 != 0) {\n                    param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                  iVar29 = *unaff_s4;\nLAB_0004d460:\n                  iVar29 = iVar29 + unaff_s8;\n                  goto LAB_0004d464;\n                }\nLAB_0004d4b4:\n                if (param_2[5] != 0) {\n                  local_80 = (uint *)((int)puVar36 + iVar29);\n                  param_3 = param_2 + 6;\n                  param_4 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                  local_7c = puVar39;\n                  local_78 = puVar36;\n                  iVar29 = (*pcVar7)(param_1,param_2 + 5);\n                  if (iVar29 != 0) goto LAB_0004d510;\n                }\n                puVar23 = puVar39;\n                iVar29 = (*pcVar8)(&local_38);\n                if (iVar29 == 0) {\n                  uVar6 = 0xc;\n                  goto LAB_0004d62c;\n                }\n              }\nLAB_0004d510:\n              unaff_s5 = unaff_s5 + 1;\n              param_4 = &local_38;\n            } while (unaff_s5 < *(int *)(unaff_s6 + 0x14));\n          }\n          puVar23 = param_2;\n          param_3 = puVar36;\n          param_4 = &local_38;\n          uVar6 = (*pcVar45)(param_1);\n          if (uVar6 != 0) goto LAB_0004d62c;\n        } while (puVar36 != (uint *)0x0);\n      }\n      uVar6 = 0;\n    }\nLAB_0004d62c:\n    (*(code *)PTR_free_00075bfc)(local_30);\n  }" (if "if") (parenthesized_expression "(local_30 == (undefined4 *)0x0)" (( "(") (binary_expression "local_30 == (undefined4 *)0x0" (identifier "local_30") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    uVar6 = 0xc;\n  }" ({ "{") (expression_statement "uVar6 = 0xc;" (assignment_expression "uVar6 = 0xc" (identifier "uVar6") (= "=") (number_literal "0xc")) (; ";")) (} "}")) (else_clause "else {\n    *local_30 = puVar39;\n    pcVar45 = (code *)(PTR_DAT_00075978 + -0x1248);\n    puVar23 = param_2;\n    param_3 = puVar36;\n    param_4 = &local_38;\n    uVar6 = FUN_0004edb8(param_1);\n    if (uVar6 == 0) {\n      local_64 = 0;\n      if (0 < (int)puVar36) {\n        pcVar7 = (code *)(PTR_LAB_00075920 + 0x5610);\n        pcVar8 = (code *)(PTR_LAB_00075920 + 0x33f8);\n        pcVar9 = (code *)(PTR_LAB_00075920 + 0x5230);\n        do {\n          unaff_s7 = (uint *)((int)puVar36 * 4);\n          if (*(int *)(*param_2 + (int)unaff_s7) == 0) {\n            local_64 = local_64 + 1;\n            if ((int)param_1[0x1e] < local_64) goto LAB_0004d6a0;\n          }\n          else {\n            local_64 = 0;\n            if ((int)param_1[0x1e] < 0) {\nLAB_0004d6a0:\n              puVar23 = (uint *)0x0;\n              param_3 = unaff_s7;\n              (*(code *)PTR_memset_00075ad4)();\n              (*(code *)PTR_free_00075bfc)(local_30);\n              uVar6 = 0;\n              goto LAB_0004d644;\n            }\n          }\n          local_34 = 0;\n          unaff_s6 = *(int *)((int)unaff_s7 + (param_1[0x19] - 4));\n          puVar36 = (uint *)((int)puVar36 + -1);\n          if ((unaff_s6 != 0) && (unaff_s4 = (int *)param_1[0x15], 0 < *(int *)(unaff_s6 + 0x14))) {\n            unaff_s5 = 0;\n            do {\n              puVar39 = *(uint **)(*(int *)(unaff_s6 + 0x18) + unaff_s5 * 4);\n              unaff_s8 = (int)puVar39 * 8;\n              iVar29 = *unaff_s4 + unaff_s8;\n              if ((*(uint *)(iVar29 + 4) & 0x800) == 0) {\nLAB_0004d464:\n                iVar29 = FUN_00047bf8(param_1,iVar29,puVar36);\n                if (iVar29 != 0) {\n                  iVar29 = *(int *)(*param_2 + (int)unaff_s7);\n                  if (iVar29 != 0) {\n                    param_3 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc);\n                    iVar29 = 1;\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                }\n              }\n              else {\n                puVar35 = (undefined4 *)param_1[0x15];\n                uVar6 = param_2[3];\n                param_3 = puVar39;\n                param_4 = param_1;\n                local_80 = puVar36;\n                iVar29 = FUN_0004b150(*puVar35,puVar35 + 0x20);\n                if (iVar29 < 1) {\n                  if (iVar29 == 0) {\n                    iVar29 = *unaff_s4;\n                    goto LAB_0004d460;\n                  }\n                }\n                else if ((int)puVar36 + iVar29 <= (int)uVar6) {\n                  iVar30 = *(int *)(*param_2 + ((int)puVar36 + iVar29) * 4);\n                  if (iVar30 != 0) {\n                    param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                  iVar29 = *unaff_s4;\nLAB_0004d460:\n                  iVar29 = iVar29 + unaff_s8;\n                  goto LAB_0004d464;\n                }\nLAB_0004d4b4:\n                if (param_2[5] != 0) {\n                  local_80 = (uint *)((int)puVar36 + iVar29);\n                  param_3 = param_2 + 6;\n                  param_4 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                  local_7c = puVar39;\n                  local_78 = puVar36;\n                  iVar29 = (*pcVar7)(param_1,param_2 + 5);\n                  if (iVar29 != 0) goto LAB_0004d510;\n                }\n                puVar23 = puVar39;\n                iVar29 = (*pcVar8)(&local_38);\n                if (iVar29 == 0) {\n                  uVar6 = 0xc;\n                  goto LAB_0004d62c;\n                }\n              }\nLAB_0004d510:\n              unaff_s5 = unaff_s5 + 1;\n              param_4 = &local_38;\n            } while (unaff_s5 < *(int *)(unaff_s6 + 0x14));\n          }\n          puVar23 = param_2;\n          param_3 = puVar36;\n          param_4 = &local_38;\n          uVar6 = (*pcVar45)(param_1);\n          if (uVar6 != 0) goto LAB_0004d62c;\n        } while (puVar36 != (uint *)0x0);\n      }\n      uVar6 = 0;\n    }\nLAB_0004d62c:\n    (*(code *)PTR_free_00075bfc)(local_30);\n  }" (else "else") (compound_statement "{\n    *local_30 = puVar39;\n    pcVar45 = (code *)(PTR_DAT_00075978 + -0x1248);\n    puVar23 = param_2;\n    param_3 = puVar36;\n    param_4 = &local_38;\n    uVar6 = FUN_0004edb8(param_1);\n    if (uVar6 == 0) {\n      local_64 = 0;\n      if (0 < (int)puVar36) {\n        pcVar7 = (code *)(PTR_LAB_00075920 + 0x5610);\n        pcVar8 = (code *)(PTR_LAB_00075920 + 0x33f8);\n        pcVar9 = (code *)(PTR_LAB_00075920 + 0x5230);\n        do {\n          unaff_s7 = (uint *)((int)puVar36 * 4);\n          if (*(int *)(*param_2 + (int)unaff_s7) == 0) {\n            local_64 = local_64 + 1;\n            if ((int)param_1[0x1e] < local_64) goto LAB_0004d6a0;\n          }\n          else {\n            local_64 = 0;\n            if ((int)param_1[0x1e] < 0) {\nLAB_0004d6a0:\n              puVar23 = (uint *)0x0;\n              param_3 = unaff_s7;\n              (*(code *)PTR_memset_00075ad4)();\n              (*(code *)PTR_free_00075bfc)(local_30);\n              uVar6 = 0;\n              goto LAB_0004d644;\n            }\n          }\n          local_34 = 0;\n          unaff_s6 = *(int *)((int)unaff_s7 + (param_1[0x19] - 4));\n          puVar36 = (uint *)((int)puVar36 + -1);\n          if ((unaff_s6 != 0) && (unaff_s4 = (int *)param_1[0x15], 0 < *(int *)(unaff_s6 + 0x14))) {\n            unaff_s5 = 0;\n            do {\n              puVar39 = *(uint **)(*(int *)(unaff_s6 + 0x18) + unaff_s5 * 4);\n              unaff_s8 = (int)puVar39 * 8;\n              iVar29 = *unaff_s4 + unaff_s8;\n              if ((*(uint *)(iVar29 + 4) & 0x800) == 0) {\nLAB_0004d464:\n                iVar29 = FUN_00047bf8(param_1,iVar29,puVar36);\n                if (iVar29 != 0) {\n                  iVar29 = *(int *)(*param_2 + (int)unaff_s7);\n                  if (iVar29 != 0) {\n                    param_3 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc);\n                    iVar29 = 1;\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                }\n              }\n              else {\n                puVar35 = (undefined4 *)param_1[0x15];\n                uVar6 = param_2[3];\n                param_3 = puVar39;\n                param_4 = param_1;\n                local_80 = puVar36;\n                iVar29 = FUN_0004b150(*puVar35,puVar35 + 0x20);\n                if (iVar29 < 1) {\n                  if (iVar29 == 0) {\n                    iVar29 = *unaff_s4;\n                    goto LAB_0004d460;\n                  }\n                }\n                else if ((int)puVar36 + iVar29 <= (int)uVar6) {\n                  iVar30 = *(int *)(*param_2 + ((int)puVar36 + iVar29) * 4);\n                  if (iVar30 != 0) {\n                    param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                  iVar29 = *unaff_s4;\nLAB_0004d460:\n                  iVar29 = iVar29 + unaff_s8;\n                  goto LAB_0004d464;\n                }\nLAB_0004d4b4:\n                if (param_2[5] != 0) {\n                  local_80 = (uint *)((int)puVar36 + iVar29);\n                  param_3 = param_2 + 6;\n                  param_4 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                  local_7c = puVar39;\n                  local_78 = puVar36;\n                  iVar29 = (*pcVar7)(param_1,param_2 + 5);\n                  if (iVar29 != 0) goto LAB_0004d510;\n                }\n                puVar23 = puVar39;\n                iVar29 = (*pcVar8)(&local_38);\n                if (iVar29 == 0) {\n                  uVar6 = 0xc;\n                  goto LAB_0004d62c;\n                }\n              }\nLAB_0004d510:\n              unaff_s5 = unaff_s5 + 1;\n              param_4 = &local_38;\n            } while (unaff_s5 < *(int *)(unaff_s6 + 0x14));\n          }\n          puVar23 = param_2;\n          param_3 = puVar36;\n          param_4 = &local_38;\n          uVar6 = (*pcVar45)(param_1);\n          if (uVar6 != 0) goto LAB_0004d62c;\n        } while (puVar36 != (uint *)0x0);\n      }\n      uVar6 = 0;\n    }\nLAB_0004d62c:\n    (*(code *)PTR_free_00075bfc)(local_30);\n  }" ({ "{") (expression_statement "*local_30 = puVar39;" (assignment_expression "*local_30 = puVar39" (pointer_expression "*local_30" (* "*") (identifier "local_30")) (= "=") (identifier "puVar39")) (; ";")) (expression_statement "pcVar45 = (code *)(PTR_DAT_00075978 + -0x1248);" (assignment_expression "pcVar45 = (code *)(PTR_DAT_00075978 + -0x1248)" (identifier "pcVar45") (= "=") (cast_expression "(code *)(PTR_DAT_00075978 + -0x1248)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_00075978 + -0x1248)" (( "(") (binary_expression "PTR_DAT_00075978 + -0x1248" (identifier "PTR_DAT_00075978") (+ "+") (number_literal "-0x1248")) () ")")))) (; ";")) (expression_statement "puVar23 = param_2;" (assignment_expression "puVar23 = param_2" (identifier "puVar23") (= "=") (identifier "param_2")) (; ";")) (expression_statement "param_3 = puVar36;" (assignment_expression "param_3 = puVar36" (identifier "param_3") (= "=") (identifier "puVar36")) (; ";")) (expression_statement "param_4 = &local_38;" (assignment_expression "param_4 = &local_38" (identifier "param_4") (= "=") (pointer_expression "&local_38" (& "&") (identifier "local_38"))) (; ";")) (expression_statement "uVar6 = FUN_0004edb8(param_1);" (assignment_expression "uVar6 = FUN_0004edb8(param_1)" (identifier "uVar6") (= "=") (call_expression "FUN_0004edb8(param_1)" (identifier "FUN_0004edb8") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (uVar6 == 0) {\n      local_64 = 0;\n      if (0 < (int)puVar36) {\n        pcVar7 = (code *)(PTR_LAB_00075920 + 0x5610);\n        pcVar8 = (code *)(PTR_LAB_00075920 + 0x33f8);\n        pcVar9 = (code *)(PTR_LAB_00075920 + 0x5230);\n        do {\n          unaff_s7 = (uint *)((int)puVar36 * 4);\n          if (*(int *)(*param_2 + (int)unaff_s7) == 0) {\n            local_64 = local_64 + 1;\n            if ((int)param_1[0x1e] < local_64) goto LAB_0004d6a0;\n          }\n          else {\n            local_64 = 0;\n            if ((int)param_1[0x1e] < 0) {\nLAB_0004d6a0:\n              puVar23 = (uint *)0x0;\n              param_3 = unaff_s7;\n              (*(code *)PTR_memset_00075ad4)();\n              (*(code *)PTR_free_00075bfc)(local_30);\n              uVar6 = 0;\n              goto LAB_0004d644;\n            }\n          }\n          local_34 = 0;\n          unaff_s6 = *(int *)((int)unaff_s7 + (param_1[0x19] - 4));\n          puVar36 = (uint *)((int)puVar36 + -1);\n          if ((unaff_s6 != 0) && (unaff_s4 = (int *)param_1[0x15], 0 < *(int *)(unaff_s6 + 0x14))) {\n            unaff_s5 = 0;\n            do {\n              puVar39 = *(uint **)(*(int *)(unaff_s6 + 0x18) + unaff_s5 * 4);\n              unaff_s8 = (int)puVar39 * 8;\n              iVar29 = *unaff_s4 + unaff_s8;\n              if ((*(uint *)(iVar29 + 4) & 0x800) == 0) {\nLAB_0004d464:\n                iVar29 = FUN_00047bf8(param_1,iVar29,puVar36);\n                if (iVar29 != 0) {\n                  iVar29 = *(int *)(*param_2 + (int)unaff_s7);\n                  if (iVar29 != 0) {\n                    param_3 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc);\n                    iVar29 = 1;\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                }\n              }\n              else {\n                puVar35 = (undefined4 *)param_1[0x15];\n                uVar6 = param_2[3];\n                param_3 = puVar39;\n                param_4 = param_1;\n                local_80 = puVar36;\n                iVar29 = FUN_0004b150(*puVar35,puVar35 + 0x20);\n                if (iVar29 < 1) {\n                  if (iVar29 == 0) {\n                    iVar29 = *unaff_s4;\n                    goto LAB_0004d460;\n                  }\n                }\n                else if ((int)puVar36 + iVar29 <= (int)uVar6) {\n                  iVar30 = *(int *)(*param_2 + ((int)puVar36 + iVar29) * 4);\n                  if (iVar30 != 0) {\n                    param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                  iVar29 = *unaff_s4;\nLAB_0004d460:\n                  iVar29 = iVar29 + unaff_s8;\n                  goto LAB_0004d464;\n                }\nLAB_0004d4b4:\n                if (param_2[5] != 0) {\n                  local_80 = (uint *)((int)puVar36 + iVar29);\n                  param_3 = param_2 + 6;\n                  param_4 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                  local_7c = puVar39;\n                  local_78 = puVar36;\n                  iVar29 = (*pcVar7)(param_1,param_2 + 5);\n                  if (iVar29 != 0) goto LAB_0004d510;\n                }\n                puVar23 = puVar39;\n                iVar29 = (*pcVar8)(&local_38);\n                if (iVar29 == 0) {\n                  uVar6 = 0xc;\n                  goto LAB_0004d62c;\n                }\n              }\nLAB_0004d510:\n              unaff_s5 = unaff_s5 + 1;\n              param_4 = &local_38;\n            } while (unaff_s5 < *(int *)(unaff_s6 + 0x14));\n          }\n          puVar23 = param_2;\n          param_3 = puVar36;\n          param_4 = &local_38;\n          uVar6 = (*pcVar45)(param_1);\n          if (uVar6 != 0) goto LAB_0004d62c;\n        } while (puVar36 != (uint *)0x0);\n      }\n      uVar6 = 0;\n    }" (if "if") (parenthesized_expression "(uVar6 == 0)" (( "(") (binary_expression "uVar6 == 0" (identifier "uVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      local_64 = 0;\n      if (0 < (int)puVar36) {\n        pcVar7 = (code *)(PTR_LAB_00075920 + 0x5610);\n        pcVar8 = (code *)(PTR_LAB_00075920 + 0x33f8);\n        pcVar9 = (code *)(PTR_LAB_00075920 + 0x5230);\n        do {\n          unaff_s7 = (uint *)((int)puVar36 * 4);\n          if (*(int *)(*param_2 + (int)unaff_s7) == 0) {\n            local_64 = local_64 + 1;\n            if ((int)param_1[0x1e] < local_64) goto LAB_0004d6a0;\n          }\n          else {\n            local_64 = 0;\n            if ((int)param_1[0x1e] < 0) {\nLAB_0004d6a0:\n              puVar23 = (uint *)0x0;\n              param_3 = unaff_s7;\n              (*(code *)PTR_memset_00075ad4)();\n              (*(code *)PTR_free_00075bfc)(local_30);\n              uVar6 = 0;\n              goto LAB_0004d644;\n            }\n          }\n          local_34 = 0;\n          unaff_s6 = *(int *)((int)unaff_s7 + (param_1[0x19] - 4));\n          puVar36 = (uint *)((int)puVar36 + -1);\n          if ((unaff_s6 != 0) && (unaff_s4 = (int *)param_1[0x15], 0 < *(int *)(unaff_s6 + 0x14))) {\n            unaff_s5 = 0;\n            do {\n              puVar39 = *(uint **)(*(int *)(unaff_s6 + 0x18) + unaff_s5 * 4);\n              unaff_s8 = (int)puVar39 * 8;\n              iVar29 = *unaff_s4 + unaff_s8;\n              if ((*(uint *)(iVar29 + 4) & 0x800) == 0) {\nLAB_0004d464:\n                iVar29 = FUN_00047bf8(param_1,iVar29,puVar36);\n                if (iVar29 != 0) {\n                  iVar29 = *(int *)(*param_2 + (int)unaff_s7);\n                  if (iVar29 != 0) {\n                    param_3 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc);\n                    iVar29 = 1;\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                }\n              }\n              else {\n                puVar35 = (undefined4 *)param_1[0x15];\n                uVar6 = param_2[3];\n                param_3 = puVar39;\n                param_4 = param_1;\n                local_80 = puVar36;\n                iVar29 = FUN_0004b150(*puVar35,puVar35 + 0x20);\n                if (iVar29 < 1) {\n                  if (iVar29 == 0) {\n                    iVar29 = *unaff_s4;\n                    goto LAB_0004d460;\n                  }\n                }\n                else if ((int)puVar36 + iVar29 <= (int)uVar6) {\n                  iVar30 = *(int *)(*param_2 + ((int)puVar36 + iVar29) * 4);\n                  if (iVar30 != 0) {\n                    param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                  iVar29 = *unaff_s4;\nLAB_0004d460:\n                  iVar29 = iVar29 + unaff_s8;\n                  goto LAB_0004d464;\n                }\nLAB_0004d4b4:\n                if (param_2[5] != 0) {\n                  local_80 = (uint *)((int)puVar36 + iVar29);\n                  param_3 = param_2 + 6;\n                  param_4 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                  local_7c = puVar39;\n                  local_78 = puVar36;\n                  iVar29 = (*pcVar7)(param_1,param_2 + 5);\n                  if (iVar29 != 0) goto LAB_0004d510;\n                }\n                puVar23 = puVar39;\n                iVar29 = (*pcVar8)(&local_38);\n                if (iVar29 == 0) {\n                  uVar6 = 0xc;\n                  goto LAB_0004d62c;\n                }\n              }\nLAB_0004d510:\n              unaff_s5 = unaff_s5 + 1;\n              param_4 = &local_38;\n            } while (unaff_s5 < *(int *)(unaff_s6 + 0x14));\n          }\n          puVar23 = param_2;\n          param_3 = puVar36;\n          param_4 = &local_38;\n          uVar6 = (*pcVar45)(param_1);\n          if (uVar6 != 0) goto LAB_0004d62c;\n        } while (puVar36 != (uint *)0x0);\n      }\n      uVar6 = 0;\n    }" ({ "{") (expression_statement "local_64 = 0;" (assignment_expression "local_64 = 0" (identifier "local_64") (= "=") (number_literal "0")) (; ";")) (if_statement "if (0 < (int)puVar36) {\n        pcVar7 = (code *)(PTR_LAB_00075920 + 0x5610);\n        pcVar8 = (code *)(PTR_LAB_00075920 + 0x33f8);\n        pcVar9 = (code *)(PTR_LAB_00075920 + 0x5230);\n        do {\n          unaff_s7 = (uint *)((int)puVar36 * 4);\n          if (*(int *)(*param_2 + (int)unaff_s7) == 0) {\n            local_64 = local_64 + 1;\n            if ((int)param_1[0x1e] < local_64) goto LAB_0004d6a0;\n          }\n          else {\n            local_64 = 0;\n            if ((int)param_1[0x1e] < 0) {\nLAB_0004d6a0:\n              puVar23 = (uint *)0x0;\n              param_3 = unaff_s7;\n              (*(code *)PTR_memset_00075ad4)();\n              (*(code *)PTR_free_00075bfc)(local_30);\n              uVar6 = 0;\n              goto LAB_0004d644;\n            }\n          }\n          local_34 = 0;\n          unaff_s6 = *(int *)((int)unaff_s7 + (param_1[0x19] - 4));\n          puVar36 = (uint *)((int)puVar36 + -1);\n          if ((unaff_s6 != 0) && (unaff_s4 = (int *)param_1[0x15], 0 < *(int *)(unaff_s6 + 0x14))) {\n            unaff_s5 = 0;\n            do {\n              puVar39 = *(uint **)(*(int *)(unaff_s6 + 0x18) + unaff_s5 * 4);\n              unaff_s8 = (int)puVar39 * 8;\n              iVar29 = *unaff_s4 + unaff_s8;\n              if ((*(uint *)(iVar29 + 4) & 0x800) == 0) {\nLAB_0004d464:\n                iVar29 = FUN_00047bf8(param_1,iVar29,puVar36);\n                if (iVar29 != 0) {\n                  iVar29 = *(int *)(*param_2 + (int)unaff_s7);\n                  if (iVar29 != 0) {\n                    param_3 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc);\n                    iVar29 = 1;\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                }\n              }\n              else {\n                puVar35 = (undefined4 *)param_1[0x15];\n                uVar6 = param_2[3];\n                param_3 = puVar39;\n                param_4 = param_1;\n                local_80 = puVar36;\n                iVar29 = FUN_0004b150(*puVar35,puVar35 + 0x20);\n                if (iVar29 < 1) {\n                  if (iVar29 == 0) {\n                    iVar29 = *unaff_s4;\n                    goto LAB_0004d460;\n                  }\n                }\n                else if ((int)puVar36 + iVar29 <= (int)uVar6) {\n                  iVar30 = *(int *)(*param_2 + ((int)puVar36 + iVar29) * 4);\n                  if (iVar30 != 0) {\n                    param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                  iVar29 = *unaff_s4;\nLAB_0004d460:\n                  iVar29 = iVar29 + unaff_s8;\n                  goto LAB_0004d464;\n                }\nLAB_0004d4b4:\n                if (param_2[5] != 0) {\n                  local_80 = (uint *)((int)puVar36 + iVar29);\n                  param_3 = param_2 + 6;\n                  param_4 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                  local_7c = puVar39;\n                  local_78 = puVar36;\n                  iVar29 = (*pcVar7)(param_1,param_2 + 5);\n                  if (iVar29 != 0) goto LAB_0004d510;\n                }\n                puVar23 = puVar39;\n                iVar29 = (*pcVar8)(&local_38);\n                if (iVar29 == 0) {\n                  uVar6 = 0xc;\n                  goto LAB_0004d62c;\n                }\n              }\nLAB_0004d510:\n              unaff_s5 = unaff_s5 + 1;\n              param_4 = &local_38;\n            } while (unaff_s5 < *(int *)(unaff_s6 + 0x14));\n          }\n          puVar23 = param_2;\n          param_3 = puVar36;\n          param_4 = &local_38;\n          uVar6 = (*pcVar45)(param_1);\n          if (uVar6 != 0) goto LAB_0004d62c;\n        } while (puVar36 != (uint *)0x0);\n      }" (if "if") (parenthesized_expression "(0 < (int)puVar36)" (( "(") (binary_expression "0 < (int)puVar36" (number_literal "0") (< "<") (cast_expression "(int)puVar36" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar36"))) () ")")) (compound_statement "{\n        pcVar7 = (code *)(PTR_LAB_00075920 + 0x5610);\n        pcVar8 = (code *)(PTR_LAB_00075920 + 0x33f8);\n        pcVar9 = (code *)(PTR_LAB_00075920 + 0x5230);\n        do {\n          unaff_s7 = (uint *)((int)puVar36 * 4);\n          if (*(int *)(*param_2 + (int)unaff_s7) == 0) {\n            local_64 = local_64 + 1;\n            if ((int)param_1[0x1e] < local_64) goto LAB_0004d6a0;\n          }\n          else {\n            local_64 = 0;\n            if ((int)param_1[0x1e] < 0) {\nLAB_0004d6a0:\n              puVar23 = (uint *)0x0;\n              param_3 = unaff_s7;\n              (*(code *)PTR_memset_00075ad4)();\n              (*(code *)PTR_free_00075bfc)(local_30);\n              uVar6 = 0;\n              goto LAB_0004d644;\n            }\n          }\n          local_34 = 0;\n          unaff_s6 = *(int *)((int)unaff_s7 + (param_1[0x19] - 4));\n          puVar36 = (uint *)((int)puVar36 + -1);\n          if ((unaff_s6 != 0) && (unaff_s4 = (int *)param_1[0x15], 0 < *(int *)(unaff_s6 + 0x14))) {\n            unaff_s5 = 0;\n            do {\n              puVar39 = *(uint **)(*(int *)(unaff_s6 + 0x18) + unaff_s5 * 4);\n              unaff_s8 = (int)puVar39 * 8;\n              iVar29 = *unaff_s4 + unaff_s8;\n              if ((*(uint *)(iVar29 + 4) & 0x800) == 0) {\nLAB_0004d464:\n                iVar29 = FUN_00047bf8(param_1,iVar29,puVar36);\n                if (iVar29 != 0) {\n                  iVar29 = *(int *)(*param_2 + (int)unaff_s7);\n                  if (iVar29 != 0) {\n                    param_3 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc);\n                    iVar29 = 1;\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                }\n              }\n              else {\n                puVar35 = (undefined4 *)param_1[0x15];\n                uVar6 = param_2[3];\n                param_3 = puVar39;\n                param_4 = param_1;\n                local_80 = puVar36;\n                iVar29 = FUN_0004b150(*puVar35,puVar35 + 0x20);\n                if (iVar29 < 1) {\n                  if (iVar29 == 0) {\n                    iVar29 = *unaff_s4;\n                    goto LAB_0004d460;\n                  }\n                }\n                else if ((int)puVar36 + iVar29 <= (int)uVar6) {\n                  iVar30 = *(int *)(*param_2 + ((int)puVar36 + iVar29) * 4);\n                  if (iVar30 != 0) {\n                    param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                  iVar29 = *unaff_s4;\nLAB_0004d460:\n                  iVar29 = iVar29 + unaff_s8;\n                  goto LAB_0004d464;\n                }\nLAB_0004d4b4:\n                if (param_2[5] != 0) {\n                  local_80 = (uint *)((int)puVar36 + iVar29);\n                  param_3 = param_2 + 6;\n                  param_4 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                  local_7c = puVar39;\n                  local_78 = puVar36;\n                  iVar29 = (*pcVar7)(param_1,param_2 + 5);\n                  if (iVar29 != 0) goto LAB_0004d510;\n                }\n                puVar23 = puVar39;\n                iVar29 = (*pcVar8)(&local_38);\n                if (iVar29 == 0) {\n                  uVar6 = 0xc;\n                  goto LAB_0004d62c;\n                }\n              }\nLAB_0004d510:\n              unaff_s5 = unaff_s5 + 1;\n              param_4 = &local_38;\n            } while (unaff_s5 < *(int *)(unaff_s6 + 0x14));\n          }\n          puVar23 = param_2;\n          param_3 = puVar36;\n          param_4 = &local_38;\n          uVar6 = (*pcVar45)(param_1);\n          if (uVar6 != 0) goto LAB_0004d62c;\n        } while (puVar36 != (uint *)0x0);\n      }" ({ "{") (expression_statement "pcVar7 = (code *)(PTR_LAB_00075920 + 0x5610);" (assignment_expression "pcVar7 = (code *)(PTR_LAB_00075920 + 0x5610)" (identifier "pcVar7") (= "=") (cast_expression "(code *)(PTR_LAB_00075920 + 0x5610)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_00075920 + 0x5610)" (( "(") (binary_expression "PTR_LAB_00075920 + 0x5610" (identifier "PTR_LAB_00075920") (+ "+") (number_literal "0x5610")) () ")")))) (; ";")) (expression_statement "pcVar8 = (code *)(PTR_LAB_00075920 + 0x33f8);" (assignment_expression "pcVar8 = (code *)(PTR_LAB_00075920 + 0x33f8)" (identifier "pcVar8") (= "=") (cast_expression "(code *)(PTR_LAB_00075920 + 0x33f8)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_00075920 + 0x33f8)" (( "(") (binary_expression "PTR_LAB_00075920 + 0x33f8" (identifier "PTR_LAB_00075920") (+ "+") (number_literal "0x33f8")) () ")")))) (; ";")) (expression_statement "pcVar9 = (code *)(PTR_LAB_00075920 + 0x5230);" (assignment_expression "pcVar9 = (code *)(PTR_LAB_00075920 + 0x5230)" (identifier "pcVar9") (= "=") (cast_expression "(code *)(PTR_LAB_00075920 + 0x5230)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_00075920 + 0x5230)" (( "(") (binary_expression "PTR_LAB_00075920 + 0x5230" (identifier "PTR_LAB_00075920") (+ "+") (number_literal "0x5230")) () ")")))) (; ";")) (do_statement "do {\n          unaff_s7 = (uint *)((int)puVar36 * 4);\n          if (*(int *)(*param_2 + (int)unaff_s7) == 0) {\n            local_64 = local_64 + 1;\n            if ((int)param_1[0x1e] < local_64) goto LAB_0004d6a0;\n          }\n          else {\n            local_64 = 0;\n            if ((int)param_1[0x1e] < 0) {\nLAB_0004d6a0:\n              puVar23 = (uint *)0x0;\n              param_3 = unaff_s7;\n              (*(code *)PTR_memset_00075ad4)();\n              (*(code *)PTR_free_00075bfc)(local_30);\n              uVar6 = 0;\n              goto LAB_0004d644;\n            }\n          }\n          local_34 = 0;\n          unaff_s6 = *(int *)((int)unaff_s7 + (param_1[0x19] - 4));\n          puVar36 = (uint *)((int)puVar36 + -1);\n          if ((unaff_s6 != 0) && (unaff_s4 = (int *)param_1[0x15], 0 < *(int *)(unaff_s6 + 0x14))) {\n            unaff_s5 = 0;\n            do {\n              puVar39 = *(uint **)(*(int *)(unaff_s6 + 0x18) + unaff_s5 * 4);\n              unaff_s8 = (int)puVar39 * 8;\n              iVar29 = *unaff_s4 + unaff_s8;\n              if ((*(uint *)(iVar29 + 4) & 0x800) == 0) {\nLAB_0004d464:\n                iVar29 = FUN_00047bf8(param_1,iVar29,puVar36);\n                if (iVar29 != 0) {\n                  iVar29 = *(int *)(*param_2 + (int)unaff_s7);\n                  if (iVar29 != 0) {\n                    param_3 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc);\n                    iVar29 = 1;\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                }\n              }\n              else {\n                puVar35 = (undefined4 *)param_1[0x15];\n                uVar6 = param_2[3];\n                param_3 = puVar39;\n                param_4 = param_1;\n                local_80 = puVar36;\n                iVar29 = FUN_0004b150(*puVar35,puVar35 + 0x20);\n                if (iVar29 < 1) {\n                  if (iVar29 == 0) {\n                    iVar29 = *unaff_s4;\n                    goto LAB_0004d460;\n                  }\n                }\n                else if ((int)puVar36 + iVar29 <= (int)uVar6) {\n                  iVar30 = *(int *)(*param_2 + ((int)puVar36 + iVar29) * 4);\n                  if (iVar30 != 0) {\n                    param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                  iVar29 = *unaff_s4;\nLAB_0004d460:\n                  iVar29 = iVar29 + unaff_s8;\n                  goto LAB_0004d464;\n                }\nLAB_0004d4b4:\n                if (param_2[5] != 0) {\n                  local_80 = (uint *)((int)puVar36 + iVar29);\n                  param_3 = param_2 + 6;\n                  param_4 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                  local_7c = puVar39;\n                  local_78 = puVar36;\n                  iVar29 = (*pcVar7)(param_1,param_2 + 5);\n                  if (iVar29 != 0) goto LAB_0004d510;\n                }\n                puVar23 = puVar39;\n                iVar29 = (*pcVar8)(&local_38);\n                if (iVar29 == 0) {\n                  uVar6 = 0xc;\n                  goto LAB_0004d62c;\n                }\n              }\nLAB_0004d510:\n              unaff_s5 = unaff_s5 + 1;\n              param_4 = &local_38;\n            } while (unaff_s5 < *(int *)(unaff_s6 + 0x14));\n          }\n          puVar23 = param_2;\n          param_3 = puVar36;\n          param_4 = &local_38;\n          uVar6 = (*pcVar45)(param_1);\n          if (uVar6 != 0) goto LAB_0004d62c;\n        } while (puVar36 != (uint *)0x0);" (do "do") (compound_statement "{\n          unaff_s7 = (uint *)((int)puVar36 * 4);\n          if (*(int *)(*param_2 + (int)unaff_s7) == 0) {\n            local_64 = local_64 + 1;\n            if ((int)param_1[0x1e] < local_64) goto LAB_0004d6a0;\n          }\n          else {\n            local_64 = 0;\n            if ((int)param_1[0x1e] < 0) {\nLAB_0004d6a0:\n              puVar23 = (uint *)0x0;\n              param_3 = unaff_s7;\n              (*(code *)PTR_memset_00075ad4)();\n              (*(code *)PTR_free_00075bfc)(local_30);\n              uVar6 = 0;\n              goto LAB_0004d644;\n            }\n          }\n          local_34 = 0;\n          unaff_s6 = *(int *)((int)unaff_s7 + (param_1[0x19] - 4));\n          puVar36 = (uint *)((int)puVar36 + -1);\n          if ((unaff_s6 != 0) && (unaff_s4 = (int *)param_1[0x15], 0 < *(int *)(unaff_s6 + 0x14))) {\n            unaff_s5 = 0;\n            do {\n              puVar39 = *(uint **)(*(int *)(unaff_s6 + 0x18) + unaff_s5 * 4);\n              unaff_s8 = (int)puVar39 * 8;\n              iVar29 = *unaff_s4 + unaff_s8;\n              if ((*(uint *)(iVar29 + 4) & 0x800) == 0) {\nLAB_0004d464:\n                iVar29 = FUN_00047bf8(param_1,iVar29,puVar36);\n                if (iVar29 != 0) {\n                  iVar29 = *(int *)(*param_2 + (int)unaff_s7);\n                  if (iVar29 != 0) {\n                    param_3 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc);\n                    iVar29 = 1;\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                }\n              }\n              else {\n                puVar35 = (undefined4 *)param_1[0x15];\n                uVar6 = param_2[3];\n                param_3 = puVar39;\n                param_4 = param_1;\n                local_80 = puVar36;\n                iVar29 = FUN_0004b150(*puVar35,puVar35 + 0x20);\n                if (iVar29 < 1) {\n                  if (iVar29 == 0) {\n                    iVar29 = *unaff_s4;\n                    goto LAB_0004d460;\n                  }\n                }\n                else if ((int)puVar36 + iVar29 <= (int)uVar6) {\n                  iVar30 = *(int *)(*param_2 + ((int)puVar36 + iVar29) * 4);\n                  if (iVar30 != 0) {\n                    param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                  iVar29 = *unaff_s4;\nLAB_0004d460:\n                  iVar29 = iVar29 + unaff_s8;\n                  goto LAB_0004d464;\n                }\nLAB_0004d4b4:\n                if (param_2[5] != 0) {\n                  local_80 = (uint *)((int)puVar36 + iVar29);\n                  param_3 = param_2 + 6;\n                  param_4 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                  local_7c = puVar39;\n                  local_78 = puVar36;\n                  iVar29 = (*pcVar7)(param_1,param_2 + 5);\n                  if (iVar29 != 0) goto LAB_0004d510;\n                }\n                puVar23 = puVar39;\n                iVar29 = (*pcVar8)(&local_38);\n                if (iVar29 == 0) {\n                  uVar6 = 0xc;\n                  goto LAB_0004d62c;\n                }\n              }\nLAB_0004d510:\n              unaff_s5 = unaff_s5 + 1;\n              param_4 = &local_38;\n            } while (unaff_s5 < *(int *)(unaff_s6 + 0x14));\n          }\n          puVar23 = param_2;\n          param_3 = puVar36;\n          param_4 = &local_38;\n          uVar6 = (*pcVar45)(param_1);\n          if (uVar6 != 0) goto LAB_0004d62c;\n        }" ({ "{") (expression_statement "unaff_s7 = (uint *)((int)puVar36 * 4);" (assignment_expression "unaff_s7 = (uint *)((int)puVar36 * 4)" (identifier "unaff_s7") (= "=") (cast_expression "(uint *)((int)puVar36 * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar36 * 4)" (( "(") (binary_expression "(int)puVar36 * 4" (cast_expression "(int)puVar36" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar36")) (* "*") (number_literal "4")) () ")")))) (; ";")) (if_statement "if (*(int *)(*param_2 + (int)unaff_s7) == 0) {\n            local_64 = local_64 + 1;\n            if ((int)param_1[0x1e] < local_64) goto LAB_0004d6a0;\n          }\n          else {\n            local_64 = 0;\n            if ((int)param_1[0x1e] < 0) {\nLAB_0004d6a0:\n              puVar23 = (uint *)0x0;\n              param_3 = unaff_s7;\n              (*(code *)PTR_memset_00075ad4)();\n              (*(code *)PTR_free_00075bfc)(local_30);\n              uVar6 = 0;\n              goto LAB_0004d644;\n            }\n          }" (if "if") (parenthesized_expression "(*(int *)(*param_2 + (int)unaff_s7) == 0)" (( "(") (binary_expression "*(int *)(*param_2 + (int)unaff_s7) == 0" (pointer_expression "*(int *)(*param_2 + (int)unaff_s7)" (* "*") (cast_expression "(int *)(*param_2 + (int)unaff_s7)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_2 + (int)unaff_s7)" (( "(") (binary_expression "*param_2 + (int)unaff_s7" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (+ "+") (cast_expression "(int)unaff_s7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s7"))) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            local_64 = local_64 + 1;\n            if ((int)param_1[0x1e] < local_64) goto LAB_0004d6a0;\n          }" ({ "{") (expression_statement "local_64 = local_64 + 1;" (assignment_expression "local_64 = local_64 + 1" (identifier "local_64") (= "=") (binary_expression "local_64 + 1" (identifier "local_64") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if ((int)param_1[0x1e] < local_64) goto LAB_0004d6a0;" (if "if") (parenthesized_expression "((int)param_1[0x1e] < local_64)" (( "(") (binary_expression "(int)param_1[0x1e] < local_64" (cast_expression "(int)param_1[0x1e]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_1[0x1e]" (identifier "param_1") ([ "[") (number_literal "0x1e") (] "]"))) (< "<") (identifier "local_64")) () ")")) (goto_statement "goto LAB_0004d6a0;" (goto "goto") (statement_identifier "LAB_0004d6a0") (; ";"))) (} "}")) (else_clause "else {\n            local_64 = 0;\n            if ((int)param_1[0x1e] < 0) {\nLAB_0004d6a0:\n              puVar23 = (uint *)0x0;\n              param_3 = unaff_s7;\n              (*(code *)PTR_memset_00075ad4)();\n              (*(code *)PTR_free_00075bfc)(local_30);\n              uVar6 = 0;\n              goto LAB_0004d644;\n            }\n          }" (else "else") (compound_statement "{\n            local_64 = 0;\n            if ((int)param_1[0x1e] < 0) {\nLAB_0004d6a0:\n              puVar23 = (uint *)0x0;\n              param_3 = unaff_s7;\n              (*(code *)PTR_memset_00075ad4)();\n              (*(code *)PTR_free_00075bfc)(local_30);\n              uVar6 = 0;\n              goto LAB_0004d644;\n            }\n          }" ({ "{") (expression_statement "local_64 = 0;" (assignment_expression "local_64 = 0" (identifier "local_64") (= "=") (number_literal "0")) (; ";")) (if_statement "if ((int)param_1[0x1e] < 0) {\nLAB_0004d6a0:\n              puVar23 = (uint *)0x0;\n              param_3 = unaff_s7;\n              (*(code *)PTR_memset_00075ad4)();\n              (*(code *)PTR_free_00075bfc)(local_30);\n              uVar6 = 0;\n              goto LAB_0004d644;\n            }" (if "if") (parenthesized_expression "((int)param_1[0x1e] < 0)" (( "(") (binary_expression "(int)param_1[0x1e] < 0" (cast_expression "(int)param_1[0x1e]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_1[0x1e]" (identifier "param_1") ([ "[") (number_literal "0x1e") (] "]"))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0004d6a0:\n              puVar23 = (uint *)0x0;\n              param_3 = unaff_s7;\n              (*(code *)PTR_memset_00075ad4)();\n              (*(code *)PTR_free_00075bfc)(local_30);\n              uVar6 = 0;\n              goto LAB_0004d644;\n            }" ({ "{") (labeled_statement "LAB_0004d6a0:\n              puVar23 = (uint *)0x0;" (statement_identifier "LAB_0004d6a0") (: ":") (expression_statement "puVar23 = (uint *)0x0;" (assignment_expression "puVar23 = (uint *)0x0" (identifier "puVar23") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";"))) (expression_statement "param_3 = unaff_s7;" (assignment_expression "param_3 = unaff_s7" (identifier "param_3") (= "=") (identifier "unaff_s7")) (; ";")) (expression_statement "(*(code *)PTR_memset_00075ad4)();" (call_expression "(*(code *)PTR_memset_00075ad4)()" (parenthesized_expression "(*(code *)PTR_memset_00075ad4)" (( "(") (pointer_expression "*(code *)PTR_memset_00075ad4" (* "*") (cast_expression "(code *)PTR_memset_00075ad4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memset_00075ad4"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_free_00075bfc)(local_30);" (call_expression "(*(code *)PTR_free_00075bfc)(local_30)" (parenthesized_expression "(*(code *)PTR_free_00075bfc)" (( "(") (pointer_expression "*(code *)PTR_free_00075bfc" (* "*") (cast_expression "(code *)PTR_free_00075bfc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_00075bfc"))) () ")")) (argument_list "(local_30)" (( "(") (identifier "local_30") () ")"))) (; ";")) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" (identifier "uVar6") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0004d644;" (goto "goto") (statement_identifier "LAB_0004d644") (; ";")) (} "}"))) (} "}")))) (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" (identifier "local_34") (= "=") (number_literal "0")) (; ";")) (expression_statement "unaff_s6 = *(int *)((int)unaff_s7 + (param_1[0x19] - 4));" (assignment_expression "unaff_s6 = *(int *)((int)unaff_s7 + (param_1[0x19] - 4))" (identifier "unaff_s6") (= "=") (pointer_expression "*(int *)((int)unaff_s7 + (param_1[0x19] - 4))" (* "*") (cast_expression "(int *)((int)unaff_s7 + (param_1[0x19] - 4))" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)unaff_s7 + (param_1[0x19] - 4))" (( "(") (binary_expression "(int)unaff_s7 + (param_1[0x19] - 4)" (cast_expression "(int)unaff_s7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s7")) (+ "+") (parenthesized_expression "(param_1[0x19] - 4)" (( "(") (binary_expression "param_1[0x19] - 4" (subscript_expression "param_1[0x19]" (identifier "param_1") ([ "[") (number_literal "0x19") (] "]")) (- "-") (number_literal "4")) () ")"))) () ")"))))) (; ";")) (expression_statement "puVar36 = (uint *)((int)puVar36 + -1);" (assignment_expression "puVar36 = (uint *)((int)puVar36 + -1)" (identifier "puVar36") (= "=") (cast_expression "(uint *)((int)puVar36 + -1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar36 + -1)" (( "(") (binary_expression "(int)puVar36 + -1" (cast_expression "(int)puVar36" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar36")) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (if_statement "if ((unaff_s6 != 0) && (unaff_s4 = (int *)param_1[0x15], 0 < *(int *)(unaff_s6 + 0x14))) {\n            unaff_s5 = 0;\n            do {\n              puVar39 = *(uint **)(*(int *)(unaff_s6 + 0x18) + unaff_s5 * 4);\n              unaff_s8 = (int)puVar39 * 8;\n              iVar29 = *unaff_s4 + unaff_s8;\n              if ((*(uint *)(iVar29 + 4) & 0x800) == 0) {\nLAB_0004d464:\n                iVar29 = FUN_00047bf8(param_1,iVar29,puVar36);\n                if (iVar29 != 0) {\n                  iVar29 = *(int *)(*param_2 + (int)unaff_s7);\n                  if (iVar29 != 0) {\n                    param_3 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc);\n                    iVar29 = 1;\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                }\n              }\n              else {\n                puVar35 = (undefined4 *)param_1[0x15];\n                uVar6 = param_2[3];\n                param_3 = puVar39;\n                param_4 = param_1;\n                local_80 = puVar36;\n                iVar29 = FUN_0004b150(*puVar35,puVar35 + 0x20);\n                if (iVar29 < 1) {\n                  if (iVar29 == 0) {\n                    iVar29 = *unaff_s4;\n                    goto LAB_0004d460;\n                  }\n                }\n                else if ((int)puVar36 + iVar29 <= (int)uVar6) {\n                  iVar30 = *(int *)(*param_2 + ((int)puVar36 + iVar29) * 4);\n                  if (iVar30 != 0) {\n                    param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                  iVar29 = *unaff_s4;\nLAB_0004d460:\n                  iVar29 = iVar29 + unaff_s8;\n                  goto LAB_0004d464;\n                }\nLAB_0004d4b4:\n                if (param_2[5] != 0) {\n                  local_80 = (uint *)((int)puVar36 + iVar29);\n                  param_3 = param_2 + 6;\n                  param_4 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                  local_7c = puVar39;\n                  local_78 = puVar36;\n                  iVar29 = (*pcVar7)(param_1,param_2 + 5);\n                  if (iVar29 != 0) goto LAB_0004d510;\n                }\n                puVar23 = puVar39;\n                iVar29 = (*pcVar8)(&local_38);\n                if (iVar29 == 0) {\n                  uVar6 = 0xc;\n                  goto LAB_0004d62c;\n                }\n              }\nLAB_0004d510:\n              unaff_s5 = unaff_s5 + 1;\n              param_4 = &local_38;\n            } while (unaff_s5 < *(int *)(unaff_s6 + 0x14));\n          }" (if "if") (parenthesized_expression "((unaff_s6 != 0) && (unaff_s4 = (int *)param_1[0x15], 0 < *(int *)(unaff_s6 + 0x14)))" (( "(") (binary_expression "(unaff_s6 != 0) && (unaff_s4 = (int *)param_1[0x15], 0 < *(int *)(unaff_s6 + 0x14))" (parenthesized_expression "(unaff_s6 != 0)" (( "(") (binary_expression "unaff_s6 != 0" (identifier "unaff_s6") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(unaff_s4 = (int *)param_1[0x15], 0 < *(int *)(unaff_s6 + 0x14))" (( "(") (comma_expression "unaff_s4 = (int *)param_1[0x15], 0 < *(int *)(unaff_s6 + 0x14)" (assignment_expression "unaff_s4 = (int *)param_1[0x15]" (identifier "unaff_s4") (= "=") (cast_expression "(int *)param_1[0x15]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0x15]" (identifier "param_1") ([ "[") (number_literal "0x15") (] "]")))) (, ",") (binary_expression "0 < *(int *)(unaff_s6 + 0x14)" (number_literal "0") (< "<") (pointer_expression "*(int *)(unaff_s6 + 0x14)" (* "*") (cast_expression "(int *)(unaff_s6 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s6 + 0x14)" (( "(") (binary_expression "unaff_s6 + 0x14" (identifier "unaff_s6") (+ "+") (number_literal "0x14")) () ")")))))) () ")"))) () ")")) (compound_statement "{\n            unaff_s5 = 0;\n            do {\n              puVar39 = *(uint **)(*(int *)(unaff_s6 + 0x18) + unaff_s5 * 4);\n              unaff_s8 = (int)puVar39 * 8;\n              iVar29 = *unaff_s4 + unaff_s8;\n              if ((*(uint *)(iVar29 + 4) & 0x800) == 0) {\nLAB_0004d464:\n                iVar29 = FUN_00047bf8(param_1,iVar29,puVar36);\n                if (iVar29 != 0) {\n                  iVar29 = *(int *)(*param_2 + (int)unaff_s7);\n                  if (iVar29 != 0) {\n                    param_3 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc);\n                    iVar29 = 1;\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                }\n              }\n              else {\n                puVar35 = (undefined4 *)param_1[0x15];\n                uVar6 = param_2[3];\n                param_3 = puVar39;\n                param_4 = param_1;\n                local_80 = puVar36;\n                iVar29 = FUN_0004b150(*puVar35,puVar35 + 0x20);\n                if (iVar29 < 1) {\n                  if (iVar29 == 0) {\n                    iVar29 = *unaff_s4;\n                    goto LAB_0004d460;\n                  }\n                }\n                else if ((int)puVar36 + iVar29 <= (int)uVar6) {\n                  iVar30 = *(int *)(*param_2 + ((int)puVar36 + iVar29) * 4);\n                  if (iVar30 != 0) {\n                    param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                  iVar29 = *unaff_s4;\nLAB_0004d460:\n                  iVar29 = iVar29 + unaff_s8;\n                  goto LAB_0004d464;\n                }\nLAB_0004d4b4:\n                if (param_2[5] != 0) {\n                  local_80 = (uint *)((int)puVar36 + iVar29);\n                  param_3 = param_2 + 6;\n                  param_4 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                  local_7c = puVar39;\n                  local_78 = puVar36;\n                  iVar29 = (*pcVar7)(param_1,param_2 + 5);\n                  if (iVar29 != 0) goto LAB_0004d510;\n                }\n                puVar23 = puVar39;\n                iVar29 = (*pcVar8)(&local_38);\n                if (iVar29 == 0) {\n                  uVar6 = 0xc;\n                  goto LAB_0004d62c;\n                }\n              }\nLAB_0004d510:\n              unaff_s5 = unaff_s5 + 1;\n              param_4 = &local_38;\n            } while (unaff_s5 < *(int *)(unaff_s6 + 0x14));\n          }" ({ "{") (expression_statement "unaff_s5 = 0;" (assignment_expression "unaff_s5 = 0" (identifier "unaff_s5") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n              puVar39 = *(uint **)(*(int *)(unaff_s6 + 0x18) + unaff_s5 * 4);\n              unaff_s8 = (int)puVar39 * 8;\n              iVar29 = *unaff_s4 + unaff_s8;\n              if ((*(uint *)(iVar29 + 4) & 0x800) == 0) {\nLAB_0004d464:\n                iVar29 = FUN_00047bf8(param_1,iVar29,puVar36);\n                if (iVar29 != 0) {\n                  iVar29 = *(int *)(*param_2 + (int)unaff_s7);\n                  if (iVar29 != 0) {\n                    param_3 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc);\n                    iVar29 = 1;\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                }\n              }\n              else {\n                puVar35 = (undefined4 *)param_1[0x15];\n                uVar6 = param_2[3];\n                param_3 = puVar39;\n                param_4 = param_1;\n                local_80 = puVar36;\n                iVar29 = FUN_0004b150(*puVar35,puVar35 + 0x20);\n                if (iVar29 < 1) {\n                  if (iVar29 == 0) {\n                    iVar29 = *unaff_s4;\n                    goto LAB_0004d460;\n                  }\n                }\n                else if ((int)puVar36 + iVar29 <= (int)uVar6) {\n                  iVar30 = *(int *)(*param_2 + ((int)puVar36 + iVar29) * 4);\n                  if (iVar30 != 0) {\n                    param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                  iVar29 = *unaff_s4;\nLAB_0004d460:\n                  iVar29 = iVar29 + unaff_s8;\n                  goto LAB_0004d464;\n                }\nLAB_0004d4b4:\n                if (param_2[5] != 0) {\n                  local_80 = (uint *)((int)puVar36 + iVar29);\n                  param_3 = param_2 + 6;\n                  param_4 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                  local_7c = puVar39;\n                  local_78 = puVar36;\n                  iVar29 = (*pcVar7)(param_1,param_2 + 5);\n                  if (iVar29 != 0) goto LAB_0004d510;\n                }\n                puVar23 = puVar39;\n                iVar29 = (*pcVar8)(&local_38);\n                if (iVar29 == 0) {\n                  uVar6 = 0xc;\n                  goto LAB_0004d62c;\n                }\n              }\nLAB_0004d510:\n              unaff_s5 = unaff_s5 + 1;\n              param_4 = &local_38;\n            } while (unaff_s5 < *(int *)(unaff_s6 + 0x14));" (do "do") (compound_statement "{\n              puVar39 = *(uint **)(*(int *)(unaff_s6 + 0x18) + unaff_s5 * 4);\n              unaff_s8 = (int)puVar39 * 8;\n              iVar29 = *unaff_s4 + unaff_s8;\n              if ((*(uint *)(iVar29 + 4) & 0x800) == 0) {\nLAB_0004d464:\n                iVar29 = FUN_00047bf8(param_1,iVar29,puVar36);\n                if (iVar29 != 0) {\n                  iVar29 = *(int *)(*param_2 + (int)unaff_s7);\n                  if (iVar29 != 0) {\n                    param_3 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc);\n                    iVar29 = 1;\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                }\n              }\n              else {\n                puVar35 = (undefined4 *)param_1[0x15];\n                uVar6 = param_2[3];\n                param_3 = puVar39;\n                param_4 = param_1;\n                local_80 = puVar36;\n                iVar29 = FUN_0004b150(*puVar35,puVar35 + 0x20);\n                if (iVar29 < 1) {\n                  if (iVar29 == 0) {\n                    iVar29 = *unaff_s4;\n                    goto LAB_0004d460;\n                  }\n                }\n                else if ((int)puVar36 + iVar29 <= (int)uVar6) {\n                  iVar30 = *(int *)(*param_2 + ((int)puVar36 + iVar29) * 4);\n                  if (iVar30 != 0) {\n                    param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                  iVar29 = *unaff_s4;\nLAB_0004d460:\n                  iVar29 = iVar29 + unaff_s8;\n                  goto LAB_0004d464;\n                }\nLAB_0004d4b4:\n                if (param_2[5] != 0) {\n                  local_80 = (uint *)((int)puVar36 + iVar29);\n                  param_3 = param_2 + 6;\n                  param_4 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                  local_7c = puVar39;\n                  local_78 = puVar36;\n                  iVar29 = (*pcVar7)(param_1,param_2 + 5);\n                  if (iVar29 != 0) goto LAB_0004d510;\n                }\n                puVar23 = puVar39;\n                iVar29 = (*pcVar8)(&local_38);\n                if (iVar29 == 0) {\n                  uVar6 = 0xc;\n                  goto LAB_0004d62c;\n                }\n              }\nLAB_0004d510:\n              unaff_s5 = unaff_s5 + 1;\n              param_4 = &local_38;\n            }" ({ "{") (expression_statement "puVar39 = *(uint **)(*(int *)(unaff_s6 + 0x18) + unaff_s5 * 4);" (assignment_expression "puVar39 = *(uint **)(*(int *)(unaff_s6 + 0x18) + unaff_s5 * 4)" (identifier "puVar39") (= "=") (pointer_expression "*(uint **)(*(int *)(unaff_s6 + 0x18) + unaff_s5 * 4)" (* "*") (cast_expression "(uint **)(*(int *)(unaff_s6 + 0x18) + unaff_s5 * 4)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(unaff_s6 + 0x18) + unaff_s5 * 4)" (( "(") (binary_expression "*(int *)(unaff_s6 + 0x18) + unaff_s5 * 4" (pointer_expression "*(int *)(unaff_s6 + 0x18)" (* "*") (cast_expression "(int *)(unaff_s6 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s6 + 0x18)" (( "(") (binary_expression "unaff_s6 + 0x18" (identifier "unaff_s6") (+ "+") (number_literal "0x18")) () ")")))) (+ "+") (binary_expression "unaff_s5 * 4" (identifier "unaff_s5") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (expression_statement "unaff_s8 = (int)puVar39 * 8;" (assignment_expression "unaff_s8 = (int)puVar39 * 8" (identifier "unaff_s8") (= "=") (binary_expression "(int)puVar39 * 8" (cast_expression "(int)puVar39" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar39")) (* "*") (number_literal "8"))) (; ";")) (expression_statement "iVar29 = *unaff_s4 + unaff_s8;" (assignment_expression "iVar29 = *unaff_s4 + unaff_s8" (identifier "iVar29") (= "=") (binary_expression "*unaff_s4 + unaff_s8" (pointer_expression "*unaff_s4" (* "*") (identifier "unaff_s4")) (+ "+") (identifier "unaff_s8"))) (; ";")) (if_statement "if ((*(uint *)(iVar29 + 4) & 0x800) == 0) {\nLAB_0004d464:\n                iVar29 = FUN_00047bf8(param_1,iVar29,puVar36);\n                if (iVar29 != 0) {\n                  iVar29 = *(int *)(*param_2 + (int)unaff_s7);\n                  if (iVar29 != 0) {\n                    param_3 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc);\n                    iVar29 = 1;\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                }\n              }\n              else {\n                puVar35 = (undefined4 *)param_1[0x15];\n                uVar6 = param_2[3];\n                param_3 = puVar39;\n                param_4 = param_1;\n                local_80 = puVar36;\n                iVar29 = FUN_0004b150(*puVar35,puVar35 + 0x20);\n                if (iVar29 < 1) {\n                  if (iVar29 == 0) {\n                    iVar29 = *unaff_s4;\n                    goto LAB_0004d460;\n                  }\n                }\n                else if ((int)puVar36 + iVar29 <= (int)uVar6) {\n                  iVar30 = *(int *)(*param_2 + ((int)puVar36 + iVar29) * 4);\n                  if (iVar30 != 0) {\n                    param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                  iVar29 = *unaff_s4;\nLAB_0004d460:\n                  iVar29 = iVar29 + unaff_s8;\n                  goto LAB_0004d464;\n                }\nLAB_0004d4b4:\n                if (param_2[5] != 0) {\n                  local_80 = (uint *)((int)puVar36 + iVar29);\n                  param_3 = param_2 + 6;\n                  param_4 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                  local_7c = puVar39;\n                  local_78 = puVar36;\n                  iVar29 = (*pcVar7)(param_1,param_2 + 5);\n                  if (iVar29 != 0) goto LAB_0004d510;\n                }\n                puVar23 = puVar39;\n                iVar29 = (*pcVar8)(&local_38);\n                if (iVar29 == 0) {\n                  uVar6 = 0xc;\n                  goto LAB_0004d62c;\n                }\n              }" (if "if") (parenthesized_expression "((*(uint *)(iVar29 + 4) & 0x800) == 0)" (( "(") (binary_expression "(*(uint *)(iVar29 + 4) & 0x800) == 0" (parenthesized_expression "(*(uint *)(iVar29 + 4) & 0x800)" (( "(") (binary_expression "*(uint *)(iVar29 + 4) & 0x800" (pointer_expression "*(uint *)(iVar29 + 4)" (* "*") (cast_expression "(uint *)(iVar29 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar29 + 4)" (( "(") (binary_expression "iVar29 + 4" (identifier "iVar29") (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "0x800")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0004d464:\n                iVar29 = FUN_00047bf8(param_1,iVar29,puVar36);\n                if (iVar29 != 0) {\n                  iVar29 = *(int *)(*param_2 + (int)unaff_s7);\n                  if (iVar29 != 0) {\n                    param_3 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc);\n                    iVar29 = 1;\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                }\n              }" ({ "{") (labeled_statement "LAB_0004d464:\n                iVar29 = FUN_00047bf8(param_1,iVar29,puVar36);" (statement_identifier "LAB_0004d464") (: ":") (expression_statement "iVar29 = FUN_00047bf8(param_1,iVar29,puVar36);" (assignment_expression "iVar29 = FUN_00047bf8(param_1,iVar29,puVar36)" (identifier "iVar29") (= "=") (call_expression "FUN_00047bf8(param_1,iVar29,puVar36)" (identifier "FUN_00047bf8") (argument_list "(param_1,iVar29,puVar36)" (( "(") (identifier "param_1") (, ",") (identifier "iVar29") (, ",") (identifier "puVar36") () ")")))) (; ";"))) (if_statement "if (iVar29 != 0) {\n                  iVar29 = *(int *)(*param_2 + (int)unaff_s7);\n                  if (iVar29 != 0) {\n                    param_3 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc);\n                    iVar29 = 1;\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                }" (if "if") (parenthesized_expression "(iVar29 != 0)" (( "(") (binary_expression "iVar29 != 0" (identifier "iVar29") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  iVar29 = *(int *)(*param_2 + (int)unaff_s7);\n                  if (iVar29 != 0) {\n                    param_3 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc);\n                    iVar29 = 1;\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                }" ({ "{") (expression_statement "iVar29 = *(int *)(*param_2 + (int)unaff_s7);" (assignment_expression "iVar29 = *(int *)(*param_2 + (int)unaff_s7)" (identifier "iVar29") (= "=") (pointer_expression "*(int *)(*param_2 + (int)unaff_s7)" (* "*") (cast_expression "(int *)(*param_2 + (int)unaff_s7)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_2 + (int)unaff_s7)" (( "(") (binary_expression "*param_2 + (int)unaff_s7" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (+ "+") (cast_expression "(int)unaff_s7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s7"))) () ")"))))) (; ";")) (if_statement "if (iVar29 != 0) {\n                    param_3 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc);\n                    iVar29 = 1;\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }" (if "if") (parenthesized_expression "(iVar29 != 0)" (( "(") (binary_expression "iVar29 != 0" (identifier "iVar29") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    param_3 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc);\n                    iVar29 = 1;\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }" ({ "{") (expression_statement "param_3 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);" (assignment_expression "param_3 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4)" (identifier "param_3") (= "=") (pointer_expression "*(uint **)(unaff_s4[3] + (int)puVar39 * 4)" (* "*") (cast_expression "(uint **)(unaff_s4[3] + (int)puVar39 * 4)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_s4[3] + (int)puVar39 * 4)" (( "(") (binary_expression "unaff_s4[3] + (int)puVar39 * 4" (subscript_expression "unaff_s4[3]" (identifier "unaff_s4") ([ "[") (number_literal "3") (] "]")) (+ "+") (binary_expression "(int)puVar39 * 4" (cast_expression "(int)puVar39" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar39")) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (expression_statement "iVar30 = (*pcVar9)(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc);" (assignment_expression "iVar30 = (*pcVar9)(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc)" (identifier "iVar30") (= "=") (call_expression "(*pcVar9)(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc)" (parenthesized_expression "(*pcVar9)" (( "(") (pointer_expression "*pcVar9" (* "*") (identifier "pcVar9")) () ")")) (argument_list "(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc)" (( "(") (pointer_expression "*(undefined4 *)(iVar29 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar29 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar29 + 8)" (( "(") (binary_expression "iVar29 + 8" (identifier "iVar29") (+ "+") (number_literal "8")) () ")")))) (, ",") (binary_expression "iVar29 + 0xc" (identifier "iVar29") (+ "+") (number_literal "0xc")) () ")")))) (; ";")) (expression_statement "iVar29 = 1;" (assignment_expression "iVar29 = 1" (identifier "iVar29") (= "=") (number_literal "1")) (; ";")) (if_statement "if (iVar30 != 0) goto LAB_0004d4b4;" (if "if") (parenthesized_expression "(iVar30 != 0)" (( "(") (binary_expression "iVar30 != 0" (identifier "iVar30") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0004d4b4;" (goto "goto") (statement_identifier "LAB_0004d4b4") (; ";"))) (} "}"))) (} "}"))) (} "}")) (else_clause "else {\n                puVar35 = (undefined4 *)param_1[0x15];\n                uVar6 = param_2[3];\n                param_3 = puVar39;\n                param_4 = param_1;\n                local_80 = puVar36;\n                iVar29 = FUN_0004b150(*puVar35,puVar35 + 0x20);\n                if (iVar29 < 1) {\n                  if (iVar29 == 0) {\n                    iVar29 = *unaff_s4;\n                    goto LAB_0004d460;\n                  }\n                }\n                else if ((int)puVar36 + iVar29 <= (int)uVar6) {\n                  iVar30 = *(int *)(*param_2 + ((int)puVar36 + iVar29) * 4);\n                  if (iVar30 != 0) {\n                    param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                  iVar29 = *unaff_s4;\nLAB_0004d460:\n                  iVar29 = iVar29 + unaff_s8;\n                  goto LAB_0004d464;\n                }\nLAB_0004d4b4:\n                if (param_2[5] != 0) {\n                  local_80 = (uint *)((int)puVar36 + iVar29);\n                  param_3 = param_2 + 6;\n                  param_4 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                  local_7c = puVar39;\n                  local_78 = puVar36;\n                  iVar29 = (*pcVar7)(param_1,param_2 + 5);\n                  if (iVar29 != 0) goto LAB_0004d510;\n                }\n                puVar23 = puVar39;\n                iVar29 = (*pcVar8)(&local_38);\n                if (iVar29 == 0) {\n                  uVar6 = 0xc;\n                  goto LAB_0004d62c;\n                }\n              }" (else "else") (compound_statement "{\n                puVar35 = (undefined4 *)param_1[0x15];\n                uVar6 = param_2[3];\n                param_3 = puVar39;\n                param_4 = param_1;\n                local_80 = puVar36;\n                iVar29 = FUN_0004b150(*puVar35,puVar35 + 0x20);\n                if (iVar29 < 1) {\n                  if (iVar29 == 0) {\n                    iVar29 = *unaff_s4;\n                    goto LAB_0004d460;\n                  }\n                }\n                else if ((int)puVar36 + iVar29 <= (int)uVar6) {\n                  iVar30 = *(int *)(*param_2 + ((int)puVar36 + iVar29) * 4);\n                  if (iVar30 != 0) {\n                    param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                  iVar29 = *unaff_s4;\nLAB_0004d460:\n                  iVar29 = iVar29 + unaff_s8;\n                  goto LAB_0004d464;\n                }\nLAB_0004d4b4:\n                if (param_2[5] != 0) {\n                  local_80 = (uint *)((int)puVar36 + iVar29);\n                  param_3 = param_2 + 6;\n                  param_4 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                  local_7c = puVar39;\n                  local_78 = puVar36;\n                  iVar29 = (*pcVar7)(param_1,param_2 + 5);\n                  if (iVar29 != 0) goto LAB_0004d510;\n                }\n                puVar23 = puVar39;\n                iVar29 = (*pcVar8)(&local_38);\n                if (iVar29 == 0) {\n                  uVar6 = 0xc;\n                  goto LAB_0004d62c;\n                }\n              }" ({ "{") (expression_statement "puVar35 = (undefined4 *)param_1[0x15];" (assignment_expression "puVar35 = (undefined4 *)param_1[0x15]" (identifier "puVar35") (= "=") (cast_expression "(undefined4 *)param_1[0x15]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0x15]" (identifier "param_1") ([ "[") (number_literal "0x15") (] "]")))) (; ";")) (expression_statement "uVar6 = param_2[3];" (assignment_expression "uVar6 = param_2[3]" (identifier "uVar6") (= "=") (subscript_expression "param_2[3]" (identifier "param_2") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "param_3 = puVar39;" (assignment_expression "param_3 = puVar39" (identifier "param_3") (= "=") (identifier "puVar39")) (; ";")) (expression_statement "param_4 = param_1;" (assignment_expression "param_4 = param_1" (identifier "param_4") (= "=") (identifier "param_1")) (; ";")) (expression_statement "local_80 = puVar36;" (assignment_expression "local_80 = puVar36" (identifier "local_80") (= "=") (identifier "puVar36")) (; ";")) (expression_statement "iVar29 = FUN_0004b150(*puVar35,puVar35 + 0x20);" (assignment_expression "iVar29 = FUN_0004b150(*puVar35,puVar35 + 0x20)" (identifier "iVar29") (= "=") (call_expression "FUN_0004b150(*puVar35,puVar35 + 0x20)" (identifier "FUN_0004b150") (argument_list "(*puVar35,puVar35 + 0x20)" (( "(") (pointer_expression "*puVar35" (* "*") (identifier "puVar35")) (, ",") (binary_expression "puVar35 + 0x20" (identifier "puVar35") (+ "+") (number_literal "0x20")) () ")")))) (; ";")) (if_statement "if (iVar29 < 1) {\n                  if (iVar29 == 0) {\n                    iVar29 = *unaff_s4;\n                    goto LAB_0004d460;\n                  }\n                }\n                else if ((int)puVar36 + iVar29 <= (int)uVar6) {\n                  iVar30 = *(int *)(*param_2 + ((int)puVar36 + iVar29) * 4);\n                  if (iVar30 != 0) {\n                    param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                  iVar29 = *unaff_s4;\nLAB_0004d460:\n                  iVar29 = iVar29 + unaff_s8;\n                  goto LAB_0004d464;\n                }" (if "if") (parenthesized_expression "(iVar29 < 1)" (( "(") (binary_expression "iVar29 < 1" (identifier "iVar29") (< "<") (number_literal "1")) () ")")) (compound_statement "{\n                  if (iVar29 == 0) {\n                    iVar29 = *unaff_s4;\n                    goto LAB_0004d460;\n                  }\n                }" ({ "{") (if_statement "if (iVar29 == 0) {\n                    iVar29 = *unaff_s4;\n                    goto LAB_0004d460;\n                  }" (if "if") (parenthesized_expression "(iVar29 == 0)" (( "(") (binary_expression "iVar29 == 0" (identifier "iVar29") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    iVar29 = *unaff_s4;\n                    goto LAB_0004d460;\n                  }" ({ "{") (expression_statement "iVar29 = *unaff_s4;" (assignment_expression "iVar29 = *unaff_s4" (identifier "iVar29") (= "=") (pointer_expression "*unaff_s4" (* "*") (identifier "unaff_s4"))) (; ";")) (goto_statement "goto LAB_0004d460;" (goto "goto") (statement_identifier "LAB_0004d460") (; ";")) (} "}"))) (} "}")) (else_clause "else if ((int)puVar36 + iVar29 <= (int)uVar6) {\n                  iVar30 = *(int *)(*param_2 + ((int)puVar36 + iVar29) * 4);\n                  if (iVar30 != 0) {\n                    param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                  iVar29 = *unaff_s4;\nLAB_0004d460:\n                  iVar29 = iVar29 + unaff_s8;\n                  goto LAB_0004d464;\n                }" (else "else") (if_statement "if ((int)puVar36 + iVar29 <= (int)uVar6) {\n                  iVar30 = *(int *)(*param_2 + ((int)puVar36 + iVar29) * 4);\n                  if (iVar30 != 0) {\n                    param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                  iVar29 = *unaff_s4;\nLAB_0004d460:\n                  iVar29 = iVar29 + unaff_s8;\n                  goto LAB_0004d464;\n                }" (if "if") (parenthesized_expression "((int)puVar36 + iVar29 <= (int)uVar6)" (( "(") (binary_expression "(int)puVar36 + iVar29 <= (int)uVar6" (binary_expression "(int)puVar36 + iVar29" (cast_expression "(int)puVar36" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar36")) (+ "+") (identifier "iVar29")) (<= "<=") (cast_expression "(int)uVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar6"))) () ")")) (compound_statement "{\n                  iVar30 = *(int *)(*param_2 + ((int)puVar36 + iVar29) * 4);\n                  if (iVar30 != 0) {\n                    param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }\n                  iVar29 = *unaff_s4;\nLAB_0004d460:\n                  iVar29 = iVar29 + unaff_s8;\n                  goto LAB_0004d464;\n                }" ({ "{") (expression_statement "iVar30 = *(int *)(*param_2 + ((int)puVar36 + iVar29) * 4);" (assignment_expression "iVar30 = *(int *)(*param_2 + ((int)puVar36 + iVar29) * 4)" (identifier "iVar30") (= "=") (pointer_expression "*(int *)(*param_2 + ((int)puVar36 + iVar29) * 4)" (* "*") (cast_expression "(int *)(*param_2 + ((int)puVar36 + iVar29) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_2 + ((int)puVar36 + iVar29) * 4)" (( "(") (binary_expression "*param_2 + ((int)puVar36 + iVar29) * 4" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (+ "+") (binary_expression "((int)puVar36 + iVar29) * 4" (parenthesized_expression "((int)puVar36 + iVar29)" (( "(") (binary_expression "(int)puVar36 + iVar29" (cast_expression "(int)puVar36" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar36")) (+ "+") (identifier "iVar29")) () ")")) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (if_statement "if (iVar30 != 0) {\n                    param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }" (if "if") (parenthesized_expression "(iVar30 != 0)" (( "(") (binary_expression "iVar30 != 0" (identifier "iVar30") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);\n                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);\n                    if (iVar30 != 0) goto LAB_0004d4b4;\n                  }" ({ "{") (expression_statement "param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);" (assignment_expression "param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4)" (identifier "param_3") (= "=") (pointer_expression "*(uint **)(puVar35[3] + (int)puVar39 * 4)" (* "*") (cast_expression "(uint **)(puVar35[3] + (int)puVar39 * 4)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar35[3] + (int)puVar39 * 4)" (( "(") (binary_expression "puVar35[3] + (int)puVar39 * 4" (subscript_expression "puVar35[3]" (identifier "puVar35") ([ "[") (number_literal "3") (] "]")) (+ "+") (binary_expression "(int)puVar39 * 4" (cast_expression "(int)puVar39" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar39")) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (expression_statement "iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);" (assignment_expression "iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc)" (identifier "iVar30") (= "=") (call_expression "(*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc)" (parenthesized_expression "(*pcVar9)" (( "(") (pointer_expression "*pcVar9" (* "*") (identifier "pcVar9")) () ")")) (argument_list "(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc)" (( "(") (pointer_expression "*(undefined4 *)(iVar30 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar30 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar30 + 8)" (( "(") (binary_expression "iVar30 + 8" (identifier "iVar30") (+ "+") (number_literal "8")) () ")")))) (, ",") (binary_expression "iVar30 + 0xc" (identifier "iVar30") (+ "+") (number_literal "0xc")) () ")")))) (; ";")) (if_statement "if (iVar30 != 0) goto LAB_0004d4b4;" (if "if") (parenthesized_expression "(iVar30 != 0)" (( "(") (binary_expression "iVar30 != 0" (identifier "iVar30") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0004d4b4;" (goto "goto") (statement_identifier "LAB_0004d4b4") (; ";"))) (} "}"))) (expression_statement "iVar29 = *unaff_s4;" (assignment_expression "iVar29 = *unaff_s4" (identifier "iVar29") (= "=") (pointer_expression "*unaff_s4" (* "*") (identifier "unaff_s4"))) (; ";")) (labeled_statement "LAB_0004d460:\n                  iVar29 = iVar29 + unaff_s8;" (statement_identifier "LAB_0004d460") (: ":") (expression_statement "iVar29 = iVar29 + unaff_s8;" (assignment_expression "iVar29 = iVar29 + unaff_s8" (identifier "iVar29") (= "=") (binary_expression "iVar29 + unaff_s8" (identifier "iVar29") (+ "+") (identifier "unaff_s8"))) (; ";"))) (goto_statement "goto LAB_0004d464;" (goto "goto") (statement_identifier "LAB_0004d464") (; ";")) (} "}"))))) (labeled_statement "LAB_0004d4b4:\n                if (param_2[5] != 0) {\n                  local_80 = (uint *)((int)puVar36 + iVar29);\n                  param_3 = param_2 + 6;\n                  param_4 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                  local_7c = puVar39;\n                  local_78 = puVar36;\n                  iVar29 = (*pcVar7)(param_1,param_2 + 5);\n                  if (iVar29 != 0) goto LAB_0004d510;\n                }" (statement_identifier "LAB_0004d4b4") (: ":") (if_statement "if (param_2[5] != 0) {\n                  local_80 = (uint *)((int)puVar36 + iVar29);\n                  param_3 = param_2 + 6;\n                  param_4 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                  local_7c = puVar39;\n                  local_78 = puVar36;\n                  iVar29 = (*pcVar7)(param_1,param_2 + 5);\n                  if (iVar29 != 0) goto LAB_0004d510;\n                }" (if "if") (parenthesized_expression "(param_2[5] != 0)" (( "(") (binary_expression "param_2[5] != 0" (subscript_expression "param_2[5]" (identifier "param_2") ([ "[") (number_literal "5") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  local_80 = (uint *)((int)puVar36 + iVar29);\n                  param_3 = param_2 + 6;\n                  param_4 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);\n                  local_7c = puVar39;\n                  local_78 = puVar36;\n                  iVar29 = (*pcVar7)(param_1,param_2 + 5);\n                  if (iVar29 != 0) goto LAB_0004d510;\n                }" ({ "{") (expression_statement "local_80 = (uint *)((int)puVar36 + iVar29);" (assignment_expression "local_80 = (uint *)((int)puVar36 + iVar29)" (identifier "local_80") (= "=") (cast_expression "(uint *)((int)puVar36 + iVar29)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar36 + iVar29)" (( "(") (binary_expression "(int)puVar36 + iVar29" (cast_expression "(int)puVar36" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar36")) (+ "+") (identifier "iVar29")) () ")")))) (; ";")) (expression_statement "param_3 = param_2 + 6;" (assignment_expression "param_3 = param_2 + 6" (identifier "param_3") (= "=") (binary_expression "param_2 + 6" (identifier "param_2") (+ "+") (number_literal "6"))) (; ";")) (expression_statement "param_4 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);" (assignment_expression "param_4 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4)" (identifier "param_4") (= "=") (pointer_expression "*(uint **)(unaff_s4[3] + (int)puVar39 * 4)" (* "*") (cast_expression "(uint **)(unaff_s4[3] + (int)puVar39 * 4)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_s4[3] + (int)puVar39 * 4)" (( "(") (binary_expression "unaff_s4[3] + (int)puVar39 * 4" (subscript_expression "unaff_s4[3]" (identifier "unaff_s4") ([ "[") (number_literal "3") (] "]")) (+ "+") (binary_expression "(int)puVar39 * 4" (cast_expression "(int)puVar39" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar39")) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (expression_statement "local_7c = puVar39;" (assignment_expression "local_7c = puVar39" (identifier "local_7c") (= "=") (identifier "puVar39")) (; ";")) (expression_statement "local_78 = puVar36;" (assignment_expression "local_78 = puVar36" (identifier "local_78") (= "=") (identifier "puVar36")) (; ";")) (expression_statement "iVar29 = (*pcVar7)(param_1,param_2 + 5);" (assignment_expression "iVar29 = (*pcVar7)(param_1,param_2 + 5)" (identifier "iVar29") (= "=") (call_expression "(*pcVar7)(param_1,param_2 + 5)" (parenthesized_expression "(*pcVar7)" (( "(") (pointer_expression "*pcVar7" (* "*") (identifier "pcVar7")) () ")")) (argument_list "(param_1,param_2 + 5)" (( "(") (identifier "param_1") (, ",") (binary_expression "param_2 + 5" (identifier "param_2") (+ "+") (number_literal "5")) () ")")))) (; ";")) (if_statement "if (iVar29 != 0) goto LAB_0004d510;" (if "if") (parenthesized_expression "(iVar29 != 0)" (( "(") (binary_expression "iVar29 != 0" (identifier "iVar29") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0004d510;" (goto "goto") (statement_identifier "LAB_0004d510") (; ";"))) (} "}")))) (expression_statement "puVar23 = puVar39;" (assignment_expression "puVar23 = puVar39" (identifier "puVar23") (= "=") (identifier "puVar39")) (; ";")) (expression_statement "iVar29 = (*pcVar8)(&local_38);" (assignment_expression "iVar29 = (*pcVar8)(&local_38)" (identifier "iVar29") (= "=") (call_expression "(*pcVar8)(&local_38)" (parenthesized_expression "(*pcVar8)" (( "(") (pointer_expression "*pcVar8" (* "*") (identifier "pcVar8")) () ")")) (argument_list "(&local_38)" (( "(") (pointer_expression "&local_38" (& "&") (identifier "local_38")) () ")")))) (; ";")) (if_statement "if (iVar29 == 0) {\n                  uVar6 = 0xc;\n                  goto LAB_0004d62c;\n                }" (if "if") (parenthesized_expression "(iVar29 == 0)" (( "(") (binary_expression "iVar29 == 0" (identifier "iVar29") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  uVar6 = 0xc;\n                  goto LAB_0004d62c;\n                }" ({ "{") (expression_statement "uVar6 = 0xc;" (assignment_expression "uVar6 = 0xc" (identifier "uVar6") (= "=") (number_literal "0xc")) (; ";")) (goto_statement "goto LAB_0004d62c;" (goto "goto") (statement_identifier "LAB_0004d62c") (; ";")) (} "}"))) (} "}")))) (labeled_statement "LAB_0004d510:\n              unaff_s5 = unaff_s5 + 1;" (statement_identifier "LAB_0004d510") (: ":") (expression_statement "unaff_s5 = unaff_s5 + 1;" (assignment_expression "unaff_s5 = unaff_s5 + 1" (identifier "unaff_s5") (= "=") (binary_expression "unaff_s5 + 1" (identifier "unaff_s5") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "param_4 = &local_38;" (assignment_expression "param_4 = &local_38" (identifier "param_4") (= "=") (pointer_expression "&local_38" (& "&") (identifier "local_38"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(unaff_s5 < *(int *)(unaff_s6 + 0x14))" (( "(") (binary_expression "unaff_s5 < *(int *)(unaff_s6 + 0x14)" (identifier "unaff_s5") (< "<") (pointer_expression "*(int *)(unaff_s6 + 0x14)" (* "*") (cast_expression "(int *)(unaff_s6 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s6 + 0x14)" (( "(") (binary_expression "unaff_s6 + 0x14" (identifier "unaff_s6") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (; ";")) (} "}"))) (expression_statement "puVar23 = param_2;" (assignment_expression "puVar23 = param_2" (identifier "puVar23") (= "=") (identifier "param_2")) (; ";")) (expression_statement "param_3 = puVar36;" (assignment_expression "param_3 = puVar36" (identifier "param_3") (= "=") (identifier "puVar36")) (; ";")) (expression_statement "param_4 = &local_38;" (assignment_expression "param_4 = &local_38" (identifier "param_4") (= "=") (pointer_expression "&local_38" (& "&") (identifier "local_38"))) (; ";")) (expression_statement "uVar6 = (*pcVar45)(param_1);" (assignment_expression "uVar6 = (*pcVar45)(param_1)" (identifier "uVar6") (= "=") (call_expression "(*pcVar45)(param_1)" (parenthesized_expression "(*pcVar45)" (( "(") (pointer_expression "*pcVar45" (* "*") (identifier "pcVar45")) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (uVar6 != 0) goto LAB_0004d62c;" (if "if") (parenthesized_expression "(uVar6 != 0)" (( "(") (binary_expression "uVar6 != 0" (identifier "uVar6") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0004d62c;" (goto "goto") (statement_identifier "LAB_0004d62c") (; ";"))) (} "}")) (while "while") (parenthesized_expression "(puVar36 != (uint *)0x0)" (( "(") (binary_expression "puVar36 != (uint *)0x0" (identifier "puVar36") (!= "!=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (} "}"))) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" (identifier "uVar6") (= "=") (number_literal "0")) (; ";")) (} "}"))) (labeled_statement "LAB_0004d62c:\n    (*(code *)PTR_free_00075bfc)(local_30);" (statement_identifier "LAB_0004d62c") (: ":") (expression_statement "(*(code *)PTR_free_00075bfc)(local_30);" (call_expression "(*(code *)PTR_free_00075bfc)(local_30)" (parenthesized_expression "(*(code *)PTR_free_00075bfc)" (( "(") (pointer_expression "*(code *)PTR_free_00075bfc" (* "*") (cast_expression "(code *)PTR_free_00075bfc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_00075bfc"))) () ")")) (argument_list "(local_30)" (( "(") (identifier "local_30") () ")"))) (; ";"))) (} "}")))) (labeled_statement "LAB_0004d644:\n  if (local_2c == *(uint ***)puVar46) {\n    return uVar6;\n  }" (statement_identifier "LAB_0004d644") (: ":") (if_statement "if (local_2c == *(uint ***)puVar46) {\n    return uVar6;\n  }" (if "if") (parenthesized_expression "(local_2c == *(uint ***)puVar46)" (( "(") (binary_expression "local_2c == *(uint ***)puVar46" (identifier "local_2c") (== "==") (pointer_expression "*(uint ***)puVar46" (* "*") (cast_expression "(uint ***)puVar46" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (identifier "puVar46")))) () ")")) (compound_statement "{\n    return uVar6;\n  }" ({ "{") (return_statement "return uVar6;" (return "return") (identifier "uVar6") (; ";")) (} "}")))) (expression_statement "pcVar45 = FUN_0004d6dc;" (assignment_expression "pcVar45 = FUN_0004d6dc" (identifier "pcVar45") (= "=") (identifier "FUN_0004d6dc")) (; ";")) (expression_statement "ppuVar24 = local_2c;" (assignment_expression "ppuVar24 = local_2c" (identifier "ppuVar24") (= "=") (identifier "local_2c")) (; ";")) (expression_statement "puVar46 = PTR___stack_chk_fail_00075ba8;" (assignment_expression "puVar46 = PTR___stack_chk_fail_00075ba8" (identifier "puVar46") (= "=") (identifier "PTR___stack_chk_fail_00075ba8")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_00075ba8)();" (call_expression "(*(code *)PTR___stack_chk_fail_00075ba8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00075ba8)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_00075ba8" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_00075ba8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_00075ba8"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar32 = local_7c;" (assignment_expression "puVar32 = local_7c" (identifier "puVar32") (= "=") (identifier "local_7c")) (; ";")) (expression_statement "puVar38 = local_80;" (assignment_expression "puVar38 = local_80" (identifier "puVar38") (= "=") (identifier "local_80")) (; ";")) (expression_statement "piVar10 = *(int **)(puVar46 + 0x2850c);" (assignment_expression "piVar10 = *(int **)(puVar46 + 0x2850c)" (identifier "piVar10") (= "=") (pointer_expression "*(int **)(puVar46 + 0x2850c)" (* "*") (cast_expression "(int **)(puVar46 + 0x2850c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar46 + 0x2850c)" (( "(") (binary_expression "puVar46 + 0x2850c" (identifier "puVar46") (+ "+") (number_literal "0x2850c")) () ")"))))) (; ";")) (expression_statement "iStack_bc = *piVar10;" (assignment_expression "iStack_bc = *piVar10" (identifier "iStack_bc") (= "=") (pointer_expression "*piVar10" (* "*") (identifier "piVar10"))) (; ";")) (expression_statement "puVar43 = *ppuVar24;" (assignment_expression "puVar43 = *ppuVar24" (identifier "puVar43") (= "=") (pointer_expression "*ppuVar24" (* "*") (identifier "ppuVar24"))) (; ";")) (expression_statement "puStack_b8 = puVar36;" (assignment_expression "puStack_b8 = puVar36" (identifier "puStack_b8") (= "=") (identifier "puVar36")) (; ";")) (expression_statement "puStack_b4 = param_2;" (assignment_expression "puStack_b4 = param_2" (identifier "puStack_b4") (= "=") (identifier "param_2")) (; ";")) (expression_statement "puStack_b0 = param_1;" (assignment_expression "puStack_b0 = param_1" (identifier "puStack_b0") (= "=") (identifier "param_1")) (; ";")) (expression_statement "puStack_ac = puVar39;" (assignment_expression "puStack_ac = puVar39" (identifier "puStack_ac") (= "=") (identifier "puVar39")) (; ";")) (expression_statement "piStack_a8 = unaff_s4;" (assignment_expression "piStack_a8 = unaff_s4" (identifier "piStack_a8") (= "=") (identifier "unaff_s4")) (; ";")) (expression_statement "iStack_a4 = unaff_s5;" (assignment_expression "iStack_a4 = unaff_s5" (identifier "iStack_a4") (= "=") (identifier "unaff_s5")) (; ";")) (expression_statement "iStack_a0 = unaff_s6;" (assignment_expression "iStack_a0 = unaff_s6" (identifier "iStack_a0") (= "=") (identifier "unaff_s6")) (; ";")) (expression_statement "puStack_9c = unaff_s7;" (assignment_expression "puStack_9c = unaff_s7" (identifier "puStack_9c") (= "=") (identifier "unaff_s7")) (; ";")) (expression_statement "iStack_98 = unaff_s8;" (assignment_expression "iStack_98 = unaff_s8" (identifier "iStack_98") (= "=") (identifier "unaff_s8")) (; ";")) (expression_statement "pcStack_94 = pcVar45;" (assignment_expression "pcStack_94 = pcVar45" (identifier "pcStack_94") (= "=") (identifier "pcVar45")) (; ";")) (expression_statement "puStack_88 = param_3;" (assignment_expression "puStack_88 = param_3" (identifier "puStack_88") (= "=") (identifier "param_3")) (; ";")) (expression_statement "(**(code **)(puVar46 + 0x283f8))(&puStack_144,0,0x88);" (call_expression "(**(code **)(puVar46 + 0x283f8))(&puStack_144,0,0x88)" (parenthesized_expression "(**(code **)(puVar46 + 0x283f8))" (( "(") (pointer_expression "**(code **)(puVar46 + 0x283f8)" (* "*") (pointer_expression "*(code **)(puVar46 + 0x283f8)" (* "*") (cast_expression "(code **)(puVar46 + 0x283f8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar46 + 0x283f8)" (( "(") (binary_expression "puVar46 + 0x283f8" (identifier "puVar46") (+ "+") (number_literal "0x283f8")) () ")"))))) () ")")) (argument_list "(&puStack_144,0,0x88)" (( "(") (pointer_expression "&puStack_144" (& "&") (identifier "puStack_144")) (, ",") (number_literal "0") (, ",") (number_literal "0x88") () ")"))) (; ";")) (expression_statement "puStack_1e0 = ppuVar24[4];" (assignment_expression "puStack_1e0 = ppuVar24[4]" (identifier "puStack_1e0") (= "=") (subscript_expression "ppuVar24[4]" (identifier "ppuVar24") ([ "[") (number_literal "4") (] "]"))) (; ";")) (if_statement "if (puStack_1e0 != (uint *)0x0) {\n    if (((*(byte *)(ppuVar24 + 7) & 0x10) == 0) || (param_4 == puVar38)) {\n      puStack_1e0 = (uint *)0x0;\n    }\n    else if ((char)*(byte *)(ppuVar24 + 7) < '\0') {\n      puStack_1e0 = (uint *)0x0;\n    }\n  }" (if "if") (parenthesized_expression "(puStack_1e0 != (uint *)0x0)" (( "(") (binary_expression "puStack_1e0 != (uint *)0x0" (identifier "puStack_1e0") (!= "!=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    if (((*(byte *)(ppuVar24 + 7) & 0x10) == 0) || (param_4 == puVar38)) {\n      puStack_1e0 = (uint *)0x0;\n    }\n    else if ((char)*(byte *)(ppuVar24 + 7) < '\0') {\n      puStack_1e0 = (uint *)0x0;\n    }\n  }" ({ "{") (if_statement "if (((*(byte *)(ppuVar24 + 7) & 0x10) == 0) || (param_4 == puVar38)) {\n      puStack_1e0 = (uint *)0x0;\n    }\n    else if ((char)*(byte *)(ppuVar24 + 7) < '\0') {\n      puStack_1e0 = (uint *)0x0;\n    }" (if "if") (parenthesized_expression "(((*(byte *)(ppuVar24 + 7) & 0x10) == 0) || (param_4 == puVar38))" (( "(") (binary_expression "((*(byte *)(ppuVar24 + 7) & 0x10) == 0) || (param_4 == puVar38)" (parenthesized_expression "((*(byte *)(ppuVar24 + 7) & 0x10) == 0)" (( "(") (binary_expression "(*(byte *)(ppuVar24 + 7) & 0x10) == 0" (parenthesized_expression "(*(byte *)(ppuVar24 + 7) & 0x10)" (( "(") (binary_expression "*(byte *)(ppuVar24 + 7) & 0x10" (pointer_expression "*(byte *)(ppuVar24 + 7)" (* "*") (cast_expression "(byte *)(ppuVar24 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ppuVar24 + 7)" (( "(") (binary_expression "ppuVar24 + 7" (identifier "ppuVar24") (+ "+") (number_literal "7")) () ")")))) (& "&") (number_literal "0x10")) () ")")) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(param_4 == puVar38)" (( "(") (binary_expression "param_4 == puVar38" (identifier "param_4") (== "==") (identifier "puVar38")) () ")"))) () ")")) (compound_statement "{\n      puStack_1e0 = (uint *)0x0;\n    }" ({ "{") (expression_statement "puStack_1e0 = (uint *)0x0;" (assignment_expression "puStack_1e0 = (uint *)0x0" (identifier "puStack_1e0") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else if ((char)*(byte *)(ppuVar24 + 7) < '\0') {\n      puStack_1e0 = (uint *)0x0;\n    }" (else "else") (if_statement "if ((char)*(byte *)(ppuVar24 + 7) < '\0') {\n      puStack_1e0 = (uint *)0x0;\n    }" (if "if") (parenthesized_expression "((char)*(byte *)(ppuVar24 + 7) < '\0')" (( "(") (binary_expression "(char)*(byte *)(ppuVar24 + 7) < '\0'" (cast_expression "(char)*(byte *)(ppuVar24 + 7)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*(byte *)(ppuVar24 + 7)" (* "*") (cast_expression "(byte *)(ppuVar24 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ppuVar24 + 7)" (( "(") (binary_expression "ppuVar24 + 7" (identifier "ppuVar24") (+ "+") (number_literal "7")) () ")"))))) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      puStack_1e0 = (uint *)0x0;\n    }" ({ "{") (expression_statement "puStack_1e0 = (uint *)0x0;" (assignment_expression "puStack_1e0 = (uint *)0x0" (identifier "puStack_1e0") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))))) (} "}"))) (expression_statement "puVar36 = ppuVar24[6];" (assignment_expression "puVar36 = ppuVar24[6]" (identifier "puVar36") (= "=") (subscript_expression "ppuVar24[6]" (identifier "ppuVar24") ([ "[") (number_literal "6") (] "]"))) (; ";")) (if_statement "if (puVar36 < local_78) {\n    iStack_180 = ((int)local_78 + -1) - (int)puVar36;\n    local_78 = (uint *)((int)local_78 + ((int)puVar36 - ((int)local_78 + -1)));\n    puVar36 = ppuVar24[2];\n  }\n  else {\n    puVar36 = ppuVar24[2];\n    iStack_180 = 0;\n  }" (if "if") (parenthesized_expression "(puVar36 < local_78)" (( "(") (binary_expression "puVar36 < local_78" (identifier "puVar36") (< "<") (identifier "local_78")) () ")")) (compound_statement "{\n    iStack_180 = ((int)local_78 + -1) - (int)puVar36;\n    local_78 = (uint *)((int)local_78 + ((int)puVar36 - ((int)local_78 + -1)));\n    puVar36 = ppuVar24[2];\n  }" ({ "{") (expression_statement "iStack_180 = ((int)local_78 + -1) - (int)puVar36;" (assignment_expression "iStack_180 = ((int)local_78 + -1) - (int)puVar36" (identifier "iStack_180") (= "=") (binary_expression "((int)local_78 + -1) - (int)puVar36" (parenthesized_expression "((int)local_78 + -1)" (( "(") (binary_expression "(int)local_78 + -1" (cast_expression "(int)local_78" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_78")) (+ "+") (number_literal "-1")) () ")")) (- "-") (cast_expression "(int)puVar36" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar36")))) (; ";")) (expression_statement "local_78 = (uint *)((int)local_78 + ((int)puVar36 - ((int)local_78 + -1)));" (assignment_expression "local_78 = (uint *)((int)local_78 + ((int)puVar36 - ((int)local_78 + -1)))" (identifier "local_78") (= "=") (cast_expression "(uint *)((int)local_78 + ((int)puVar36 - ((int)local_78 + -1)))" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_78 + ((int)puVar36 - ((int)local_78 + -1)))" (( "(") (binary_expression "(int)local_78 + ((int)puVar36 - ((int)local_78 + -1))" (cast_expression "(int)local_78" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_78")) (+ "+") (parenthesized_expression "((int)puVar36 - ((int)local_78 + -1))" (( "(") (binary_expression "(int)puVar36 - ((int)local_78 + -1)" (cast_expression "(int)puVar36" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar36")) (- "-") (parenthesized_expression "((int)local_78 + -1)" (( "(") (binary_expression "(int)local_78 + -1" (cast_expression "(int)local_78" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_78")) (+ "+") (number_literal "-1")) () ")"))) () ")"))) () ")")))) (; ";")) (expression_statement "puVar36 = ppuVar24[2];" (assignment_expression "puVar36 = ppuVar24[2]" (identifier "puVar36") (= "=") (subscript_expression "ppuVar24[2]" (identifier "ppuVar24") ([ "[") (number_literal "2") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n    puVar36 = ppuVar24[2];\n    iStack_180 = 0;\n  }" (else "else") (compound_statement "{\n    puVar36 = ppuVar24[2];\n    iStack_180 = 0;\n  }" ({ "{") (expression_statement "puVar36 = ppuVar24[2];" (assignment_expression "puVar36 = ppuVar24[2]" (identifier "puVar36") (= "=") (subscript_expression "ppuVar24[2]" (identifier "ppuVar24") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "iStack_180 = 0;" (assignment_expression "iStack_180 = 0" (identifier "iStack_180") (= "=") (number_literal "0")) (; ";")) (} "}")))) (expression_statement "puStack_f0 = puVar43;" (assignment_expression "puStack_f0 = puVar43" (identifier "puStack_f0") (= "=") (identifier "puVar43")) (; ";")) (if_statement "if ((((puVar36 == (uint *)0x0) || (puVar43[9] == 0)) || (puVar43[10] == 0)) ||\n     ((puVar43[0xb] == 0 || (puVar43[0xc] == 0)))) {\nLAB_0004db54:\n    uStack_1e4 = 1;\n    goto LAB_0004db58;\n  }" (if "if") (parenthesized_expression "((((puVar36 == (uint *)0x0) || (puVar43[9] == 0)) || (puVar43[10] == 0)) ||\n     ((puVar43[0xb] == 0 || (puVar43[0xc] == 0))))" (( "(") (binary_expression "(((puVar36 == (uint *)0x0) || (puVar43[9] == 0)) || (puVar43[10] == 0)) ||\n     ((puVar43[0xb] == 0 || (puVar43[0xc] == 0)))" (parenthesized_expression "(((puVar36 == (uint *)0x0) || (puVar43[9] == 0)) || (puVar43[10] == 0))" (( "(") (binary_expression "((puVar36 == (uint *)0x0) || (puVar43[9] == 0)) || (puVar43[10] == 0)" (parenthesized_expression "((puVar36 == (uint *)0x0) || (puVar43[9] == 0))" (( "(") (binary_expression "(puVar36 == (uint *)0x0) || (puVar43[9] == 0)" (parenthesized_expression "(puVar36 == (uint *)0x0)" (( "(") (binary_expression "puVar36 == (uint *)0x0" (identifier "puVar36") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(puVar43[9] == 0)" (( "(") (binary_expression "puVar43[9] == 0" (subscript_expression "puVar43[9]" (identifier "puVar43") ([ "[") (number_literal "9") (] "]")) (== "==") (number_literal "0")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(puVar43[10] == 0)" (( "(") (binary_expression "puVar43[10] == 0" (subscript_expression "puVar43[10]" (identifier "puVar43") ([ "[") (number_literal "10") (] "]")) (== "==") (number_literal "0")) () ")"))) () ")")) (|| "||") (parenthesized_expression "((puVar43[0xb] == 0 || (puVar43[0xc] == 0)))" (( "(") (parenthesized_expression "(puVar43[0xb] == 0 || (puVar43[0xc] == 0))" (( "(") (binary_expression "puVar43[0xb] == 0 || (puVar43[0xc] == 0)" (binary_expression "puVar43[0xb] == 0" (subscript_expression "puVar43[0xb]" (identifier "puVar43") ([ "[") (number_literal "0xb") (] "]")) (== "==") (number_literal "0")) (|| "||") (parenthesized_expression "(puVar43[0xc] == 0)" (( "(") (binary_expression "puVar43[0xc] == 0" (subscript_expression "puVar43[0xc]" (identifier "puVar43") ([ "[") (number_literal "0xc") (] "]")) (== "==") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\nLAB_0004db54:\n    uStack_1e4 = 1;\n    goto LAB_0004db58;\n  }" ({ "{") (labeled_statement "LAB_0004db54:\n    uStack_1e4 = 1;" (statement_identifier "LAB_0004db54") (: ":") (expression_statement "uStack_1e4 = 1;" (assignment_expression "uStack_1e4 = 1" (identifier "uStack_1e4") (= "=") (number_literal "1")) (; ";"))) (goto_statement "goto LAB_0004db58;" (goto "goto") (statement_identifier "LAB_0004db58") (; ";")) (} "}"))) (if_statement "if (((*(int *)(puVar43[9] + 8) == 0) && (*(int *)(puVar43[10] + 8) == 0)) &&\n     ((*(int *)(puVar43[0xb] + 8) == 0 || (((uint)ppuVar24[7] & 0x1000000) == 0)))) {\n    if (param_4 == (uint *)0x0) {\n      puVar38 = (uint *)0x0;\n    }\n    else {\n      if (puVar38 != (uint *)0x0) goto LAB_0004db54;\n      param_4 = (uint *)0x0;\n    }\n  }" (if "if") (parenthesized_expression "(((*(int *)(puVar43[9] + 8) == 0) && (*(int *)(puVar43[10] + 8) == 0)) &&\n     ((*(int *)(puVar43[0xb] + 8) == 0 || (((uint)ppuVar24[7] & 0x1000000) == 0))))" (( "(") (binary_expression "((*(int *)(puVar43[9] + 8) == 0) && (*(int *)(puVar43[10] + 8) == 0)) &&\n     ((*(int *)(puVar43[0xb] + 8) == 0 || (((uint)ppuVar24[7] & 0x1000000) == 0)))" (parenthesized_expression "((*(int *)(puVar43[9] + 8) == 0) && (*(int *)(puVar43[10] + 8) == 0))" (( "(") (binary_expression "(*(int *)(puVar43[9] + 8) == 0) && (*(int *)(puVar43[10] + 8) == 0)" (parenthesized_expression "(*(int *)(puVar43[9] + 8) == 0)" (( "(") (binary_expression "*(int *)(puVar43[9] + 8) == 0" (pointer_expression "*(int *)(puVar43[9] + 8)" (* "*") (cast_expression "(int *)(puVar43[9] + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar43[9] + 8)" (( "(") (binary_expression "puVar43[9] + 8" (subscript_expression "puVar43[9]" (identifier "puVar43") ([ "[") (number_literal "9") (] "]")) (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(puVar43[10] + 8) == 0)" (( "(") (binary_expression "*(int *)(puVar43[10] + 8) == 0" (pointer_expression "*(int *)(puVar43[10] + 8)" (* "*") (cast_expression "(int *)(puVar43[10] + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar43[10] + 8)" (( "(") (binary_expression "puVar43[10] + 8" (subscript_expression "puVar43[10]" (identifier "puVar43") ([ "[") (number_literal "10") (] "]")) (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((*(int *)(puVar43[0xb] + 8) == 0 || (((uint)ppuVar24[7] & 0x1000000) == 0)))" (( "(") (parenthesized_expression "(*(int *)(puVar43[0xb] + 8) == 0 || (((uint)ppuVar24[7] & 0x1000000) == 0))" (( "(") (binary_expression "*(int *)(puVar43[0xb] + 8) == 0 || (((uint)ppuVar24[7] & 0x1000000) == 0)" (binary_expression "*(int *)(puVar43[0xb] + 8) == 0" (pointer_expression "*(int *)(puVar43[0xb] + 8)" (* "*") (cast_expression "(int *)(puVar43[0xb] + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar43[0xb] + 8)" (( "(") (binary_expression "puVar43[0xb] + 8" (subscript_expression "puVar43[0xb]" (identifier "puVar43") ([ "[") (number_literal "0xb") (] "]")) (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0")) (|| "||") (parenthesized_expression "(((uint)ppuVar24[7] & 0x1000000) == 0)" (( "(") (binary_expression "((uint)ppuVar24[7] & 0x1000000) == 0" (parenthesized_expression "((uint)ppuVar24[7] & 0x1000000)" (( "(") (binary_expression "(uint)ppuVar24[7] & 0x1000000" (cast_expression "(uint)ppuVar24[7]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "ppuVar24[7]" (identifier "ppuVar24") ([ "[") (number_literal "7") (] "]"))) (& "&") (number_literal "0x1000000")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n    if (param_4 == (uint *)0x0) {\n      puVar38 = (uint *)0x0;\n    }\n    else {\n      if (puVar38 != (uint *)0x0) goto LAB_0004db54;\n      param_4 = (uint *)0x0;\n    }\n  }" ({ "{") (if_statement "if (param_4 == (uint *)0x0) {\n      puVar38 = (uint *)0x0;\n    }\n    else {\n      if (puVar38 != (uint *)0x0) goto LAB_0004db54;\n      param_4 = (uint *)0x0;\n    }" (if "if") (parenthesized_expression "(param_4 == (uint *)0x0)" (( "(") (binary_expression "param_4 == (uint *)0x0" (identifier "param_4") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      puVar38 = (uint *)0x0;\n    }" ({ "{") (expression_statement "puVar38 = (uint *)0x0;" (assignment_expression "puVar38 = (uint *)0x0" (identifier "puVar38") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n      if (puVar38 != (uint *)0x0) goto LAB_0004db54;\n      param_4 = (uint *)0x0;\n    }" (else "else") (compound_statement "{\n      if (puVar38 != (uint *)0x0) goto LAB_0004db54;\n      param_4 = (uint *)0x0;\n    }" ({ "{") (if_statement "if (puVar38 != (uint *)0x0) goto LAB_0004db54;" (if "if") (parenthesized_expression "(puVar38 != (uint *)0x0)" (( "(") (binary_expression "puVar38 != (uint *)0x0" (identifier "puVar38") (!= "!=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0004db54;" (goto "goto") (statement_identifier "LAB_0004db54") (; ";"))) (expression_statement "param_4 = (uint *)0x0;" (assignment_expression "param_4 = (uint *)0x0" (identifier "param_4") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")))) (} "}"))) (if_statement "if (local_78 == (uint *)0x0) {\n    bVar22 = puVar43[0x13] != 0;\n  }\n  else {\n    bVar22 = true;\n  }" (if "if") (parenthesized_expression "(local_78 == (uint *)0x0)" (( "(") (binary_expression "local_78 == (uint *)0x0" (identifier "local_78") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    bVar22 = puVar43[0x13] != 0;\n  }" ({ "{") (expression_statement "bVar22 = puVar43[0x13] != 0;" (assignment_expression "bVar22 = puVar43[0x13] != 0" (identifier "bVar22") (= "=") (binary_expression "puVar43[0x13] != 0" (subscript_expression "puVar43[0x13]" (identifier "puVar43") ([ "[") (number_literal "0x13") (] "]")) (!= "!=") (number_literal "0"))) (; ";")) (} "}")) (else_clause "else {\n    bVar22 = true;\n  }" (else "else") (compound_statement "{\n    bVar22 = true;\n  }" ({ "{") (expression_statement "bVar22 = true;" (assignment_expression "bVar22 = true" (identifier "bVar22") (= "=") (true "true")) (; ";")) (} "}")))) (expression_statement "uStack_f4 = puVar43[0x17];" (assignment_expression "uStack_f4 = puVar43[0x17]" (identifier "uStack_f4") (= "=") (subscript_expression "puVar43[0x17]" (identifier "puVar43") ([ "[") (number_literal "0x17") (] "]"))) (; ";")) (expression_statement "puVar36 = ppuVar24[5];" (assignment_expression "puVar36 = ppuVar24[5]" (identifier "puVar36") (= "=") (subscript_expression "ppuVar24[5]" (identifier "ppuVar24") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "uVar6 = puVar43[2] + 1;" (assignment_expression "uVar6 = puVar43[2] + 1" (identifier "uVar6") (= "=") (binary_expression "puVar43[2] + 1" (subscript_expression "puVar43[2]" (identifier "puVar43") ([ "[") (number_literal "2") (] "]")) (+ "+") (number_literal "1"))) (; ";")) (if_statement "if ((int)(puVar43[2] + 1) < (int)uStack_f4) {\n    uVar6 = uStack_f4;\n  }" (if "if") (parenthesized_expression "((int)(puVar43[2] + 1) < (int)uStack_f4)" (( "(") (binary_expression "(int)(puVar43[2] + 1) < (int)uStack_f4" (cast_expression "(int)(puVar43[2] + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(puVar43[2] + 1)" (( "(") (binary_expression "puVar43[2] + 1" (subscript_expression "puVar43[2]" (identifier "puVar43") ([ "[") (number_literal "2") (] "]")) (+ "+") (number_literal "1")) () ")"))) (< "<") (cast_expression "(int)uStack_f4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uStack_f4"))) () ")")) (compound_statement "{\n    uVar6 = uStack_f4;\n  }" ({ "{") (expression_statement "uVar6 = uStack_f4;" (assignment_expression "uVar6 = uStack_f4" (identifier "uVar6") (= "=") (identifier "uStack_f4")) (; ";")) (} "}"))) (expression_statement "bStack_fc = (byte)((uint)((int)ppuVar24[3] << 9) >> 0x18);" (assignment_expression "bStack_fc = (byte)((uint)((int)ppuVar24[3] << 9) >> 0x18)" (identifier "bStack_fc") (= "=") (call_expression "(byte)((uint)((int)ppuVar24[3] << 9) >> 0x18)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((uint)((int)ppuVar24[3] << 9) >> 0x18)" (( "(") (binary_expression "(uint)((int)ppuVar24[3] << 9) >> 0x18" (call_expression "(uint)((int)ppuVar24[3] << 9)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)ppuVar24[3] << 9)" (( "(") (binary_expression "(int)ppuVar24[3] << 9" (cast_expression "(int)ppuVar24[3]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "ppuVar24[3]" (identifier "ppuVar24") ([ "[") (number_literal "3") (] "]"))) (<< "<<") (number_literal "9")) () ")"))) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "bStack_f9 = 1;" (assignment_expression "bStack_f9 = 1" (identifier "bStack_f9") (= "=") (number_literal "1")) (; ";")) (if_statement "if (puVar36 == (uint *)0x0) {\n    bStack_f9 = bStack_fc >> 7;\n  }" (if "if") (parenthesized_expression "(puVar36 == (uint *)0x0)" (( "(") (binary_expression "puVar36 == (uint *)0x0" (identifier "puVar36") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    bStack_f9 = bStack_fc >> 7;\n  }" ({ "{") (expression_statement "bStack_f9 = bStack_fc >> 7;" (assignment_expression "bStack_f9 = bStack_fc >> 7" (identifier "bStack_f9") (= "=") (binary_expression "bStack_fc >> 7" (identifier "bStack_fc") (>> ">>") (number_literal "7"))) (; ";")) (} "}"))) (expression_statement "uVar34 = (int)puStack_88 + 1U;" (assignment_expression "uVar34 = (int)puStack_88 + 1U" (identifier "uVar34") (= "=") (binary_expression "(int)puStack_88 + 1U" (cast_expression "(int)puStack_88" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puStack_88")) (+ "+") (number_literal "1U"))) (; ";")) (if_statement "if ((int)uVar6 <= (int)((int)puStack_88 + 1U)) {\n    uVar34 = uVar6;\n  }" (if "if") (parenthesized_expression "((int)uVar6 <= (int)((int)puStack_88 + 1U))" (( "(") (binary_expression "(int)uVar6 <= (int)((int)puStack_88 + 1U)" (cast_expression "(int)uVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar6")) (<= "<=") (cast_expression "(int)((int)puStack_88 + 1U)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((int)puStack_88 + 1U)" (( "(") (binary_expression "(int)puStack_88 + 1U" (cast_expression "(int)puStack_88" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puStack_88")) (+ "+") (number_literal "1U")) () ")")))) () ")")) (compound_statement "{\n    uVar34 = uVar6;\n  }" ({ "{") (expression_statement "uVar34 = uVar6;" (assignment_expression "uVar34 = uVar6" (identifier "uVar34") (= "=") (identifier "uVar6")) (; ";")) (} "}"))) (expression_statement "bStack_fc = bStack_fc >> 7;" (assignment_expression "bStack_fc = bStack_fc >> 7" (identifier "bStack_fc") (= "=") (binary_expression "bStack_fc >> 7" (identifier "bStack_fc") (>> ">>") (number_literal "7"))) (; ";")) (expression_statement "bStack_fb = (byte)((puVar43[0x16] << 2) >> 0x1f);" (assignment_expression "bStack_fb = (byte)((puVar43[0x16] << 2) >> 0x1f)" (identifier "bStack_fb") (= "=") (call_expression "(byte)((puVar43[0x16] << 2) >> 0x1f)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((puVar43[0x16] << 2) >> 0x1f)" (( "(") (binary_expression "(puVar43[0x16] << 2) >> 0x1f" (parenthesized_expression "(puVar43[0x16] << 2)" (( "(") (binary_expression "puVar43[0x16] << 2" (subscript_expression "puVar43[0x16]" (identifier "puVar43") ([ "[") (number_literal "0x16") (] "]")) (<< "<<") (number_literal "2")) () ")")) (>> ">>") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "bStack_fa = (byte)((puVar43[0x16] << 3) >> 0x1f);" (assignment_expression "bStack_fa = (byte)((puVar43[0x16] << 3) >> 0x1f)" (identifier "bStack_fa") (= "=") (call_expression "(byte)((puVar43[0x16] << 3) >> 0x1f)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((puVar43[0x16] << 3) >> 0x1f)" (( "(") (binary_expression "(puVar43[0x16] << 3) >> 0x1f" (parenthesized_expression "(puVar43[0x16] << 3)" (( "(") (binary_expression "puVar43[0x16] << 3" (subscript_expression "puVar43[0x16]" (identifier "puVar43") ([ "[") (number_literal "0x16") (] "]")) (<< "<<") (number_literal "3")) () ")")) (>> ">>") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "puStack_114 = puStack_88;" (assignment_expression "puStack_114 = puStack_88" (identifier "puStack_114") (= "=") (identifier "puStack_88")) (; ";")) (expression_statement "puStack_118 = puStack_88;" (assignment_expression "puStack_118 = puStack_88" (identifier "puStack_118") (= "=") (identifier "puStack_88")) (; ";")) (expression_statement "puStack_10c = puStack_88;" (assignment_expression "puStack_10c = puStack_88" (identifier "puStack_10c") (= "=") (identifier "puStack_88")) (; ";")) (expression_statement "puStack_110 = puStack_88;" (assignment_expression "puStack_110 = puStack_88" (identifier "puStack_110") (= "=") (identifier "puStack_88")) (; ";")) (expression_statement "puStack_144 = puVar23;" (assignment_expression "puStack_144 = puVar23" (identifier "puStack_144") (= "=") (identifier "puVar23")) (; ";")) (expression_statement "puStack_104 = puVar36;" (assignment_expression "puStack_104 = puVar36" (identifier "puStack_104") (= "=") (identifier "puVar36")) (; ";")) (expression_statement "uStack_1e4 = FUN_00043278(&puStack_144,uVar34);" (assignment_expression "uStack_1e4 = FUN_00043278(&puStack_144,uVar34)" (identifier "uStack_1e4") (= "=") (call_expression "FUN_00043278(&puStack_144,uVar34)" (identifier "FUN_00043278") (argument_list "(&puStack_144,uVar34)" (( "(") (pointer_expression "&puStack_144" (& "&") (identifier "puStack_144")) (, ",") (identifier "uVar34") () ")")))) (; ";")) (expression_statement "piVar17 = piStack_e0;" (assignment_expression "piVar17 = piStack_e0" (identifier "piVar17") (= "=") (identifier "piStack_e0")) (; ";")) (if_statement "if (uStack_1e4 != 0) {\nLAB_0004dbbc:\n    while( true ) {\n      pcVar45 = *(code **)(puVar46 + 0x28520);\nLAB_0004dbc0:\n      (*pcVar45)(piVar17);\n      if (puVar43[0x13] != 0) {\nLAB_0004dc14:\n        FUN_00044db0(&puStack_144);\n        (**(code **)(puVar46 + 0x28520))(iStack_c0);\n        (**(code **)(puVar46 + 0x28520))(iStack_d0);\n      }\nLAB_0004dbd4:\n      FUN_00044d40(&puStack_144);\nLAB_0004db58:\n      if (iStack_bc == *piVar10) break;\n      uStack_1e4 = (**(code **)(puVar46 + 0x284cc))();\n      piVar17 = piStack_e0;\n    }\n    return uStack_1e4;\n  }" (if "if") (parenthesized_expression "(uStack_1e4 != 0)" (( "(") (binary_expression "uStack_1e4 != 0" (identifier "uStack_1e4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0004dbbc:\n    while( true ) {\n      pcVar45 = *(code **)(puVar46 + 0x28520);\nLAB_0004dbc0:\n      (*pcVar45)(piVar17);\n      if (puVar43[0x13] != 0) {\nLAB_0004dc14:\n        FUN_00044db0(&puStack_144);\n        (**(code **)(puVar46 + 0x28520))(iStack_c0);\n        (**(code **)(puVar46 + 0x28520))(iStack_d0);\n      }\nLAB_0004dbd4:\n      FUN_00044d40(&puStack_144);\nLAB_0004db58:\n      if (iStack_bc == *piVar10) break;\n      uStack_1e4 = (**(code **)(puVar46 + 0x284cc))();\n      piVar17 = piStack_e0;\n    }\n    return uStack_1e4;\n  }" ({ "{") (labeled_statement "LAB_0004dbbc:\n    while( true ) {\n      pcVar45 = *(code **)(puVar46 + 0x28520);\nLAB_0004dbc0:\n      (*pcVar45)(piVar17);\n      if (puVar43[0x13] != 0) {\nLAB_0004dc14:\n        FUN_00044db0(&puStack_144);\n        (**(code **)(puVar46 + 0x28520))(iStack_c0);\n        (**(code **)(puVar46 + 0x28520))(iStack_d0);\n      }\nLAB_0004dbd4:\n      FUN_00044d40(&puStack_144);\nLAB_0004db58:\n      if (iStack_bc == *piVar10) break;\n      uStack_1e4 = (**(code **)(puVar46 + 0x284cc))();\n      piVar17 = piStack_e0;\n    }" (statement_identifier "LAB_0004dbbc") (: ":") (while_statement "while( true ) {\n      pcVar45 = *(code **)(puVar46 + 0x28520);\nLAB_0004dbc0:\n      (*pcVar45)(piVar17);\n      if (puVar43[0x13] != 0) {\nLAB_0004dc14:\n        FUN_00044db0(&puStack_144);\n        (**(code **)(puVar46 + 0x28520))(iStack_c0);\n        (**(code **)(puVar46 + 0x28520))(iStack_d0);\n      }\nLAB_0004dbd4:\n      FUN_00044d40(&puStack_144);\nLAB_0004db58:\n      if (iStack_bc == *piVar10) break;\n      uStack_1e4 = (**(code **)(puVar46 + 0x284cc))();\n      piVar17 = piStack_e0;\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      pcVar45 = *(code **)(puVar46 + 0x28520);\nLAB_0004dbc0:\n      (*pcVar45)(piVar17);\n      if (puVar43[0x13] != 0) {\nLAB_0004dc14:\n        FUN_00044db0(&puStack_144);\n        (**(code **)(puVar46 + 0x28520))(iStack_c0);\n        (**(code **)(puVar46 + 0x28520))(iStack_d0);\n      }\nLAB_0004dbd4:\n      FUN_00044d40(&puStack_144);\nLAB_0004db58:\n      if (iStack_bc == *piVar10) break;\n      uStack_1e4 = (**(code **)(puVar46 + 0x284cc))();\n      piVar17 = piStack_e0;\n    }" ({ "{") (expression_statement "pcVar45 = *(code **)(puVar46 + 0x28520);" (assignment_expression "pcVar45 = *(code **)(puVar46 + 0x28520)" (identifier "pcVar45") (= "=") (pointer_expression "*(code **)(puVar46 + 0x28520)" (* "*") (cast_expression "(code **)(puVar46 + 0x28520)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar46 + 0x28520)" (( "(") (binary_expression "puVar46 + 0x28520" (identifier "puVar46") (+ "+") (number_literal "0x28520")) () ")"))))) (; ";")) (labeled_statement "LAB_0004dbc0:\n      (*pcVar45)(piVar17);" (statement_identifier "LAB_0004dbc0") (: ":") (expression_statement "(*pcVar45)(piVar17);" (call_expression "(*pcVar45)(piVar17)" (parenthesized_expression "(*pcVar45)" (( "(") (pointer_expression "*pcVar45" (* "*") (identifier "pcVar45")) () ")")) (argument_list "(piVar17)" (( "(") (identifier "piVar17") () ")"))) (; ";"))) (if_statement "if (puVar43[0x13] != 0) {\nLAB_0004dc14:\n        FUN_00044db0(&puStack_144);\n        (**(code **)(puVar46 + 0x28520))(iStack_c0);\n        (**(code **)(puVar46 + 0x28520))(iStack_d0);\n      }" (if "if") (parenthesized_expression "(puVar43[0x13] != 0)" (( "(") (binary_expression "puVar43[0x13] != 0" (subscript_expression "puVar43[0x13]" (identifier "puVar43") ([ "[") (number_literal "0x13") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0004dc14:\n        FUN_00044db0(&puStack_144);\n        (**(code **)(puVar46 + 0x28520))(iStack_c0);\n        (**(code **)(puVar46 + 0x28520))(iStack_d0);\n      }" ({ "{") (labeled_statement "LAB_0004dc14:\n        FUN_00044db0(&puStack_144);" (statement_identifier "LAB_0004dc14") (: ":") (expression_statement "FUN_00044db0(&puStack_144);" (call_expression "FUN_00044db0(&puStack_144)" (identifier "FUN_00044db0") (argument_list "(&puStack_144)" (( "(") (pointer_expression "&puStack_144" (& "&") (identifier "puStack_144")) () ")"))) (; ";"))) (expression_statement "(**(code **)(puVar46 + 0x28520))(iStack_c0);" (call_expression "(**(code **)(puVar46 + 0x28520))(iStack_c0)" (parenthesized_expression "(**(code **)(puVar46 + 0x28520))" (( "(") (pointer_expression "**(code **)(puVar46 + 0x28520)" (* "*") (pointer_expression "*(code **)(puVar46 + 0x28520)" (* "*") (cast_expression "(code **)(puVar46 + 0x28520)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar46 + 0x28520)" (( "(") (binary_expression "puVar46 + 0x28520" (identifier "puVar46") (+ "+") (number_literal "0x28520")) () ")"))))) () ")")) (argument_list "(iStack_c0)" (( "(") (identifier "iStack_c0") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar46 + 0x28520))(iStack_d0);" (call_expression "(**(code **)(puVar46 + 0x28520))(iStack_d0)" (parenthesized_expression "(**(code **)(puVar46 + 0x28520))" (( "(") (pointer_expression "**(code **)(puVar46 + 0x28520)" (* "*") (pointer_expression "*(code **)(puVar46 + 0x28520)" (* "*") (cast_expression "(code **)(puVar46 + 0x28520)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar46 + 0x28520)" (( "(") (binary_expression "puVar46 + 0x28520" (identifier "puVar46") (+ "+") (number_literal "0x28520")) () ")"))))) () ")")) (argument_list "(iStack_d0)" (( "(") (identifier "iStack_d0") () ")"))) (; ";")) (} "}"))) (labeled_statement "LAB_0004dbd4:\n      FUN_00044d40(&puStack_144);" (statement_identifier "LAB_0004dbd4") (: ":") (expression_statement "FUN_00044d40(&puStack_144);" (call_expression "FUN_00044d40(&puStack_144)" (identifier "FUN_00044d40") (argument_list "(&puStack_144)" (( "(") (pointer_expression "&puStack_144" (& "&") (identifier "puStack_144")) () ")"))) (; ";"))) (labeled_statement "LAB_0004db58:\n      if (iStack_bc == *piVar10) break;" (statement_identifier "LAB_0004db58") (: ":") (if_statement "if (iStack_bc == *piVar10) break;" (if "if") (parenthesized_expression "(iStack_bc == *piVar10)" (( "(") (binary_expression "iStack_bc == *piVar10" (identifier "iStack_bc") (== "==") (pointer_expression "*piVar10" (* "*") (identifier "piVar10"))) () ")")) (break_statement "break;" (break "break") (; ";")))) (expression_statement "uStack_1e4 = (**(code **)(puVar46 + 0x284cc))();" (assignment_expression "uStack_1e4 = (**(code **)(puVar46 + 0x284cc))()" (identifier "uStack_1e4") (= "=") (call_expression "(**(code **)(puVar46 + 0x284cc))()" (parenthesized_expression "(**(code **)(puVar46 + 0x284cc))" (( "(") (pointer_expression "**(code **)(puVar46 + 0x284cc)" (* "*") (pointer_expression "*(code **)(puVar46 + 0x284cc)" (* "*") (cast_expression "(code **)(puVar46 + 0x284cc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar46 + 0x284cc)" (( "(") (binary_expression "puVar46 + 0x284cc" (identifier "puVar46") (+ "+") (number_literal "0x284cc")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "piVar17 = piStack_e0;" (assignment_expression "piVar17 = piStack_e0" (identifier "piVar17") (= "=") (identifier "piStack_e0")) (; ";")) (} "}")))) (return_statement "return uStack_1e4;" (return "return") (identifier "uStack_1e4") (; ";")) (} "}"))) (expression_statement "puStack_100 = puVar43 + 0x18;" (assignment_expression "puStack_100 = puVar43 + 0x18" (identifier "puStack_100") (= "=") (binary_expression "puVar43 + 0x18" (identifier "puVar43") (+ "+") (number_literal "0x18"))) (; ";")) (expression_statement "bStack_f6 = (byte)((puVar43[0x16] << 4) >> 0x1f);" (assignment_expression "bStack_f6 = (byte)((puVar43[0x16] << 4) >> 0x1f)" (identifier "bStack_f6") (= "=") (call_expression "(byte)((puVar43[0x16] << 4) >> 0x1f)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((puVar43[0x16] << 4) >> 0x1f)" (( "(") (binary_expression "(puVar43[0x16] << 4) >> 0x1f" (parenthesized_expression "(puVar43[0x16] << 4)" (( "(") (binary_expression "puVar43[0x16] << 4" (subscript_expression "puVar43[0x16]" (identifier "puVar43") ([ "[") (number_literal "0x16") (] "]")) (<< "<<") (number_literal "4")) () ")")) (>> ">>") (number_literal "0x1f")) () ")")))) (; ";")) (if_statement "if ((bStack_f9 != 0) || (puStack_140 = puVar23, puStack_128 = puStack_88, 1 < (int)puVar43[0x17]))\n  {\n    puStack_128 = (uint *)0x0;\n  }" (if "if") (parenthesized_expression "((bStack_f9 != 0) || (puStack_140 = puVar23, puStack_128 = puStack_88, 1 < (int)puVar43[0x17]))" (( "(") (binary_expression "(bStack_f9 != 0) || (puStack_140 = puVar23, puStack_128 = puStack_88, 1 < (int)puVar43[0x17])" (parenthesized_expression "(bStack_f9 != 0)" (( "(") (binary_expression "bStack_f9 != 0" (identifier "bStack_f9") (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(puStack_140 = puVar23, puStack_128 = puStack_88, 1 < (int)puVar43[0x17])" (( "(") (comma_expression "puStack_140 = puVar23, puStack_128 = puStack_88, 1 < (int)puVar43[0x17]" (assignment_expression "puStack_140 = puVar23" (identifier "puStack_140") (= "=") (identifier "puVar23")) (, ",") (comma_expression "puStack_128 = puStack_88, 1 < (int)puVar43[0x17]" (assignment_expression "puStack_128 = puStack_88" (identifier "puStack_128") (= "=") (identifier "puStack_88")) (, ",") (binary_expression "1 < (int)puVar43[0x17]" (number_literal "1") (< "<") (cast_expression "(int)puVar43[0x17]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "puVar43[0x17]" (identifier "puVar43") ([ "[") (number_literal "0x17") (] "]")))))) () ")"))) () ")")) (compound_statement "{\n    puStack_128 = (uint *)0x0;\n  }" ({ "{") (expression_statement "puStack_128 = (uint *)0x0;" (assignment_expression "puStack_128 = (uint *)0x0" (identifier "puStack_128") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (expression_statement "puStack_10c = puVar32;" (assignment_expression "puStack_10c = puVar32" (identifier "puStack_10c") (= "=") (identifier "puVar32")) (; ";")) (expression_statement "puStack_110 = puVar32;" (assignment_expression "puStack_110 = puVar32" (identifier "puStack_110") (= "=") (identifier "puVar32")) (; ";")) (expression_statement "puStack_124 = puStack_128;" (assignment_expression "puStack_124 = puStack_128" (identifier "puStack_124") (= "=") (identifier "puStack_128")) (; ";")) (expression_statement "bStack_f7 = (byte)((uint)((int)ppuVar24[7] << 7) >> 0x1f);" (assignment_expression "bStack_f7 = (byte)((uint)((int)ppuVar24[7] << 7) >> 0x1f)" (identifier "bStack_f7") (= "=") (call_expression "(byte)((uint)((int)ppuVar24[7] << 7) >> 0x1f)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((uint)((int)ppuVar24[7] << 7) >> 0x1f)" (( "(") (binary_expression "(uint)((int)ppuVar24[7] << 7) >> 0x1f" (call_expression "(uint)((int)ppuVar24[7] << 7)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)ppuVar24[7] << 7)" (( "(") (binary_expression "(int)ppuVar24[7] << 7" (cast_expression "(int)ppuVar24[7]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "ppuVar24[7]" (identifier "ppuVar24") ([ "[") (number_literal "7") (] "]"))) (<< "<<") (number_literal "7")) () ")"))) (>> ">>") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "uVar6 = puVar43[0x13];" (assignment_expression "uVar6 = puVar43[0x13]" (identifier "uVar6") (= "=") (subscript_expression "puVar43[0x13]" (identifier "puVar43") ([ "[") (number_literal "0x13") (] "]"))) (; ";")) (expression_statement "iVar29 = uVar6 * 2;" (assignment_expression "iVar29 = uVar6 * 2" (identifier "iVar29") (= "=") (binary_expression "uVar6 * 2" (identifier "uVar6") (* "*") (number_literal "2"))) (; ";")) (expression_statement "puStack_ec = &_gp_1;" (assignment_expression "puStack_ec = &_gp_1" (identifier "puStack_ec") (= "=") (pointer_expression "&_gp_1" (& "&") (identifier "_gp_1"))) (; ";")) (expression_statement "uStack_e8 = 0xffffffff;" (assignment_expression "uStack_e8 = 0xffffffff" (identifier "uStack_e8") (= "=") (number_literal "0xffffffff")) (; ";")) (if_statement "if (0 < iVar29) {\n    if (0xccccccc < iVar29) goto LAB_0004dbf8;\n    iVar30 = (**(code **)(puVar46 + 0x28450))(uVar6 * 0x28);\n    iStack_d0 = iVar30;\n    iStack_c0 = (**(code **)(puVar46 + 0x28450))(uVar6 * 8);\n    if ((iVar30 == 0) || (iStack_c0 == 0)) goto LAB_0004dbf8;\n  }" (if "if") (parenthesized_expression "(0 < iVar29)" (( "(") (binary_expression "0 < iVar29" (number_literal "0") (< "<") (identifier "iVar29")) () ")")) (compound_statement "{\n    if (0xccccccc < iVar29) goto LAB_0004dbf8;\n    iVar30 = (**(code **)(puVar46 + 0x28450))(uVar6 * 0x28);\n    iStack_d0 = iVar30;\n    iStack_c0 = (**(code **)(puVar46 + 0x28450))(uVar6 * 8);\n    if ((iVar30 == 0) || (iStack_c0 == 0)) goto LAB_0004dbf8;\n  }" ({ "{") (if_statement "if (0xccccccc < iVar29) goto LAB_0004dbf8;" (if "if") (parenthesized_expression "(0xccccccc < iVar29)" (( "(") (binary_expression "0xccccccc < iVar29" (number_literal "0xccccccc") (< "<") (identifier "iVar29")) () ")")) (goto_statement "goto LAB_0004dbf8;" (goto "goto") (statement_identifier "LAB_0004dbf8") (; ";"))) (expression_statement "iVar30 = (**(code **)(puVar46 + 0x28450))(uVar6 * 0x28);" (assignment_expression "iVar30 = (**(code **)(puVar46 + 0x28450))(uVar6 * 0x28)" (identifier "iVar30") (= "=") (call_expression "(**(code **)(puVar46 + 0x28450))(uVar6 * 0x28)" (parenthesized_expression "(**(code **)(puVar46 + 0x28450))" (( "(") (pointer_expression "**(code **)(puVar46 + 0x28450)" (* "*") (pointer_expression "*(code **)(puVar46 + 0x28450)" (* "*") (cast_expression "(code **)(puVar46 + 0x28450)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar46 + 0x28450)" (( "(") (binary_expression "puVar46 + 0x28450" (identifier "puVar46") (+ "+") (number_literal "0x28450")) () ")"))))) () ")")) (argument_list "(uVar6 * 0x28)" (( "(") (binary_expression "uVar6 * 0x28" (identifier "uVar6") (* "*") (number_literal "0x28")) () ")")))) (; ";")) (expression_statement "iStack_d0 = iVar30;" (assignment_expression "iStack_d0 = iVar30" (identifier "iStack_d0") (= "=") (identifier "iVar30")) (; ";")) (expression_statement "iStack_c0 = (**(code **)(puVar46 + 0x28450))(uVar6 * 8);" (assignment_expression "iStack_c0 = (**(code **)(puVar46 + 0x28450))(uVar6 * 8)" (identifier "iStack_c0") (= "=") (call_expression "(**(code **)(puVar46 + 0x28450))(uVar6 * 8)" (parenthesized_expression "(**(code **)(puVar46 + 0x28450))" (( "(") (pointer_expression "**(code **)(puVar46 + 0x28450)" (* "*") (pointer_expression "*(code **)(puVar46 + 0x28450)" (* "*") (cast_expression "(code **)(puVar46 + 0x28450)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar46 + 0x28450)" (( "(") (binary_expression "puVar46 + 0x28450" (identifier "puVar46") (+ "+") (number_literal "0x28450")) () ")"))))) () ")")) (argument_list "(uVar6 * 8)" (( "(") (binary_expression "uVar6 * 8" (identifier "uVar6") (* "*") (number_literal "8")) () ")")))) (; ";")) (if_statement "if ((iVar30 == 0) || (iStack_c0 == 0)) goto LAB_0004dbf8;" (if "if") (parenthesized_expression "((iVar30 == 0) || (iStack_c0 == 0))" (( "(") (binary_expression "(iVar30 == 0) || (iStack_c0 == 0)" (parenthesized_expression "(iVar30 == 0)" (( "(") (binary_expression "iVar30 == 0" (identifier "iVar30") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iStack_c0 == 0)" (( "(") (binary_expression "iStack_c0 == 0" (identifier "iStack_c0") (== "==") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_0004dbf8;" (goto "goto") (statement_identifier "LAB_0004dbf8") (; ";"))) (} "}"))) (expression_statement "iStack_d4 = iVar29;" (assignment_expression "iStack_d4 = iVar29" (identifier "iStack_d4") (= "=") (identifier "iVar29")) (; ";")) (expression_statement "iStack_c4 = iVar29;" (assignment_expression "iStack_c4 = iVar29" (identifier "iStack_c4") (= "=") (identifier "iVar29")) (; ";")) (expression_statement "bVar1 = (uint *)0x1 < local_78;" (assignment_expression "bVar1 = (uint *)0x1 < local_78" (identifier "bVar1") (= "=") (binary_expression "(uint *)0x1 < local_78" (cast_expression "(uint *)0x1" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1")) (< "<") (identifier "local_78"))) (; ";")) (expression_statement "iStack_cc = 1;" (assignment_expression "iStack_cc = 1" (identifier "iStack_cc") (= "=") (number_literal "1")) (; ";")) (if_statement "if ((bVar1) || ((puVar43[0x16] & 0x40000000) != 0)) {\n    if (0x3ffffffe < uStack_120) {\nLAB_0004dbf8:\n      uStack_1e4 = 0xc;\n      (**(code **)(puVar46 + 0x28520))(piStack_e0);\n      if (puVar43[0x13] == 0) goto LAB_0004dbd4;\n      goto LAB_0004dc14;\n    }\n    piStack_e0 = (int *)(**(code **)(puVar46 + 0x28450))((uStack_120 + 1) * 4);\n    piVar17 = piStack_e0;\n    if (piStack_e0 == (int *)0x0) {\nLAB_0004dbb4:\n      uStack_1e4 = 0xc;\n      goto LAB_0004dbbc;\n    }\n  }\n  else {\n    piStack_e0 = (int *)0x0;\n  }" (if "if") (parenthesized_expression "((bVar1) || ((puVar43[0x16] & 0x40000000) != 0))" (( "(") (binary_expression "(bVar1) || ((puVar43[0x16] & 0x40000000) != 0)" (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (|| "||") (parenthesized_expression "((puVar43[0x16] & 0x40000000) != 0)" (( "(") (binary_expression "(puVar43[0x16] & 0x40000000) != 0" (parenthesized_expression "(puVar43[0x16] & 0x40000000)" (( "(") (binary_expression "puVar43[0x16] & 0x40000000" (subscript_expression "puVar43[0x16]" (identifier "puVar43") ([ "[") (number_literal "0x16") (] "]")) (& "&") (number_literal "0x40000000")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    if (0x3ffffffe < uStack_120) {\nLAB_0004dbf8:\n      uStack_1e4 = 0xc;\n      (**(code **)(puVar46 + 0x28520))(piStack_e0);\n      if (puVar43[0x13] == 0) goto LAB_0004dbd4;\n      goto LAB_0004dc14;\n    }\n    piStack_e0 = (int *)(**(code **)(puVar46 + 0x28450))((uStack_120 + 1) * 4);\n    piVar17 = piStack_e0;\n    if (piStack_e0 == (int *)0x0) {\nLAB_0004dbb4:\n      uStack_1e4 = 0xc;\n      goto LAB_0004dbbc;\n    }\n  }" ({ "{") (if_statement "if (0x3ffffffe < uStack_120) {\nLAB_0004dbf8:\n      uStack_1e4 = 0xc;\n      (**(code **)(puVar46 + 0x28520))(piStack_e0);\n      if (puVar43[0x13] == 0) goto LAB_0004dbd4;\n      goto LAB_0004dc14;\n    }" (if "if") (parenthesized_expression "(0x3ffffffe < uStack_120)" (( "(") (binary_expression "0x3ffffffe < uStack_120" (number_literal "0x3ffffffe") (< "<") (identifier "uStack_120")) () ")")) (compound_statement "{\nLAB_0004dbf8:\n      uStack_1e4 = 0xc;\n      (**(code **)(puVar46 + 0x28520))(piStack_e0);\n      if (puVar43[0x13] == 0) goto LAB_0004dbd4;\n      goto LAB_0004dc14;\n    }" ({ "{") (labeled_statement "LAB_0004dbf8:\n      uStack_1e4 = 0xc;" (statement_identifier "LAB_0004dbf8") (: ":") (expression_statement "uStack_1e4 = 0xc;" (assignment_expression "uStack_1e4 = 0xc" (identifier "uStack_1e4") (= "=") (number_literal "0xc")) (; ";"))) (expression_statement "(**(code **)(puVar46 + 0x28520))(piStack_e0);" (call_expression "(**(code **)(puVar46 + 0x28520))(piStack_e0)" (parenthesized_expression "(**(code **)(puVar46 + 0x28520))" (( "(") (pointer_expression "**(code **)(puVar46 + 0x28520)" (* "*") (pointer_expression "*(code **)(puVar46 + 0x28520)" (* "*") (cast_expression "(code **)(puVar46 + 0x28520)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar46 + 0x28520)" (( "(") (binary_expression "puVar46 + 0x28520" (identifier "puVar46") (+ "+") (number_literal "0x28520")) () ")"))))) () ")")) (argument_list "(piStack_e0)" (( "(") (identifier "piStack_e0") () ")"))) (; ";")) (if_statement "if (puVar43[0x13] == 0) goto LAB_0004dbd4;" (if "if") (parenthesized_expression "(puVar43[0x13] == 0)" (( "(") (binary_expression "puVar43[0x13] == 0" (subscript_expression "puVar43[0x13]" (identifier "puVar43") ([ "[") (number_literal "0x13") (] "]")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0004dbd4;" (goto "goto") (statement_identifier "LAB_0004dbd4") (; ";"))) (goto_statement "goto LAB_0004dc14;" (goto "goto") (statement_identifier "LAB_0004dc14") (; ";")) (} "}"))) (expression_statement "piStack_e0 = (int *)(**(code **)(puVar46 + 0x28450))((uStack_120 + 1) * 4);" (assignment_expression "piStack_e0 = (int *)(**(code **)(puVar46 + 0x28450))((uStack_120 + 1) * 4)" (identifier "piStack_e0") (= "=") (cast_expression "(int *)(**(code **)(puVar46 + 0x28450))((uStack_120 + 1) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar46 + 0x28450))((uStack_120 + 1) * 4)" (parenthesized_expression "(**(code **)(puVar46 + 0x28450))" (( "(") (pointer_expression "**(code **)(puVar46 + 0x28450)" (* "*") (pointer_expression "*(code **)(puVar46 + 0x28450)" (* "*") (cast_expression "(code **)(puVar46 + 0x28450)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar46 + 0x28450)" (( "(") (binary_expression "puVar46 + 0x28450" (identifier "puVar46") (+ "+") (number_literal "0x28450")) () ")"))))) () ")")) (argument_list "((uStack_120 + 1) * 4)" (( "(") (binary_expression "(uStack_120 + 1) * 4" (parenthesized_expression "(uStack_120 + 1)" (( "(") (binary_expression "uStack_120 + 1" (identifier "uStack_120") (+ "+") (number_literal "1")) () ")")) (* "*") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "piVar17 = piStack_e0;" (assignment_expression "piVar17 = piStack_e0" (identifier "piVar17") (= "=") (identifier "piStack_e0")) (; ";")) (if_statement "if (piStack_e0 == (int *)0x0) {\nLAB_0004dbb4:\n      uStack_1e4 = 0xc;\n      goto LAB_0004dbbc;\n    }" (if "if") (parenthesized_expression "(piStack_e0 == (int *)0x0)" (( "(") (binary_expression "piStack_e0 == (int *)0x0" (identifier "piStack_e0") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_0004dbb4:\n      uStack_1e4 = 0xc;\n      goto LAB_0004dbbc;\n    }" ({ "{") (labeled_statement "LAB_0004dbb4:\n      uStack_1e4 = 0xc;" (statement_identifier "LAB_0004dbb4") (: ":") (expression_statement "uStack_1e4 = 0xc;" (assignment_expression "uStack_1e4 = 0xc" (identifier "uStack_1e4") (= "=") (number_literal "0xc")) (; ";"))) (goto_statement "goto LAB_0004dbbc;" (goto "goto") (statement_identifier "LAB_0004dbbc") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    piStack_e0 = (int *)0x0;\n  }" (else "else") (compound_statement "{\n    piStack_e0 = (int *)0x0;\n  }" ({ "{") (expression_statement "piStack_e0 = (int *)0x0;" (assignment_expression "piStack_e0 = (int *)0x0" (identifier "piStack_e0") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")))) (expression_statement "uVar34 = puVar43[0x17];" (assignment_expression "uVar34 = puVar43[0x17]" (identifier "uVar34") (= "=") (subscript_expression "puVar43[0x17]" (identifier "puVar43") ([ "[") (number_literal "0x17") (] "]"))) (; ";")) (expression_statement "iVar29 = -1;" (assignment_expression "iVar29 = -1" (identifier "iVar29") (= "=") (number_literal "-1")) (; ";")) (expression_statement "puStack_16c = param_4;" (assignment_expression "puStack_16c = param_4" (identifier "puStack_16c") (= "=") (identifier "param_4")) (; ";")) (expression_statement "uStack_108 = 6;" (assignment_expression "uStack_108 = 6" (identifier "uStack_108") (= "=") (number_literal "6")) (; ";")) (expression_statement "uVar6 = (uint)((int)puVar38 < (int)param_4);" (assignment_expression "uVar6 = (uint)((int)puVar38 < (int)param_4)" (identifier "uVar6") (= "=") (call_expression "(uint)((int)puVar38 < (int)param_4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)puVar38 < (int)param_4)" (( "(") (binary_expression "(int)puVar38 < (int)param_4" (cast_expression "(int)puVar38" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar38")) (< "<") (cast_expression "(int)param_4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_4"))) () ")")))) (; ";")) (expression_statement "puVar23 = puVar38;" (assignment_expression "puVar23 = puVar38" (identifier "puVar23") (= "=") (identifier "puVar38")) (; ";")) (if_statement "if (uVar6 == 0) {\n    iVar29 = 1;\n    puVar23 = param_4;\n  }" (if "if") (parenthesized_expression "(uVar6 == 0)" (( "(") (binary_expression "uVar6 == 0" (identifier "uVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iVar29 = 1;\n    puVar23 = param_4;\n  }" ({ "{") (expression_statement "iVar29 = 1;" (assignment_expression "iVar29 = 1" (identifier "iVar29") (= "=") (number_literal "1")) (; ";")) (expression_statement "puVar23 = param_4;" (assignment_expression "puVar23 = param_4" (identifier "puVar23") (= "=") (identifier "param_4")) (; ";")) (} "}"))) (if_statement "if ((int)puVar38 <= (int)param_4) {\n    puVar38 = param_4;\n  }" (if "if") (parenthesized_expression "((int)puVar38 <= (int)param_4)" (( "(") (binary_expression "(int)puVar38 <= (int)param_4" (cast_expression "(int)puVar38" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar38")) (<= "<=") (cast_expression "(int)param_4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_4"))) () ")")) (compound_statement "{\n    puVar38 = param_4;\n  }" ({ "{") (expression_statement "puVar38 = param_4;" (assignment_expression "puVar38 = param_4" (identifier "puVar38") (= "=") (identifier "param_4")) (; ";")) (} "}"))) (if_statement "if (puStack_1e0 == (uint *)0x0) goto LAB_0004eabc;" (if "if") (parenthesized_expression "(puStack_1e0 == (uint *)0x0)" (( "(") (binary_expression "puStack_1e0 == (uint *)0x0" (identifier "puStack_1e0") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0004eabc;" (goto "goto") (statement_identifier "LAB_0004eabc") (; ";"))) (expression_statement "uVar11 = 4;" (assignment_expression "uVar11 = 4" (identifier "uVar11") (= "=") (number_literal "4")) (; ";")) (if_statement "if (((uVar34 != 1) && (uVar11 = 0, -1 < (int)ppuVar24[3] << 9)) &&\n     (uVar11 = 4, puVar36 != (uint *)0x0)) {\n    uVar11 = 0;\n  }" (if "if") (parenthesized_expression "(((uVar34 != 1) && (uVar11 = 0, -1 < (int)ppuVar24[3] << 9)) &&\n     (uVar11 = 4, puVar36 != (uint *)0x0))" (( "(") (binary_expression "((uVar34 != 1) && (uVar11 = 0, -1 < (int)ppuVar24[3] << 9)) &&\n     (uVar11 = 4, puVar36 != (uint *)0x0)" (parenthesized_expression "((uVar34 != 1) && (uVar11 = 0, -1 < (int)ppuVar24[3] << 9))" (( "(") (binary_expression "(uVar34 != 1) && (uVar11 = 0, -1 < (int)ppuVar24[3] << 9)" (parenthesized_expression "(uVar34 != 1)" (( "(") (binary_expression "uVar34 != 1" (identifier "uVar34") (!= "!=") (number_literal "1")) () ")")) (&& "&&") (parenthesized_expression "(uVar11 = 0, -1 < (int)ppuVar24[3] << 9)" (( "(") (comma_expression "uVar11 = 0, -1 < (int)ppuVar24[3] << 9" (assignment_expression "uVar11 = 0" (identifier "uVar11") (= "=") (number_literal "0")) (, ",") (binary_expression "-1 < (int)ppuVar24[3] << 9" (number_literal "-1") (< "<") (binary_expression "(int)ppuVar24[3] << 9" (cast_expression "(int)ppuVar24[3]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "ppuVar24[3]" (identifier "ppuVar24") ([ "[") (number_literal "3") (] "]"))) (<< "<<") (number_literal "9")))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(uVar11 = 4, puVar36 != (uint *)0x0)" (( "(") (comma_expression "uVar11 = 4, puVar36 != (uint *)0x0" (assignment_expression "uVar11 = 4" (identifier "uVar11") (= "=") (number_literal "4")) (, ",") (binary_expression "puVar36 != (uint *)0x0" (identifier "puVar36") (!= "!=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (compound_statement "{\n    uVar11 = 0;\n  }" ({ "{") (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" (identifier "uVar11") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "uVar31 = 2;" (assignment_expression "uVar31 = 2" (identifier "uVar31") (= "=") (number_literal "2")) (; ";")) (if_statement "if (uVar6 != 0) {\n    uVar31 = 0;\n  }" (if "if") (parenthesized_expression "(uVar6 != 0)" (( "(") (binary_expression "uVar6 != 0" (identifier "uVar6") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    uVar31 = 0;\n  }" ({ "{") (expression_statement "uVar31 = 0;" (assignment_expression "uVar31 = 0" (identifier "uVar31") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "uVar31 = puVar36 != (uint *)0x0 | uVar11 | uVar31;" (assignment_expression "uVar31 = puVar36 != (uint *)0x0 | uVar11 | uVar31" (identifier "uVar31") (= "=") (binary_expression "puVar36 != (uint *)0x0 | uVar11 | uVar31" (binary_expression "puVar36 != (uint *)0x0 | uVar11" (binary_expression "puVar36 != (uint *)0x0" (identifier "puVar36") (!= "!=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (| "|") (identifier "uVar11")) (| "|") (identifier "uVar31"))) (; ";")) (labeled_statement "LAB_0004dab0:\n  if (((int)puVar23 <= (int)param_4) && ((int)param_4 <= (int)puVar38)) {\n    ppuVar12 = &puStack_16c;\n    if (uVar6 != 0) {\n      ppuVar12 = (uint **)0x0;\n    }\n    iVar25 = *(int *)(puVar46 + 0x28244);\n    iVar13 = *(int *)(puVar46 + 0x27edc);\n    iVar26 = *(int *)(puVar46 + 0x2829c);\n    iVar30 = iStack_12c;\n    puVar36 = puStack_88;\n    do {\n      puStack_88 = puVar36;\n      if (uVar31 - 4 < 5) {\n                    \n                    \n        uVar6 = (*(code *)(puVar46 + *(int *)(iVar13 + 0x2be4 + (uVar31 - 4) * 4) + 0x2fea4))();\n        return uVar6;\n      }\n      iStack_12c = iVar30;\n      while( true ) {\n        puVar39 = (uint *)((int)param_4 - iVar30);\n        if (puStack_124 <= puVar39) {\n          uStack_1e4 = (*(code *)(iVar25 + 0x7eac))(&puStack_144,param_4,&_gp_1);\n          piVar17 = piStack_e0;\n          if (uStack_1e4 != 0) goto LAB_0004dbbc;\n          puVar39 = (uint *)((int)param_4 - iStack_12c);\n          iVar30 = iStack_12c;\n        }\n        if ((int)param_4 < (int)puVar36) {\n          cVar21 = *(char *)((int)puStack_1e0 + (uint)*(byte *)((int)puStack_140 + (int)puVar39));\n        }\n        else {\n          cVar21 = *(char *)puStack_1e0;\n        }\n        if (cVar21 != '\0') break;\n        param_4 = (uint *)((int)param_4 + iVar29);\n        puStack_16c = param_4;\n        if (((int)param_4 < (int)puVar23) || ((int)puVar38 < (int)param_4)) goto LAB_0004df68;\n      }\n      uVar11 = FUN_00047eac(&puStack_144,param_4,&_gp_1);\n      puVar36 = puStack_f0;\n      uVar6 = uStack_11c;\n      piVar17 = piStack_e0;\n      uStack_1e4 = uVar11;\n      if (uVar11 != 0) goto LAB_0004dbbc;\n      if (((uVar34 == 1) || (puStack_128 == (uint *)0x0)) || (*piStack_13c != -1)) {\n        iStack_cc = 0;\n        uStack_d8 = 0;\n        uVar41 = puStack_f0[9];\n        uStack_1d0 = uStack_11c;\n        iStack_dc = 0;\n        uStack_168 = 0;\n        if ((*(byte *)(uVar41 + 0x34) & 1) != 0) {\n          uVar14 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n          if ((uVar14 & 1) == 0) {\n            if (uVar14 == 0) goto LAB_0004dd24;\n            if ((uVar14 & 6) == 6) {\n              uVar41 = puVar36[0xc];\n            }\n            else if ((uVar14 & 2) == 0) {\n              if ((uVar14 & 4) == 0) goto LAB_0004dd24;\n              uVar41 = FUN_00046cac(&uStack_168,puVar36,*(undefined4 *)(uVar41 + 0x28),uVar14);\n            }\n            else {\n              uVar41 = puVar36[0xb];\n            }\n          }\n          else {\n            uVar41 = puVar36[10];\n          }\n          if (uVar41 == 0) goto code_r0x0004ea7c;\n        }\nLAB_0004dd24:\n        bVar4 = ppuVar12 != (uint **)0x0;\n        if ((piStack_e0 == (int *)0x0) ||\n           (uVar14 = puVar36[0x13], piStack_e0[uVar6] = uVar41, uVar14 == 0)) {\nLAB_0004dd48:\n          if (*(int *)(uVar41 + 0x34) << 4 < 0) {\n            if (((*(byte *)(uVar41 + 0x34) & 1) == 0) ||\n               (iVar30 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar41 + 8),uVar41 + 0xc,uVar6),\n               iVar30 != 0)) {\n              uVar14 = uVar6;\n              bVar5 = bVar22;\n              if (!bVar22) goto LAB_0004e0e4;\n            }\n            else {\n              uVar6 = 0xffffffff;\n              bVar5 = false;\n            }\n          }\n          else {\n            uVar6 = 0xffffffff;\n            bVar5 = false;\n          }\n          iVar30 = *(int *)(puVar46 + 0x28244);\n          iVar15 = *(int *)(puVar46 + 0x2829c);\n          uVar14 = uStack_11c;\n          ppuStack_1dc = ppuVar12;\n          while ((int)uVar14 < (int)puStack_10c) {\n            uVar40 = uVar14 + 1;\n            if ((((int)uVar40 < (int)uStack_120) || ((int)puStack_114 <= (int)uStack_120)) &&\n               (((int)uVar40 < (int)puStack_128 || ((int)puStack_114 <= (int)puStack_128)))) {\n              iVar16 = *(int *)(uVar41 + 0x34);\n              puVar36 = puStack_f0;\n            }\n            else {\n              uStack_168 = (*(code *)(iVar30 + 0x41e4))(&puStack_144,uVar14 + 2);\n              if (uStack_168 != 0) {\n                if (uStack_168 == 0xc) goto LAB_0004dbf8;\n                uVar20 = 0x46c;\n                goto LAB_0004ea9c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x34);\n              uVar14 = uStack_11c;\n              puVar36 = puStack_f0;\n            }\n            puStack_f0 = puVar36;\n            if (iVar16 << 5 < 0) {\n              iVar16 = *(int *)(uVar41 + 8);\n              if (0 < iVar16) {\n                param_4 = (uint *)0x0;\n                iVar18 = *(int *)(puVar46 + 0x28244);\n                pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7ab0);\n                do {\n                  uVar42 = *puVar36;\n                  iVar44 = *(int *)(*(int *)(uVar41 + 0xc) + (int)param_4 * 4);\n                  uVar37 = *(uint *)(uVar42 + iVar44 * 8 + 4);\n                  if ((uVar37 & 0x800) != 0) {\n                    if ((uVar37 & 0xffc000) != 0) {\n                      uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec);\n                      uVar37 = (uVar37 << 8) >> 0x16;\n                      if ((uVar37 & 4) == 0) {\n                        uVar27 = uVar19 & 1;\n                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    iVar16 = (*(code *)(iVar15 + -0x4eb0))\n                                       (uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14);\n                    if (iVar16 != 0) {\n                      if (iStack_cc < iVar16) {\n                        iStack_cc = iVar16;\n                      }\n                      iVar16 = iVar16 + uStack_11c;\n                      uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16);\n                      uVar14 = uStack_164;\n                      if (uStack_164 != 0) goto joined_r0x0004e770;\n                      piVar33 = piStack_e0 + iVar16;\n                      iVar28 = *piVar33;\n                      piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc);\n                      if (iVar28 == 0) {\n                        piStack_160 = (int *)*piVar17;\n                        piStack_15c = (int *)piVar17[1];\n                        iStack_158 = piVar17[2];\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        *piVar33 = iVar44;\n                      }\n                      else {\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }\n                      if ((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar16 = *(int *)(uVar41 + 8);\n                    uVar14 = uStack_11c;\n                  }\nLAB_0004e670:\n                  param_4 = (uint *)((int)param_4 + 1);\n                } while ((int)param_4 < iVar16);\n              }\n              uStack_168 = 0;\n            }\n            uStack_11c = uVar14 + 1;\n            uVar14 = (uint)*(byte *)((int)puStack_140 + uVar14);\n            do {\n              if (*(int *)(uVar41 + 0x2c) != 0) {\n                uVar37 = *(uint *)(*(int *)(uVar41 + 0x2c) + uVar14 * 4);\nLAB_0004ddf0:\n                if (piStack_e0 != (int *)0x0) goto LAB_0004ddfc;\n                goto LAB_0004de1c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x30);\n              if (iVar16 != 0) {\n                uVar37 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n                if ((uVar37 & 1) == 0) {\n                  uVar37 = *(uint *)(iVar16 + uVar14 * 4);\n                }\n                else {\n                  uVar37 = *(uint *)(iVar16 + (uVar14 + 0x100) * 4);\n                }\n                goto LAB_0004ddf0;\n              }\n              iVar16 = (*(code *)(iVar26 + -0x7510))(puStack_f0,uVar41);\n            } while (iVar16 != 0);\n            uStack_168 = 0xc;\n            uVar14 = uStack_168;\njoined_r0x0004e770:\n            uStack_168 = uVar14;\n            if (piStack_e0 == (int *)0x0) {\n              piVar17 = (int *)0x0;\n              goto LAB_0004dbb4;\n            }\n            uVar37 = 0;\nLAB_0004ddfc:\n            uVar37 = FUN_0004d0a8(&uStack_168,&puStack_144,uVar37);\nLAB_0004de1c:\n            uVar14 = uStack_11c;\n            if (uVar37 == 0) {\n              piVar17 = piStack_e0;\n              if (uStack_168 != 0) goto LAB_0004dbb4;\n              if ((piStack_e0 == (int *)0x0) || ((bVar5 && (!bVar22)))) break;\n              param_4 = &uStack_168;\n              do {\n                bVar2 = false;\n                piVar17 = piStack_e0 + uStack_11c;\n                uVar14 = uStack_11c;\n                do {\n                  uVar37 = uVar14 + 1;\n                  piVar17 = piVar17 + 1;\n                  if (iStack_dc < (int)uVar37) {\n                    if (bVar2) {\n                      uStack_11c = uVar14;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar2 = true;\n                  uVar14 = uVar37;\n                } while (*piVar17 == 0);\n                uStack_11c = uVar37;\n                uVar37 = FUN_0004d0a8(param_4,&puStack_144,0);\n                uVar14 = uStack_11c;\n                if (uStack_168 != 0) {\n                  if (uVar37 == 0) goto LAB_0004e0cc;\n                  break;\n                }\n              } while (uVar37 == 0);\n            }\n            uVar42 = uStack_1d0;\n            if ((bVar4) && (uVar42 = uVar40, uVar41 != uVar37)) {\n              bVar4 = false;\n              uVar42 = uStack_1d0;\n            }\n            uStack_1d0 = uVar42;\n            uVar41 = uVar37;\n            uStack_11c = uVar14;\n            if (((*(byte *)(uVar37 + 0x34) & 8) != 0) &&\n               (((*(byte *)(uVar37 + 0x34) & 1) == 0 ||\n                (iVar16 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar37 + 8),uVar37 + 0xc,uVar14)\n                , iVar16 != 0)))) {\n              if (!bVar22) goto LAB_0004e0e4;\n              ppuStack_1dc = (uint **)0x0;\n              uVar6 = uVar14;\n              bVar5 = bVar22;\n            }\n          }\nLAB_0004e0cc:\n          uVar14 = uVar6;\n          if (ppuStack_1dc != (uint **)0x0) {\n            *ppuStack_1dc = (uint *)((int)*ppuStack_1dc + uStack_1d0);\n          }\n        }\n        else {\n          uVar14 = FUN_00047924(&puStack_144,uVar41 + 8,uVar41 + 0xc,0);\n          uStack_168 = uVar14;\n          if (uVar14 == 0) {\n            if ((*(byte *)(uVar41 + 0x34) & 2) == 0) {\n              bVar4 = false;\n            }\n            else {\n              uVar14 = FUN_0004c6a8(&puStack_144,uVar41 + 8,uVar41 + 0xc);\n              uStack_168 = uVar14;\n              if (uVar14 != 0) goto LAB_0004e0e4;\n              bVar4 = false;\n            }\n            goto LAB_0004dd48;\n          }\n        }\nLAB_0004e0e4:\n        piVar17 = piStack_e0;\n        if (uVar14 != 0xffffffff) {\n          if (uVar14 == 0xfffffffe) goto LAB_0004dbf8;\n          uStack_e8 = uVar14;\n          if (((uint)ppuVar24[7] & 0x8000000) == 0) {\n            if (!bVar1) {\n              uVar6 = puVar43[0x13];\n              goto joined_r0x0004e94c;\n            }\n            pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n            iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                     piStack_e0[uVar14] + 0xc,uVar14);\n            if ((*(char *)(puVar43 + 0x16) < '\0') || (puVar43[0x13] != 0)) goto LAB_0004e170;\n          }\n          else {\n            uVar6 = puVar43[0x13];\njoined_r0x0004e94c:\n            if (uVar6 != 0) {\n              pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n              iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                       piStack_e0[uVar14] + 0xc,uVar14);\nLAB_0004e170:\n              iVar30 = iStack_e4;\n              puVar36 = puStack_f0;\n              if (uVar14 < 0x3fffffff) {\n                uStack_1f0 = uVar14 + 1;\n                piVar17 = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                if (piVar17 == (int *)0x0) goto LAB_0004dbf8;\n                if (puVar36[0x13] == 0) {\n                  piStack_15c = (int *)0x0;\n                  uStack_150 = 0;\n                  uStack_14c = 0;\n                  uStack_148 = 0;\n                  piStack_160 = piVar17;\n                  iStack_158 = iVar30;\n                  uStack_154 = uVar14;\n                  uStack_1e4 = FUN_0004d30c(&puStack_144,&piStack_160);\n                  (**(code **)(puVar46 + 0x28520))(uStack_148);\n                  if (uStack_1e4 == 0) {\n                    if (*piVar17 == 0) {\n                      (**(code **)(puVar46 + 0x28520))(piVar17);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar46 + 0x28520))(piStack_e0);\n                    uStack_e8 = uVar14;\n                    iStack_e4 = iVar30;\n                    piStack_e0 = piVar17;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  piStack_1ec = (int *)0x0;\n                }\n                else {\n                  piStack_1ec = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                  if (piStack_1ec == (int *)0x0) {\n                    (**(code **)(puVar46 + 0x28520))(piVar17);\n                    uStack_1e4 = 0xc;\n                    piVar17 = piStack_e0;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar15 = *(int *)(puVar46 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);\n                    uStack_150 = 0;\n                    uStack_14c = 0;\n                    uStack_148 = 0;\n                    piStack_160 = piVar17;\n                    piStack_15c = piStack_1ec;\n                    iStack_158 = iVar30;\n                    uStack_154 = uVar14;\n                    uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);\n                    (**(code **)(puVar46 + 0x28520))(uStack_148);\n                    if (uStack_1e4 != 0) break;\n                    if ((*piVar17 != 0) || (*piStack_1ec != 0)) {\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    piVar33 = piStack_e0 + (uStack_1f0 - 1);\n                    uStack_1f0 = uVar14;\n                    while( true ) {\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }\n                    iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       );\n                  }\n                }\n                (**(code **)(puVar46 + 0x28520))(piVar17);\n                (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                piVar17 = piStack_e0;\n                if (uStack_1e4 == 1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }\n              uStack_1e4 = 0xc;\n              goto LAB_0004dbbc;\n            }\n          }\nLAB_0004e7e0:\n          piVar17 = piStack_e0;\n          uStack_1e4 = uVar11;\n          if (local_78 == (uint *)0x0) goto LAB_0004dbbc;\n          puVar23 = ppuVar24[7];\n          if (bVar1) {\n            piVar17 = piStack_74 + 2;\n            do {\n              piVar17[1] = -1;\n              piVar33 = piVar17 + 2;\n              *piVar17 = -1;\n              piVar17 = piVar33;\n            } while (piStack_74 + (int)local_78 * 2 != piVar33);\n            *piStack_74 = 0;\n            piStack_74[1] = uStack_e8;\n            if (((uint)puVar23 & 0x8000000) == 0) {\n              if (*(char *)(puVar43 + 0x16) < '\0') {\n                bVar22 = 0 < (int)puVar43[0x13];\n              }\n              else {\n                bVar22 = false;\n              }\n              uStack_1e4 = FUN_0004bc00(ppuVar24,&puStack_144,local_78,piStack_74,bVar22);\n              piVar17 = piStack_e0;\n              if (uStack_1e4 != 0) goto LAB_0004dbbc;\n              puVar23 = (uint *)*piStack_74;\n            }\n            else {\nLAB_0004e838:\n              puVar23 = (uint *)0x0;\n            }\n            puVar36 = (uint *)0x0;\n            piVar17 = piStack_74;\n            while( true ) {\n              if (puVar23 != (uint *)0xffffffff) {\n                puVar32 = (uint *)piVar17[1];\n                puVar39 = puVar23;\n                puVar38 = puVar32;\n                if (cStack_f8 != '\0') {\n                  puVar39 = puStack_124;\n                  if (puStack_128 != puVar23) {\n                    puVar39 = *(uint **)(iStack_138 + (int)puVar23 * 4);\n                  }\n                  *piVar17 = (int)puVar39;\n                  puVar38 = puStack_124;\n                  if (puStack_128 != puVar32) {\n                    puVar38 = *(uint **)(iStack_138 + (int)puVar32 * 4);\n                  }\n                }\n                *piVar17 = (int)puStack_16c + (int)puVar39;\n                piVar17[1] = (int)puStack_16c + (int)puVar38;\n              }\n              puVar36 = (uint *)((int)puVar36 + 1);\n              piVar17 = piVar17 + 2;\n              if (puVar36 == local_78) break;\n              puVar23 = (uint *)*piVar17;\n            }\n            if (0 < iStack_180) {\n              piVar17 = piStack_74 + (int)local_78 * 2;\n              do {\n                *piVar17 = -1;\n                piVar33 = piVar17 + 2;\n                piVar17[1] = -1;\n                piVar17 = piVar33;\n              } while (piStack_74 + (iStack_180 + (int)local_78) * 2 != piVar33);\n            }\n            piVar33 = (int *)puVar43[0x21];\n            piVar17 = piStack_e0;\n            uStack_1e4 = uVar11;\n            if (piVar33 != (int *)0x0) {\n              iVar29 = 0;\n              piVar3 = piStack_74;\n              do {\n                pcVar45 = *(code **)(puVar46 + 0x28520);\n                if (iVar29 == (int)local_78 + -1) goto LAB_0004dbc0;\n                if (*piVar33 != iVar29) {\n                  piVar3[2] = piStack_74[(*piVar33 + 1) * 2];\n                  piVar3[3] = piStack_74[(*piVar33 + 1) * 2 + 1];\n                }\n                iVar29 = iVar29 + 1;\n                piVar33 = piVar33 + 1;\n                piVar3 = piVar3 + 2;\n              } while( true );\n            }\n            goto LAB_0004dbbc;\n          }\n          *piStack_74 = 0;\n          piStack_74[1] = uStack_e8;\n          goto LAB_0004e838;\n        }\nLAB_0004e2d4:\n        FUN_00044db0(&puStack_144);\n        param_4 = puStack_16c;\n      }\n      param_4 = (uint *)((int)param_4 + iVar29);\n      puStack_16c = param_4;\n      if (((int)param_4 < (int)puVar23) ||\n         (iVar30 = iStack_12c, puVar36 = puStack_88, (int)puVar38 < (int)param_4)) break;\n    } while( true );\n  }" (statement_identifier "LAB_0004dab0") (: ":") (if_statement "if (((int)puVar23 <= (int)param_4) && ((int)param_4 <= (int)puVar38)) {\n    ppuVar12 = &puStack_16c;\n    if (uVar6 != 0) {\n      ppuVar12 = (uint **)0x0;\n    }\n    iVar25 = *(int *)(puVar46 + 0x28244);\n    iVar13 = *(int *)(puVar46 + 0x27edc);\n    iVar26 = *(int *)(puVar46 + 0x2829c);\n    iVar30 = iStack_12c;\n    puVar36 = puStack_88;\n    do {\n      puStack_88 = puVar36;\n      if (uVar31 - 4 < 5) {\n                    \n                    \n        uVar6 = (*(code *)(puVar46 + *(int *)(iVar13 + 0x2be4 + (uVar31 - 4) * 4) + 0x2fea4))();\n        return uVar6;\n      }\n      iStack_12c = iVar30;\n      while( true ) {\n        puVar39 = (uint *)((int)param_4 - iVar30);\n        if (puStack_124 <= puVar39) {\n          uStack_1e4 = (*(code *)(iVar25 + 0x7eac))(&puStack_144,param_4,&_gp_1);\n          piVar17 = piStack_e0;\n          if (uStack_1e4 != 0) goto LAB_0004dbbc;\n          puVar39 = (uint *)((int)param_4 - iStack_12c);\n          iVar30 = iStack_12c;\n        }\n        if ((int)param_4 < (int)puVar36) {\n          cVar21 = *(char *)((int)puStack_1e0 + (uint)*(byte *)((int)puStack_140 + (int)puVar39));\n        }\n        else {\n          cVar21 = *(char *)puStack_1e0;\n        }\n        if (cVar21 != '\0') break;\n        param_4 = (uint *)((int)param_4 + iVar29);\n        puStack_16c = param_4;\n        if (((int)param_4 < (int)puVar23) || ((int)puVar38 < (int)param_4)) goto LAB_0004df68;\n      }\n      uVar11 = FUN_00047eac(&puStack_144,param_4,&_gp_1);\n      puVar36 = puStack_f0;\n      uVar6 = uStack_11c;\n      piVar17 = piStack_e0;\n      uStack_1e4 = uVar11;\n      if (uVar11 != 0) goto LAB_0004dbbc;\n      if (((uVar34 == 1) || (puStack_128 == (uint *)0x0)) || (*piStack_13c != -1)) {\n        iStack_cc = 0;\n        uStack_d8 = 0;\n        uVar41 = puStack_f0[9];\n        uStack_1d0 = uStack_11c;\n        iStack_dc = 0;\n        uStack_168 = 0;\n        if ((*(byte *)(uVar41 + 0x34) & 1) != 0) {\n          uVar14 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n          if ((uVar14 & 1) == 0) {\n            if (uVar14 == 0) goto LAB_0004dd24;\n            if ((uVar14 & 6) == 6) {\n              uVar41 = puVar36[0xc];\n            }\n            else if ((uVar14 & 2) == 0) {\n              if ((uVar14 & 4) == 0) goto LAB_0004dd24;\n              uVar41 = FUN_00046cac(&uStack_168,puVar36,*(undefined4 *)(uVar41 + 0x28),uVar14);\n            }\n            else {\n              uVar41 = puVar36[0xb];\n            }\n          }\n          else {\n            uVar41 = puVar36[10];\n          }\n          if (uVar41 == 0) goto code_r0x0004ea7c;\n        }\nLAB_0004dd24:\n        bVar4 = ppuVar12 != (uint **)0x0;\n        if ((piStack_e0 == (int *)0x0) ||\n           (uVar14 = puVar36[0x13], piStack_e0[uVar6] = uVar41, uVar14 == 0)) {\nLAB_0004dd48:\n          if (*(int *)(uVar41 + 0x34) << 4 < 0) {\n            if (((*(byte *)(uVar41 + 0x34) & 1) == 0) ||\n               (iVar30 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar41 + 8),uVar41 + 0xc,uVar6),\n               iVar30 != 0)) {\n              uVar14 = uVar6;\n              bVar5 = bVar22;\n              if (!bVar22) goto LAB_0004e0e4;\n            }\n            else {\n              uVar6 = 0xffffffff;\n              bVar5 = false;\n            }\n          }\n          else {\n            uVar6 = 0xffffffff;\n            bVar5 = false;\n          }\n          iVar30 = *(int *)(puVar46 + 0x28244);\n          iVar15 = *(int *)(puVar46 + 0x2829c);\n          uVar14 = uStack_11c;\n          ppuStack_1dc = ppuVar12;\n          while ((int)uVar14 < (int)puStack_10c) {\n            uVar40 = uVar14 + 1;\n            if ((((int)uVar40 < (int)uStack_120) || ((int)puStack_114 <= (int)uStack_120)) &&\n               (((int)uVar40 < (int)puStack_128 || ((int)puStack_114 <= (int)puStack_128)))) {\n              iVar16 = *(int *)(uVar41 + 0x34);\n              puVar36 = puStack_f0;\n            }\n            else {\n              uStack_168 = (*(code *)(iVar30 + 0x41e4))(&puStack_144,uVar14 + 2);\n              if (uStack_168 != 0) {\n                if (uStack_168 == 0xc) goto LAB_0004dbf8;\n                uVar20 = 0x46c;\n                goto LAB_0004ea9c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x34);\n              uVar14 = uStack_11c;\n              puVar36 = puStack_f0;\n            }\n            puStack_f0 = puVar36;\n            if (iVar16 << 5 < 0) {\n              iVar16 = *(int *)(uVar41 + 8);\n              if (0 < iVar16) {\n                param_4 = (uint *)0x0;\n                iVar18 = *(int *)(puVar46 + 0x28244);\n                pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7ab0);\n                do {\n                  uVar42 = *puVar36;\n                  iVar44 = *(int *)(*(int *)(uVar41 + 0xc) + (int)param_4 * 4);\n                  uVar37 = *(uint *)(uVar42 + iVar44 * 8 + 4);\n                  if ((uVar37 & 0x800) != 0) {\n                    if ((uVar37 & 0xffc000) != 0) {\n                      uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec);\n                      uVar37 = (uVar37 << 8) >> 0x16;\n                      if ((uVar37 & 4) == 0) {\n                        uVar27 = uVar19 & 1;\n                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    iVar16 = (*(code *)(iVar15 + -0x4eb0))\n                                       (uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14);\n                    if (iVar16 != 0) {\n                      if (iStack_cc < iVar16) {\n                        iStack_cc = iVar16;\n                      }\n                      iVar16 = iVar16 + uStack_11c;\n                      uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16);\n                      uVar14 = uStack_164;\n                      if (uStack_164 != 0) goto joined_r0x0004e770;\n                      piVar33 = piStack_e0 + iVar16;\n                      iVar28 = *piVar33;\n                      piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc);\n                      if (iVar28 == 0) {\n                        piStack_160 = (int *)*piVar17;\n                        piStack_15c = (int *)piVar17[1];\n                        iStack_158 = piVar17[2];\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        *piVar33 = iVar44;\n                      }\n                      else {\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }\n                      if ((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar16 = *(int *)(uVar41 + 8);\n                    uVar14 = uStack_11c;\n                  }\nLAB_0004e670:\n                  param_4 = (uint *)((int)param_4 + 1);\n                } while ((int)param_4 < iVar16);\n              }\n              uStack_168 = 0;\n            }\n            uStack_11c = uVar14 + 1;\n            uVar14 = (uint)*(byte *)((int)puStack_140 + uVar14);\n            do {\n              if (*(int *)(uVar41 + 0x2c) != 0) {\n                uVar37 = *(uint *)(*(int *)(uVar41 + 0x2c) + uVar14 * 4);\nLAB_0004ddf0:\n                if (piStack_e0 != (int *)0x0) goto LAB_0004ddfc;\n                goto LAB_0004de1c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x30);\n              if (iVar16 != 0) {\n                uVar37 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n                if ((uVar37 & 1) == 0) {\n                  uVar37 = *(uint *)(iVar16 + uVar14 * 4);\n                }\n                else {\n                  uVar37 = *(uint *)(iVar16 + (uVar14 + 0x100) * 4);\n                }\n                goto LAB_0004ddf0;\n              }\n              iVar16 = (*(code *)(iVar26 + -0x7510))(puStack_f0,uVar41);\n            } while (iVar16 != 0);\n            uStack_168 = 0xc;\n            uVar14 = uStack_168;\njoined_r0x0004e770:\n            uStack_168 = uVar14;\n            if (piStack_e0 == (int *)0x0) {\n              piVar17 = (int *)0x0;\n              goto LAB_0004dbb4;\n            }\n            uVar37 = 0;\nLAB_0004ddfc:\n            uVar37 = FUN_0004d0a8(&uStack_168,&puStack_144,uVar37);\nLAB_0004de1c:\n            uVar14 = uStack_11c;\n            if (uVar37 == 0) {\n              piVar17 = piStack_e0;\n              if (uStack_168 != 0) goto LAB_0004dbb4;\n              if ((piStack_e0 == (int *)0x0) || ((bVar5 && (!bVar22)))) break;\n              param_4 = &uStack_168;\n              do {\n                bVar2 = false;\n                piVar17 = piStack_e0 + uStack_11c;\n                uVar14 = uStack_11c;\n                do {\n                  uVar37 = uVar14 + 1;\n                  piVar17 = piVar17 + 1;\n                  if (iStack_dc < (int)uVar37) {\n                    if (bVar2) {\n                      uStack_11c = uVar14;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar2 = true;\n                  uVar14 = uVar37;\n                } while (*piVar17 == 0);\n                uStack_11c = uVar37;\n                uVar37 = FUN_0004d0a8(param_4,&puStack_144,0);\n                uVar14 = uStack_11c;\n                if (uStack_168 != 0) {\n                  if (uVar37 == 0) goto LAB_0004e0cc;\n                  break;\n                }\n              } while (uVar37 == 0);\n            }\n            uVar42 = uStack_1d0;\n            if ((bVar4) && (uVar42 = uVar40, uVar41 != uVar37)) {\n              bVar4 = false;\n              uVar42 = uStack_1d0;\n            }\n            uStack_1d0 = uVar42;\n            uVar41 = uVar37;\n            uStack_11c = uVar14;\n            if (((*(byte *)(uVar37 + 0x34) & 8) != 0) &&\n               (((*(byte *)(uVar37 + 0x34) & 1) == 0 ||\n                (iVar16 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar37 + 8),uVar37 + 0xc,uVar14)\n                , iVar16 != 0)))) {\n              if (!bVar22) goto LAB_0004e0e4;\n              ppuStack_1dc = (uint **)0x0;\n              uVar6 = uVar14;\n              bVar5 = bVar22;\n            }\n          }\nLAB_0004e0cc:\n          uVar14 = uVar6;\n          if (ppuStack_1dc != (uint **)0x0) {\n            *ppuStack_1dc = (uint *)((int)*ppuStack_1dc + uStack_1d0);\n          }\n        }\n        else {\n          uVar14 = FUN_00047924(&puStack_144,uVar41 + 8,uVar41 + 0xc,0);\n          uStack_168 = uVar14;\n          if (uVar14 == 0) {\n            if ((*(byte *)(uVar41 + 0x34) & 2) == 0) {\n              bVar4 = false;\n            }\n            else {\n              uVar14 = FUN_0004c6a8(&puStack_144,uVar41 + 8,uVar41 + 0xc);\n              uStack_168 = uVar14;\n              if (uVar14 != 0) goto LAB_0004e0e4;\n              bVar4 = false;\n            }\n            goto LAB_0004dd48;\n          }\n        }\nLAB_0004e0e4:\n        piVar17 = piStack_e0;\n        if (uVar14 != 0xffffffff) {\n          if (uVar14 == 0xfffffffe) goto LAB_0004dbf8;\n          uStack_e8 = uVar14;\n          if (((uint)ppuVar24[7] & 0x8000000) == 0) {\n            if (!bVar1) {\n              uVar6 = puVar43[0x13];\n              goto joined_r0x0004e94c;\n            }\n            pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n            iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                     piStack_e0[uVar14] + 0xc,uVar14);\n            if ((*(char *)(puVar43 + 0x16) < '\0') || (puVar43[0x13] != 0)) goto LAB_0004e170;\n          }\n          else {\n            uVar6 = puVar43[0x13];\njoined_r0x0004e94c:\n            if (uVar6 != 0) {\n              pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n              iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                       piStack_e0[uVar14] + 0xc,uVar14);\nLAB_0004e170:\n              iVar30 = iStack_e4;\n              puVar36 = puStack_f0;\n              if (uVar14 < 0x3fffffff) {\n                uStack_1f0 = uVar14 + 1;\n                piVar17 = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                if (piVar17 == (int *)0x0) goto LAB_0004dbf8;\n                if (puVar36[0x13] == 0) {\n                  piStack_15c = (int *)0x0;\n                  uStack_150 = 0;\n                  uStack_14c = 0;\n                  uStack_148 = 0;\n                  piStack_160 = piVar17;\n                  iStack_158 = iVar30;\n                  uStack_154 = uVar14;\n                  uStack_1e4 = FUN_0004d30c(&puStack_144,&piStack_160);\n                  (**(code **)(puVar46 + 0x28520))(uStack_148);\n                  if (uStack_1e4 == 0) {\n                    if (*piVar17 == 0) {\n                      (**(code **)(puVar46 + 0x28520))(piVar17);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar46 + 0x28520))(piStack_e0);\n                    uStack_e8 = uVar14;\n                    iStack_e4 = iVar30;\n                    piStack_e0 = piVar17;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  piStack_1ec = (int *)0x0;\n                }\n                else {\n                  piStack_1ec = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                  if (piStack_1ec == (int *)0x0) {\n                    (**(code **)(puVar46 + 0x28520))(piVar17);\n                    uStack_1e4 = 0xc;\n                    piVar17 = piStack_e0;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar15 = *(int *)(puVar46 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);\n                    uStack_150 = 0;\n                    uStack_14c = 0;\n                    uStack_148 = 0;\n                    piStack_160 = piVar17;\n                    piStack_15c = piStack_1ec;\n                    iStack_158 = iVar30;\n                    uStack_154 = uVar14;\n                    uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);\n                    (**(code **)(puVar46 + 0x28520))(uStack_148);\n                    if (uStack_1e4 != 0) break;\n                    if ((*piVar17 != 0) || (*piStack_1ec != 0)) {\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    piVar33 = piStack_e0 + (uStack_1f0 - 1);\n                    uStack_1f0 = uVar14;\n                    while( true ) {\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }\n                    iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       );\n                  }\n                }\n                (**(code **)(puVar46 + 0x28520))(piVar17);\n                (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                piVar17 = piStack_e0;\n                if (uStack_1e4 == 1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }\n              uStack_1e4 = 0xc;\n              goto LAB_0004dbbc;\n            }\n          }\nLAB_0004e7e0:\n          piVar17 = piStack_e0;\n          uStack_1e4 = uVar11;\n          if (local_78 == (uint *)0x0) goto LAB_0004dbbc;\n          puVar23 = ppuVar24[7];\n          if (bVar1) {\n            piVar17 = piStack_74 + 2;\n            do {\n              piVar17[1] = -1;\n              piVar33 = piVar17 + 2;\n              *piVar17 = -1;\n              piVar17 = piVar33;\n            } while (piStack_74 + (int)local_78 * 2 != piVar33);\n            *piStack_74 = 0;\n            piStack_74[1] = uStack_e8;\n            if (((uint)puVar23 & 0x8000000) == 0) {\n              if (*(char *)(puVar43 + 0x16) < '\0') {\n                bVar22 = 0 < (int)puVar43[0x13];\n              }\n              else {\n                bVar22 = false;\n              }\n              uStack_1e4 = FUN_0004bc00(ppuVar24,&puStack_144,local_78,piStack_74,bVar22);\n              piVar17 = piStack_e0;\n              if (uStack_1e4 != 0) goto LAB_0004dbbc;\n              puVar23 = (uint *)*piStack_74;\n            }\n            else {\nLAB_0004e838:\n              puVar23 = (uint *)0x0;\n            }\n            puVar36 = (uint *)0x0;\n            piVar17 = piStack_74;\n            while( true ) {\n              if (puVar23 != (uint *)0xffffffff) {\n                puVar32 = (uint *)piVar17[1];\n                puVar39 = puVar23;\n                puVar38 = puVar32;\n                if (cStack_f8 != '\0') {\n                  puVar39 = puStack_124;\n                  if (puStack_128 != puVar23) {\n                    puVar39 = *(uint **)(iStack_138 + (int)puVar23 * 4);\n                  }\n                  *piVar17 = (int)puVar39;\n                  puVar38 = puStack_124;\n                  if (puStack_128 != puVar32) {\n                    puVar38 = *(uint **)(iStack_138 + (int)puVar32 * 4);\n                  }\n                }\n                *piVar17 = (int)puStack_16c + (int)puVar39;\n                piVar17[1] = (int)puStack_16c + (int)puVar38;\n              }\n              puVar36 = (uint *)((int)puVar36 + 1);\n              piVar17 = piVar17 + 2;\n              if (puVar36 == local_78) break;\n              puVar23 = (uint *)*piVar17;\n            }\n            if (0 < iStack_180) {\n              piVar17 = piStack_74 + (int)local_78 * 2;\n              do {\n                *piVar17 = -1;\n                piVar33 = piVar17 + 2;\n                piVar17[1] = -1;\n                piVar17 = piVar33;\n              } while (piStack_74 + (iStack_180 + (int)local_78) * 2 != piVar33);\n            }\n            piVar33 = (int *)puVar43[0x21];\n            piVar17 = piStack_e0;\n            uStack_1e4 = uVar11;\n            if (piVar33 != (int *)0x0) {\n              iVar29 = 0;\n              piVar3 = piStack_74;\n              do {\n                pcVar45 = *(code **)(puVar46 + 0x28520);\n                if (iVar29 == (int)local_78 + -1) goto LAB_0004dbc0;\n                if (*piVar33 != iVar29) {\n                  piVar3[2] = piStack_74[(*piVar33 + 1) * 2];\n                  piVar3[3] = piStack_74[(*piVar33 + 1) * 2 + 1];\n                }\n                iVar29 = iVar29 + 1;\n                piVar33 = piVar33 + 1;\n                piVar3 = piVar3 + 2;\n              } while( true );\n            }\n            goto LAB_0004dbbc;\n          }\n          *piStack_74 = 0;\n          piStack_74[1] = uStack_e8;\n          goto LAB_0004e838;\n        }\nLAB_0004e2d4:\n        FUN_00044db0(&puStack_144);\n        param_4 = puStack_16c;\n      }\n      param_4 = (uint *)((int)param_4 + iVar29);\n      puStack_16c = param_4;\n      if (((int)param_4 < (int)puVar23) ||\n         (iVar30 = iStack_12c, puVar36 = puStack_88, (int)puVar38 < (int)param_4)) break;\n    } while( true );\n  }" (if "if") (parenthesized_expression "(((int)puVar23 <= (int)param_4) && ((int)param_4 <= (int)puVar38))" (( "(") (binary_expression "((int)puVar23 <= (int)param_4) && ((int)param_4 <= (int)puVar38)" (parenthesized_expression "((int)puVar23 <= (int)param_4)" (( "(") (binary_expression "(int)puVar23 <= (int)param_4" (cast_expression "(int)puVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar23")) (<= "<=") (cast_expression "(int)param_4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_4"))) () ")")) (&& "&&") (parenthesized_expression "((int)param_4 <= (int)puVar38)" (( "(") (binary_expression "(int)param_4 <= (int)puVar38" (cast_expression "(int)param_4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_4")) (<= "<=") (cast_expression "(int)puVar38" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar38"))) () ")"))) () ")")) (compound_statement "{\n    ppuVar12 = &puStack_16c;\n    if (uVar6 != 0) {\n      ppuVar12 = (uint **)0x0;\n    }\n    iVar25 = *(int *)(puVar46 + 0x28244);\n    iVar13 = *(int *)(puVar46 + 0x27edc);\n    iVar26 = *(int *)(puVar46 + 0x2829c);\n    iVar30 = iStack_12c;\n    puVar36 = puStack_88;\n    do {\n      puStack_88 = puVar36;\n      if (uVar31 - 4 < 5) {\n                    \n                    \n        uVar6 = (*(code *)(puVar46 + *(int *)(iVar13 + 0x2be4 + (uVar31 - 4) * 4) + 0x2fea4))();\n        return uVar6;\n      }\n      iStack_12c = iVar30;\n      while( true ) {\n        puVar39 = (uint *)((int)param_4 - iVar30);\n        if (puStack_124 <= puVar39) {\n          uStack_1e4 = (*(code *)(iVar25 + 0x7eac))(&puStack_144,param_4,&_gp_1);\n          piVar17 = piStack_e0;\n          if (uStack_1e4 != 0) goto LAB_0004dbbc;\n          puVar39 = (uint *)((int)param_4 - iStack_12c);\n          iVar30 = iStack_12c;\n        }\n        if ((int)param_4 < (int)puVar36) {\n          cVar21 = *(char *)((int)puStack_1e0 + (uint)*(byte *)((int)puStack_140 + (int)puVar39));\n        }\n        else {\n          cVar21 = *(char *)puStack_1e0;\n        }\n        if (cVar21 != '\0') break;\n        param_4 = (uint *)((int)param_4 + iVar29);\n        puStack_16c = param_4;\n        if (((int)param_4 < (int)puVar23) || ((int)puVar38 < (int)param_4)) goto LAB_0004df68;\n      }\n      uVar11 = FUN_00047eac(&puStack_144,param_4,&_gp_1);\n      puVar36 = puStack_f0;\n      uVar6 = uStack_11c;\n      piVar17 = piStack_e0;\n      uStack_1e4 = uVar11;\n      if (uVar11 != 0) goto LAB_0004dbbc;\n      if (((uVar34 == 1) || (puStack_128 == (uint *)0x0)) || (*piStack_13c != -1)) {\n        iStack_cc = 0;\n        uStack_d8 = 0;\n        uVar41 = puStack_f0[9];\n        uStack_1d0 = uStack_11c;\n        iStack_dc = 0;\n        uStack_168 = 0;\n        if ((*(byte *)(uVar41 + 0x34) & 1) != 0) {\n          uVar14 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n          if ((uVar14 & 1) == 0) {\n            if (uVar14 == 0) goto LAB_0004dd24;\n            if ((uVar14 & 6) == 6) {\n              uVar41 = puVar36[0xc];\n            }\n            else if ((uVar14 & 2) == 0) {\n              if ((uVar14 & 4) == 0) goto LAB_0004dd24;\n              uVar41 = FUN_00046cac(&uStack_168,puVar36,*(undefined4 *)(uVar41 + 0x28),uVar14);\n            }\n            else {\n              uVar41 = puVar36[0xb];\n            }\n          }\n          else {\n            uVar41 = puVar36[10];\n          }\n          if (uVar41 == 0) goto code_r0x0004ea7c;\n        }\nLAB_0004dd24:\n        bVar4 = ppuVar12 != (uint **)0x0;\n        if ((piStack_e0 == (int *)0x0) ||\n           (uVar14 = puVar36[0x13], piStack_e0[uVar6] = uVar41, uVar14 == 0)) {\nLAB_0004dd48:\n          if (*(int *)(uVar41 + 0x34) << 4 < 0) {\n            if (((*(byte *)(uVar41 + 0x34) & 1) == 0) ||\n               (iVar30 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar41 + 8),uVar41 + 0xc,uVar6),\n               iVar30 != 0)) {\n              uVar14 = uVar6;\n              bVar5 = bVar22;\n              if (!bVar22) goto LAB_0004e0e4;\n            }\n            else {\n              uVar6 = 0xffffffff;\n              bVar5 = false;\n            }\n          }\n          else {\n            uVar6 = 0xffffffff;\n            bVar5 = false;\n          }\n          iVar30 = *(int *)(puVar46 + 0x28244);\n          iVar15 = *(int *)(puVar46 + 0x2829c);\n          uVar14 = uStack_11c;\n          ppuStack_1dc = ppuVar12;\n          while ((int)uVar14 < (int)puStack_10c) {\n            uVar40 = uVar14 + 1;\n            if ((((int)uVar40 < (int)uStack_120) || ((int)puStack_114 <= (int)uStack_120)) &&\n               (((int)uVar40 < (int)puStack_128 || ((int)puStack_114 <= (int)puStack_128)))) {\n              iVar16 = *(int *)(uVar41 + 0x34);\n              puVar36 = puStack_f0;\n            }\n            else {\n              uStack_168 = (*(code *)(iVar30 + 0x41e4))(&puStack_144,uVar14 + 2);\n              if (uStack_168 != 0) {\n                if (uStack_168 == 0xc) goto LAB_0004dbf8;\n                uVar20 = 0x46c;\n                goto LAB_0004ea9c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x34);\n              uVar14 = uStack_11c;\n              puVar36 = puStack_f0;\n            }\n            puStack_f0 = puVar36;\n            if (iVar16 << 5 < 0) {\n              iVar16 = *(int *)(uVar41 + 8);\n              if (0 < iVar16) {\n                param_4 = (uint *)0x0;\n                iVar18 = *(int *)(puVar46 + 0x28244);\n                pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7ab0);\n                do {\n                  uVar42 = *puVar36;\n                  iVar44 = *(int *)(*(int *)(uVar41 + 0xc) + (int)param_4 * 4);\n                  uVar37 = *(uint *)(uVar42 + iVar44 * 8 + 4);\n                  if ((uVar37 & 0x800) != 0) {\n                    if ((uVar37 & 0xffc000) != 0) {\n                      uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec);\n                      uVar37 = (uVar37 << 8) >> 0x16;\n                      if ((uVar37 & 4) == 0) {\n                        uVar27 = uVar19 & 1;\n                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    iVar16 = (*(code *)(iVar15 + -0x4eb0))\n                                       (uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14);\n                    if (iVar16 != 0) {\n                      if (iStack_cc < iVar16) {\n                        iStack_cc = iVar16;\n                      }\n                      iVar16 = iVar16 + uStack_11c;\n                      uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16);\n                      uVar14 = uStack_164;\n                      if (uStack_164 != 0) goto joined_r0x0004e770;\n                      piVar33 = piStack_e0 + iVar16;\n                      iVar28 = *piVar33;\n                      piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc);\n                      if (iVar28 == 0) {\n                        piStack_160 = (int *)*piVar17;\n                        piStack_15c = (int *)piVar17[1];\n                        iStack_158 = piVar17[2];\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        *piVar33 = iVar44;\n                      }\n                      else {\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }\n                      if ((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar16 = *(int *)(uVar41 + 8);\n                    uVar14 = uStack_11c;\n                  }\nLAB_0004e670:\n                  param_4 = (uint *)((int)param_4 + 1);\n                } while ((int)param_4 < iVar16);\n              }\n              uStack_168 = 0;\n            }\n            uStack_11c = uVar14 + 1;\n            uVar14 = (uint)*(byte *)((int)puStack_140 + uVar14);\n            do {\n              if (*(int *)(uVar41 + 0x2c) != 0) {\n                uVar37 = *(uint *)(*(int *)(uVar41 + 0x2c) + uVar14 * 4);\nLAB_0004ddf0:\n                if (piStack_e0 != (int *)0x0) goto LAB_0004ddfc;\n                goto LAB_0004de1c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x30);\n              if (iVar16 != 0) {\n                uVar37 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n                if ((uVar37 & 1) == 0) {\n                  uVar37 = *(uint *)(iVar16 + uVar14 * 4);\n                }\n                else {\n                  uVar37 = *(uint *)(iVar16 + (uVar14 + 0x100) * 4);\n                }\n                goto LAB_0004ddf0;\n              }\n              iVar16 = (*(code *)(iVar26 + -0x7510))(puStack_f0,uVar41);\n            } while (iVar16 != 0);\n            uStack_168 = 0xc;\n            uVar14 = uStack_168;\njoined_r0x0004e770:\n            uStack_168 = uVar14;\n            if (piStack_e0 == (int *)0x0) {\n              piVar17 = (int *)0x0;\n              goto LAB_0004dbb4;\n            }\n            uVar37 = 0;\nLAB_0004ddfc:\n            uVar37 = FUN_0004d0a8(&uStack_168,&puStack_144,uVar37);\nLAB_0004de1c:\n            uVar14 = uStack_11c;\n            if (uVar37 == 0) {\n              piVar17 = piStack_e0;\n              if (uStack_168 != 0) goto LAB_0004dbb4;\n              if ((piStack_e0 == (int *)0x0) || ((bVar5 && (!bVar22)))) break;\n              param_4 = &uStack_168;\n              do {\n                bVar2 = false;\n                piVar17 = piStack_e0 + uStack_11c;\n                uVar14 = uStack_11c;\n                do {\n                  uVar37 = uVar14 + 1;\n                  piVar17 = piVar17 + 1;\n                  if (iStack_dc < (int)uVar37) {\n                    if (bVar2) {\n                      uStack_11c = uVar14;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar2 = true;\n                  uVar14 = uVar37;\n                } while (*piVar17 == 0);\n                uStack_11c = uVar37;\n                uVar37 = FUN_0004d0a8(param_4,&puStack_144,0);\n                uVar14 = uStack_11c;\n                if (uStack_168 != 0) {\n                  if (uVar37 == 0) goto LAB_0004e0cc;\n                  break;\n                }\n              } while (uVar37 == 0);\n            }\n            uVar42 = uStack_1d0;\n            if ((bVar4) && (uVar42 = uVar40, uVar41 != uVar37)) {\n              bVar4 = false;\n              uVar42 = uStack_1d0;\n            }\n            uStack_1d0 = uVar42;\n            uVar41 = uVar37;\n            uStack_11c = uVar14;\n            if (((*(byte *)(uVar37 + 0x34) & 8) != 0) &&\n               (((*(byte *)(uVar37 + 0x34) & 1) == 0 ||\n                (iVar16 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar37 + 8),uVar37 + 0xc,uVar14)\n                , iVar16 != 0)))) {\n              if (!bVar22) goto LAB_0004e0e4;\n              ppuStack_1dc = (uint **)0x0;\n              uVar6 = uVar14;\n              bVar5 = bVar22;\n            }\n          }\nLAB_0004e0cc:\n          uVar14 = uVar6;\n          if (ppuStack_1dc != (uint **)0x0) {\n            *ppuStack_1dc = (uint *)((int)*ppuStack_1dc + uStack_1d0);\n          }\n        }\n        else {\n          uVar14 = FUN_00047924(&puStack_144,uVar41 + 8,uVar41 + 0xc,0);\n          uStack_168 = uVar14;\n          if (uVar14 == 0) {\n            if ((*(byte *)(uVar41 + 0x34) & 2) == 0) {\n              bVar4 = false;\n            }\n            else {\n              uVar14 = FUN_0004c6a8(&puStack_144,uVar41 + 8,uVar41 + 0xc);\n              uStack_168 = uVar14;\n              if (uVar14 != 0) goto LAB_0004e0e4;\n              bVar4 = false;\n            }\n            goto LAB_0004dd48;\n          }\n        }\nLAB_0004e0e4:\n        piVar17 = piStack_e0;\n        if (uVar14 != 0xffffffff) {\n          if (uVar14 == 0xfffffffe) goto LAB_0004dbf8;\n          uStack_e8 = uVar14;\n          if (((uint)ppuVar24[7] & 0x8000000) == 0) {\n            if (!bVar1) {\n              uVar6 = puVar43[0x13];\n              goto joined_r0x0004e94c;\n            }\n            pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n            iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                     piStack_e0[uVar14] + 0xc,uVar14);\n            if ((*(char *)(puVar43 + 0x16) < '\0') || (puVar43[0x13] != 0)) goto LAB_0004e170;\n          }\n          else {\n            uVar6 = puVar43[0x13];\njoined_r0x0004e94c:\n            if (uVar6 != 0) {\n              pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n              iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                       piStack_e0[uVar14] + 0xc,uVar14);\nLAB_0004e170:\n              iVar30 = iStack_e4;\n              puVar36 = puStack_f0;\n              if (uVar14 < 0x3fffffff) {\n                uStack_1f0 = uVar14 + 1;\n                piVar17 = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                if (piVar17 == (int *)0x0) goto LAB_0004dbf8;\n                if (puVar36[0x13] == 0) {\n                  piStack_15c = (int *)0x0;\n                  uStack_150 = 0;\n                  uStack_14c = 0;\n                  uStack_148 = 0;\n                  piStack_160 = piVar17;\n                  iStack_158 = iVar30;\n                  uStack_154 = uVar14;\n                  uStack_1e4 = FUN_0004d30c(&puStack_144,&piStack_160);\n                  (**(code **)(puVar46 + 0x28520))(uStack_148);\n                  if (uStack_1e4 == 0) {\n                    if (*piVar17 == 0) {\n                      (**(code **)(puVar46 + 0x28520))(piVar17);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar46 + 0x28520))(piStack_e0);\n                    uStack_e8 = uVar14;\n                    iStack_e4 = iVar30;\n                    piStack_e0 = piVar17;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  piStack_1ec = (int *)0x0;\n                }\n                else {\n                  piStack_1ec = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                  if (piStack_1ec == (int *)0x0) {\n                    (**(code **)(puVar46 + 0x28520))(piVar17);\n                    uStack_1e4 = 0xc;\n                    piVar17 = piStack_e0;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar15 = *(int *)(puVar46 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);\n                    uStack_150 = 0;\n                    uStack_14c = 0;\n                    uStack_148 = 0;\n                    piStack_160 = piVar17;\n                    piStack_15c = piStack_1ec;\n                    iStack_158 = iVar30;\n                    uStack_154 = uVar14;\n                    uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);\n                    (**(code **)(puVar46 + 0x28520))(uStack_148);\n                    if (uStack_1e4 != 0) break;\n                    if ((*piVar17 != 0) || (*piStack_1ec != 0)) {\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    piVar33 = piStack_e0 + (uStack_1f0 - 1);\n                    uStack_1f0 = uVar14;\n                    while( true ) {\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }\n                    iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       );\n                  }\n                }\n                (**(code **)(puVar46 + 0x28520))(piVar17);\n                (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                piVar17 = piStack_e0;\n                if (uStack_1e4 == 1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }\n              uStack_1e4 = 0xc;\n              goto LAB_0004dbbc;\n            }\n          }\nLAB_0004e7e0:\n          piVar17 = piStack_e0;\n          uStack_1e4 = uVar11;\n          if (local_78 == (uint *)0x0) goto LAB_0004dbbc;\n          puVar23 = ppuVar24[7];\n          if (bVar1) {\n            piVar17 = piStack_74 + 2;\n            do {\n              piVar17[1] = -1;\n              piVar33 = piVar17 + 2;\n              *piVar17 = -1;\n              piVar17 = piVar33;\n            } while (piStack_74 + (int)local_78 * 2 != piVar33);\n            *piStack_74 = 0;\n            piStack_74[1] = uStack_e8;\n            if (((uint)puVar23 & 0x8000000) == 0) {\n              if (*(char *)(puVar43 + 0x16) < '\0') {\n                bVar22 = 0 < (int)puVar43[0x13];\n              }\n              else {\n                bVar22 = false;\n              }\n              uStack_1e4 = FUN_0004bc00(ppuVar24,&puStack_144,local_78,piStack_74,bVar22);\n              piVar17 = piStack_e0;\n              if (uStack_1e4 != 0) goto LAB_0004dbbc;\n              puVar23 = (uint *)*piStack_74;\n            }\n            else {\nLAB_0004e838:\n              puVar23 = (uint *)0x0;\n            }\n            puVar36 = (uint *)0x0;\n            piVar17 = piStack_74;\n            while( true ) {\n              if (puVar23 != (uint *)0xffffffff) {\n                puVar32 = (uint *)piVar17[1];\n                puVar39 = puVar23;\n                puVar38 = puVar32;\n                if (cStack_f8 != '\0') {\n                  puVar39 = puStack_124;\n                  if (puStack_128 != puVar23) {\n                    puVar39 = *(uint **)(iStack_138 + (int)puVar23 * 4);\n                  }\n                  *piVar17 = (int)puVar39;\n                  puVar38 = puStack_124;\n                  if (puStack_128 != puVar32) {\n                    puVar38 = *(uint **)(iStack_138 + (int)puVar32 * 4);\n                  }\n                }\n                *piVar17 = (int)puStack_16c + (int)puVar39;\n                piVar17[1] = (int)puStack_16c + (int)puVar38;\n              }\n              puVar36 = (uint *)((int)puVar36 + 1);\n              piVar17 = piVar17 + 2;\n              if (puVar36 == local_78) break;\n              puVar23 = (uint *)*piVar17;\n            }\n            if (0 < iStack_180) {\n              piVar17 = piStack_74 + (int)local_78 * 2;\n              do {\n                *piVar17 = -1;\n                piVar33 = piVar17 + 2;\n                piVar17[1] = -1;\n                piVar17 = piVar33;\n              } while (piStack_74 + (iStack_180 + (int)local_78) * 2 != piVar33);\n            }\n            piVar33 = (int *)puVar43[0x21];\n            piVar17 = piStack_e0;\n            uStack_1e4 = uVar11;\n            if (piVar33 != (int *)0x0) {\n              iVar29 = 0;\n              piVar3 = piStack_74;\n              do {\n                pcVar45 = *(code **)(puVar46 + 0x28520);\n                if (iVar29 == (int)local_78 + -1) goto LAB_0004dbc0;\n                if (*piVar33 != iVar29) {\n                  piVar3[2] = piStack_74[(*piVar33 + 1) * 2];\n                  piVar3[3] = piStack_74[(*piVar33 + 1) * 2 + 1];\n                }\n                iVar29 = iVar29 + 1;\n                piVar33 = piVar33 + 1;\n                piVar3 = piVar3 + 2;\n              } while( true );\n            }\n            goto LAB_0004dbbc;\n          }\n          *piStack_74 = 0;\n          piStack_74[1] = uStack_e8;\n          goto LAB_0004e838;\n        }\nLAB_0004e2d4:\n        FUN_00044db0(&puStack_144);\n        param_4 = puStack_16c;\n      }\n      param_4 = (uint *)((int)param_4 + iVar29);\n      puStack_16c = param_4;\n      if (((int)param_4 < (int)puVar23) ||\n         (iVar30 = iStack_12c, puVar36 = puStack_88, (int)puVar38 < (int)param_4)) break;\n    } while( true );\n  }" ({ "{") (expression_statement "ppuVar12 = &puStack_16c;" (assignment_expression "ppuVar12 = &puStack_16c" (identifier "ppuVar12") (= "=") (pointer_expression "&puStack_16c" (& "&") (identifier "puStack_16c"))) (; ";")) (if_statement "if (uVar6 != 0) {\n      ppuVar12 = (uint **)0x0;\n    }" (if "if") (parenthesized_expression "(uVar6 != 0)" (( "(") (binary_expression "uVar6 != 0" (identifier "uVar6") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      ppuVar12 = (uint **)0x0;\n    }" ({ "{") (expression_statement "ppuVar12 = (uint **)0x0;" (assignment_expression "ppuVar12 = (uint **)0x0" (identifier "ppuVar12") (= "=") (cast_expression "(uint **)0x0" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (expression_statement "iVar25 = *(int *)(puVar46 + 0x28244);" (assignment_expression "iVar25 = *(int *)(puVar46 + 0x28244)" (identifier "iVar25") (= "=") (pointer_expression "*(int *)(puVar46 + 0x28244)" (* "*") (cast_expression "(int *)(puVar46 + 0x28244)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar46 + 0x28244)" (( "(") (binary_expression "puVar46 + 0x28244" (identifier "puVar46") (+ "+") (number_literal "0x28244")) () ")"))))) (; ";")) (expression_statement "iVar13 = *(int *)(puVar46 + 0x27edc);" (assignment_expression "iVar13 = *(int *)(puVar46 + 0x27edc)" (identifier "iVar13") (= "=") (pointer_expression "*(int *)(puVar46 + 0x27edc)" (* "*") (cast_expression "(int *)(puVar46 + 0x27edc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar46 + 0x27edc)" (( "(") (binary_expression "puVar46 + 0x27edc" (identifier "puVar46") (+ "+") (number_literal "0x27edc")) () ")"))))) (; ";")) (expression_statement "iVar26 = *(int *)(puVar46 + 0x2829c);" (assignment_expression "iVar26 = *(int *)(puVar46 + 0x2829c)" (identifier "iVar26") (= "=") (pointer_expression "*(int *)(puVar46 + 0x2829c)" (* "*") (cast_expression "(int *)(puVar46 + 0x2829c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar46 + 0x2829c)" (( "(") (binary_expression "puVar46 + 0x2829c" (identifier "puVar46") (+ "+") (number_literal "0x2829c")) () ")"))))) (; ";")) (expression_statement "iVar30 = iStack_12c;" (assignment_expression "iVar30 = iStack_12c" (identifier "iVar30") (= "=") (identifier "iStack_12c")) (; ";")) (expression_statement "puVar36 = puStack_88;" (assignment_expression "puVar36 = puStack_88" (identifier "puVar36") (= "=") (identifier "puStack_88")) (; ";")) (do_statement "do {\n      puStack_88 = puVar36;\n      if (uVar31 - 4 < 5) {\n                    \n                    \n        uVar6 = (*(code *)(puVar46 + *(int *)(iVar13 + 0x2be4 + (uVar31 - 4) * 4) + 0x2fea4))();\n        return uVar6;\n      }\n      iStack_12c = iVar30;\n      while( true ) {\n        puVar39 = (uint *)((int)param_4 - iVar30);\n        if (puStack_124 <= puVar39) {\n          uStack_1e4 = (*(code *)(iVar25 + 0x7eac))(&puStack_144,param_4,&_gp_1);\n          piVar17 = piStack_e0;\n          if (uStack_1e4 != 0) goto LAB_0004dbbc;\n          puVar39 = (uint *)((int)param_4 - iStack_12c);\n          iVar30 = iStack_12c;\n        }\n        if ((int)param_4 < (int)puVar36) {\n          cVar21 = *(char *)((int)puStack_1e0 + (uint)*(byte *)((int)puStack_140 + (int)puVar39));\n        }\n        else {\n          cVar21 = *(char *)puStack_1e0;\n        }\n        if (cVar21 != '\0') break;\n        param_4 = (uint *)((int)param_4 + iVar29);\n        puStack_16c = param_4;\n        if (((int)param_4 < (int)puVar23) || ((int)puVar38 < (int)param_4)) goto LAB_0004df68;\n      }\n      uVar11 = FUN_00047eac(&puStack_144,param_4,&_gp_1);\n      puVar36 = puStack_f0;\n      uVar6 = uStack_11c;\n      piVar17 = piStack_e0;\n      uStack_1e4 = uVar11;\n      if (uVar11 != 0) goto LAB_0004dbbc;\n      if (((uVar34 == 1) || (puStack_128 == (uint *)0x0)) || (*piStack_13c != -1)) {\n        iStack_cc = 0;\n        uStack_d8 = 0;\n        uVar41 = puStack_f0[9];\n        uStack_1d0 = uStack_11c;\n        iStack_dc = 0;\n        uStack_168 = 0;\n        if ((*(byte *)(uVar41 + 0x34) & 1) != 0) {\n          uVar14 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n          if ((uVar14 & 1) == 0) {\n            if (uVar14 == 0) goto LAB_0004dd24;\n            if ((uVar14 & 6) == 6) {\n              uVar41 = puVar36[0xc];\n            }\n            else if ((uVar14 & 2) == 0) {\n              if ((uVar14 & 4) == 0) goto LAB_0004dd24;\n              uVar41 = FUN_00046cac(&uStack_168,puVar36,*(undefined4 *)(uVar41 + 0x28),uVar14);\n            }\n            else {\n              uVar41 = puVar36[0xb];\n            }\n          }\n          else {\n            uVar41 = puVar36[10];\n          }\n          if (uVar41 == 0) goto code_r0x0004ea7c;\n        }\nLAB_0004dd24:\n        bVar4 = ppuVar12 != (uint **)0x0;\n        if ((piStack_e0 == (int *)0x0) ||\n           (uVar14 = puVar36[0x13], piStack_e0[uVar6] = uVar41, uVar14 == 0)) {\nLAB_0004dd48:\n          if (*(int *)(uVar41 + 0x34) << 4 < 0) {\n            if (((*(byte *)(uVar41 + 0x34) & 1) == 0) ||\n               (iVar30 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar41 + 8),uVar41 + 0xc,uVar6),\n               iVar30 != 0)) {\n              uVar14 = uVar6;\n              bVar5 = bVar22;\n              if (!bVar22) goto LAB_0004e0e4;\n            }\n            else {\n              uVar6 = 0xffffffff;\n              bVar5 = false;\n            }\n          }\n          else {\n            uVar6 = 0xffffffff;\n            bVar5 = false;\n          }\n          iVar30 = *(int *)(puVar46 + 0x28244);\n          iVar15 = *(int *)(puVar46 + 0x2829c);\n          uVar14 = uStack_11c;\n          ppuStack_1dc = ppuVar12;\n          while ((int)uVar14 < (int)puStack_10c) {\n            uVar40 = uVar14 + 1;\n            if ((((int)uVar40 < (int)uStack_120) || ((int)puStack_114 <= (int)uStack_120)) &&\n               (((int)uVar40 < (int)puStack_128 || ((int)puStack_114 <= (int)puStack_128)))) {\n              iVar16 = *(int *)(uVar41 + 0x34);\n              puVar36 = puStack_f0;\n            }\n            else {\n              uStack_168 = (*(code *)(iVar30 + 0x41e4))(&puStack_144,uVar14 + 2);\n              if (uStack_168 != 0) {\n                if (uStack_168 == 0xc) goto LAB_0004dbf8;\n                uVar20 = 0x46c;\n                goto LAB_0004ea9c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x34);\n              uVar14 = uStack_11c;\n              puVar36 = puStack_f0;\n            }\n            puStack_f0 = puVar36;\n            if (iVar16 << 5 < 0) {\n              iVar16 = *(int *)(uVar41 + 8);\n              if (0 < iVar16) {\n                param_4 = (uint *)0x0;\n                iVar18 = *(int *)(puVar46 + 0x28244);\n                pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7ab0);\n                do {\n                  uVar42 = *puVar36;\n                  iVar44 = *(int *)(*(int *)(uVar41 + 0xc) + (int)param_4 * 4);\n                  uVar37 = *(uint *)(uVar42 + iVar44 * 8 + 4);\n                  if ((uVar37 & 0x800) != 0) {\n                    if ((uVar37 & 0xffc000) != 0) {\n                      uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec);\n                      uVar37 = (uVar37 << 8) >> 0x16;\n                      if ((uVar37 & 4) == 0) {\n                        uVar27 = uVar19 & 1;\n                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    iVar16 = (*(code *)(iVar15 + -0x4eb0))\n                                       (uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14);\n                    if (iVar16 != 0) {\n                      if (iStack_cc < iVar16) {\n                        iStack_cc = iVar16;\n                      }\n                      iVar16 = iVar16 + uStack_11c;\n                      uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16);\n                      uVar14 = uStack_164;\n                      if (uStack_164 != 0) goto joined_r0x0004e770;\n                      piVar33 = piStack_e0 + iVar16;\n                      iVar28 = *piVar33;\n                      piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc);\n                      if (iVar28 == 0) {\n                        piStack_160 = (int *)*piVar17;\n                        piStack_15c = (int *)piVar17[1];\n                        iStack_158 = piVar17[2];\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        *piVar33 = iVar44;\n                      }\n                      else {\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }\n                      if ((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar16 = *(int *)(uVar41 + 8);\n                    uVar14 = uStack_11c;\n                  }\nLAB_0004e670:\n                  param_4 = (uint *)((int)param_4 + 1);\n                } while ((int)param_4 < iVar16);\n              }\n              uStack_168 = 0;\n            }\n            uStack_11c = uVar14 + 1;\n            uVar14 = (uint)*(byte *)((int)puStack_140 + uVar14);\n            do {\n              if (*(int *)(uVar41 + 0x2c) != 0) {\n                uVar37 = *(uint *)(*(int *)(uVar41 + 0x2c) + uVar14 * 4);\nLAB_0004ddf0:\n                if (piStack_e0 != (int *)0x0) goto LAB_0004ddfc;\n                goto LAB_0004de1c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x30);\n              if (iVar16 != 0) {\n                uVar37 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n                if ((uVar37 & 1) == 0) {\n                  uVar37 = *(uint *)(iVar16 + uVar14 * 4);\n                }\n                else {\n                  uVar37 = *(uint *)(iVar16 + (uVar14 + 0x100) * 4);\n                }\n                goto LAB_0004ddf0;\n              }\n              iVar16 = (*(code *)(iVar26 + -0x7510))(puStack_f0,uVar41);\n            } while (iVar16 != 0);\n            uStack_168 = 0xc;\n            uVar14 = uStack_168;\njoined_r0x0004e770:\n            uStack_168 = uVar14;\n            if (piStack_e0 == (int *)0x0) {\n              piVar17 = (int *)0x0;\n              goto LAB_0004dbb4;\n            }\n            uVar37 = 0;\nLAB_0004ddfc:\n            uVar37 = FUN_0004d0a8(&uStack_168,&puStack_144,uVar37);\nLAB_0004de1c:\n            uVar14 = uStack_11c;\n            if (uVar37 == 0) {\n              piVar17 = piStack_e0;\n              if (uStack_168 != 0) goto LAB_0004dbb4;\n              if ((piStack_e0 == (int *)0x0) || ((bVar5 && (!bVar22)))) break;\n              param_4 = &uStack_168;\n              do {\n                bVar2 = false;\n                piVar17 = piStack_e0 + uStack_11c;\n                uVar14 = uStack_11c;\n                do {\n                  uVar37 = uVar14 + 1;\n                  piVar17 = piVar17 + 1;\n                  if (iStack_dc < (int)uVar37) {\n                    if (bVar2) {\n                      uStack_11c = uVar14;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar2 = true;\n                  uVar14 = uVar37;\n                } while (*piVar17 == 0);\n                uStack_11c = uVar37;\n                uVar37 = FUN_0004d0a8(param_4,&puStack_144,0);\n                uVar14 = uStack_11c;\n                if (uStack_168 != 0) {\n                  if (uVar37 == 0) goto LAB_0004e0cc;\n                  break;\n                }\n              } while (uVar37 == 0);\n            }\n            uVar42 = uStack_1d0;\n            if ((bVar4) && (uVar42 = uVar40, uVar41 != uVar37)) {\n              bVar4 = false;\n              uVar42 = uStack_1d0;\n            }\n            uStack_1d0 = uVar42;\n            uVar41 = uVar37;\n            uStack_11c = uVar14;\n            if (((*(byte *)(uVar37 + 0x34) & 8) != 0) &&\n               (((*(byte *)(uVar37 + 0x34) & 1) == 0 ||\n                (iVar16 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar37 + 8),uVar37 + 0xc,uVar14)\n                , iVar16 != 0)))) {\n              if (!bVar22) goto LAB_0004e0e4;\n              ppuStack_1dc = (uint **)0x0;\n              uVar6 = uVar14;\n              bVar5 = bVar22;\n            }\n          }\nLAB_0004e0cc:\n          uVar14 = uVar6;\n          if (ppuStack_1dc != (uint **)0x0) {\n            *ppuStack_1dc = (uint *)((int)*ppuStack_1dc + uStack_1d0);\n          }\n        }\n        else {\n          uVar14 = FUN_00047924(&puStack_144,uVar41 + 8,uVar41 + 0xc,0);\n          uStack_168 = uVar14;\n          if (uVar14 == 0) {\n            if ((*(byte *)(uVar41 + 0x34) & 2) == 0) {\n              bVar4 = false;\n            }\n            else {\n              uVar14 = FUN_0004c6a8(&puStack_144,uVar41 + 8,uVar41 + 0xc);\n              uStack_168 = uVar14;\n              if (uVar14 != 0) goto LAB_0004e0e4;\n              bVar4 = false;\n            }\n            goto LAB_0004dd48;\n          }\n        }\nLAB_0004e0e4:\n        piVar17 = piStack_e0;\n        if (uVar14 != 0xffffffff) {\n          if (uVar14 == 0xfffffffe) goto LAB_0004dbf8;\n          uStack_e8 = uVar14;\n          if (((uint)ppuVar24[7] & 0x8000000) == 0) {\n            if (!bVar1) {\n              uVar6 = puVar43[0x13];\n              goto joined_r0x0004e94c;\n            }\n            pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n            iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                     piStack_e0[uVar14] + 0xc,uVar14);\n            if ((*(char *)(puVar43 + 0x16) < '\0') || (puVar43[0x13] != 0)) goto LAB_0004e170;\n          }\n          else {\n            uVar6 = puVar43[0x13];\njoined_r0x0004e94c:\n            if (uVar6 != 0) {\n              pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n              iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                       piStack_e0[uVar14] + 0xc,uVar14);\nLAB_0004e170:\n              iVar30 = iStack_e4;\n              puVar36 = puStack_f0;\n              if (uVar14 < 0x3fffffff) {\n                uStack_1f0 = uVar14 + 1;\n                piVar17 = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                if (piVar17 == (int *)0x0) goto LAB_0004dbf8;\n                if (puVar36[0x13] == 0) {\n                  piStack_15c = (int *)0x0;\n                  uStack_150 = 0;\n                  uStack_14c = 0;\n                  uStack_148 = 0;\n                  piStack_160 = piVar17;\n                  iStack_158 = iVar30;\n                  uStack_154 = uVar14;\n                  uStack_1e4 = FUN_0004d30c(&puStack_144,&piStack_160);\n                  (**(code **)(puVar46 + 0x28520))(uStack_148);\n                  if (uStack_1e4 == 0) {\n                    if (*piVar17 == 0) {\n                      (**(code **)(puVar46 + 0x28520))(piVar17);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar46 + 0x28520))(piStack_e0);\n                    uStack_e8 = uVar14;\n                    iStack_e4 = iVar30;\n                    piStack_e0 = piVar17;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  piStack_1ec = (int *)0x0;\n                }\n                else {\n                  piStack_1ec = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                  if (piStack_1ec == (int *)0x0) {\n                    (**(code **)(puVar46 + 0x28520))(piVar17);\n                    uStack_1e4 = 0xc;\n                    piVar17 = piStack_e0;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar15 = *(int *)(puVar46 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);\n                    uStack_150 = 0;\n                    uStack_14c = 0;\n                    uStack_148 = 0;\n                    piStack_160 = piVar17;\n                    piStack_15c = piStack_1ec;\n                    iStack_158 = iVar30;\n                    uStack_154 = uVar14;\n                    uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);\n                    (**(code **)(puVar46 + 0x28520))(uStack_148);\n                    if (uStack_1e4 != 0) break;\n                    if ((*piVar17 != 0) || (*piStack_1ec != 0)) {\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    piVar33 = piStack_e0 + (uStack_1f0 - 1);\n                    uStack_1f0 = uVar14;\n                    while( true ) {\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }\n                    iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       );\n                  }\n                }\n                (**(code **)(puVar46 + 0x28520))(piVar17);\n                (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                piVar17 = piStack_e0;\n                if (uStack_1e4 == 1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }\n              uStack_1e4 = 0xc;\n              goto LAB_0004dbbc;\n            }\n          }\nLAB_0004e7e0:\n          piVar17 = piStack_e0;\n          uStack_1e4 = uVar11;\n          if (local_78 == (uint *)0x0) goto LAB_0004dbbc;\n          puVar23 = ppuVar24[7];\n          if (bVar1) {\n            piVar17 = piStack_74 + 2;\n            do {\n              piVar17[1] = -1;\n              piVar33 = piVar17 + 2;\n              *piVar17 = -1;\n              piVar17 = piVar33;\n            } while (piStack_74 + (int)local_78 * 2 != piVar33);\n            *piStack_74 = 0;\n            piStack_74[1] = uStack_e8;\n            if (((uint)puVar23 & 0x8000000) == 0) {\n              if (*(char *)(puVar43 + 0x16) < '\0') {\n                bVar22 = 0 < (int)puVar43[0x13];\n              }\n              else {\n                bVar22 = false;\n              }\n              uStack_1e4 = FUN_0004bc00(ppuVar24,&puStack_144,local_78,piStack_74,bVar22);\n              piVar17 = piStack_e0;\n              if (uStack_1e4 != 0) goto LAB_0004dbbc;\n              puVar23 = (uint *)*piStack_74;\n            }\n            else {\nLAB_0004e838:\n              puVar23 = (uint *)0x0;\n            }\n            puVar36 = (uint *)0x0;\n            piVar17 = piStack_74;\n            while( true ) {\n              if (puVar23 != (uint *)0xffffffff) {\n                puVar32 = (uint *)piVar17[1];\n                puVar39 = puVar23;\n                puVar38 = puVar32;\n                if (cStack_f8 != '\0') {\n                  puVar39 = puStack_124;\n                  if (puStack_128 != puVar23) {\n                    puVar39 = *(uint **)(iStack_138 + (int)puVar23 * 4);\n                  }\n                  *piVar17 = (int)puVar39;\n                  puVar38 = puStack_124;\n                  if (puStack_128 != puVar32) {\n                    puVar38 = *(uint **)(iStack_138 + (int)puVar32 * 4);\n                  }\n                }\n                *piVar17 = (int)puStack_16c + (int)puVar39;\n                piVar17[1] = (int)puStack_16c + (int)puVar38;\n              }\n              puVar36 = (uint *)((int)puVar36 + 1);\n              piVar17 = piVar17 + 2;\n              if (puVar36 == local_78) break;\n              puVar23 = (uint *)*piVar17;\n            }\n            if (0 < iStack_180) {\n              piVar17 = piStack_74 + (int)local_78 * 2;\n              do {\n                *piVar17 = -1;\n                piVar33 = piVar17 + 2;\n                piVar17[1] = -1;\n                piVar17 = piVar33;\n              } while (piStack_74 + (iStack_180 + (int)local_78) * 2 != piVar33);\n            }\n            piVar33 = (int *)puVar43[0x21];\n            piVar17 = piStack_e0;\n            uStack_1e4 = uVar11;\n            if (piVar33 != (int *)0x0) {\n              iVar29 = 0;\n              piVar3 = piStack_74;\n              do {\n                pcVar45 = *(code **)(puVar46 + 0x28520);\n                if (iVar29 == (int)local_78 + -1) goto LAB_0004dbc0;\n                if (*piVar33 != iVar29) {\n                  piVar3[2] = piStack_74[(*piVar33 + 1) * 2];\n                  piVar3[3] = piStack_74[(*piVar33 + 1) * 2 + 1];\n                }\n                iVar29 = iVar29 + 1;\n                piVar33 = piVar33 + 1;\n                piVar3 = piVar3 + 2;\n              } while( true );\n            }\n            goto LAB_0004dbbc;\n          }\n          *piStack_74 = 0;\n          piStack_74[1] = uStack_e8;\n          goto LAB_0004e838;\n        }\nLAB_0004e2d4:\n        FUN_00044db0(&puStack_144);\n        param_4 = puStack_16c;\n      }\n      param_4 = (uint *)((int)param_4 + iVar29);\n      puStack_16c = param_4;\n      if (((int)param_4 < (int)puVar23) ||\n         (iVar30 = iStack_12c, puVar36 = puStack_88, (int)puVar38 < (int)param_4)) break;\n    } while( true );" (do "do") (compound_statement "{\n      puStack_88 = puVar36;\n      if (uVar31 - 4 < 5) {\n                    \n                    \n        uVar6 = (*(code *)(puVar46 + *(int *)(iVar13 + 0x2be4 + (uVar31 - 4) * 4) + 0x2fea4))();\n        return uVar6;\n      }\n      iStack_12c = iVar30;\n      while( true ) {\n        puVar39 = (uint *)((int)param_4 - iVar30);\n        if (puStack_124 <= puVar39) {\n          uStack_1e4 = (*(code *)(iVar25 + 0x7eac))(&puStack_144,param_4,&_gp_1);\n          piVar17 = piStack_e0;\n          if (uStack_1e4 != 0) goto LAB_0004dbbc;\n          puVar39 = (uint *)((int)param_4 - iStack_12c);\n          iVar30 = iStack_12c;\n        }\n        if ((int)param_4 < (int)puVar36) {\n          cVar21 = *(char *)((int)puStack_1e0 + (uint)*(byte *)((int)puStack_140 + (int)puVar39));\n        }\n        else {\n          cVar21 = *(char *)puStack_1e0;\n        }\n        if (cVar21 != '\0') break;\n        param_4 = (uint *)((int)param_4 + iVar29);\n        puStack_16c = param_4;\n        if (((int)param_4 < (int)puVar23) || ((int)puVar38 < (int)param_4)) goto LAB_0004df68;\n      }\n      uVar11 = FUN_00047eac(&puStack_144,param_4,&_gp_1);\n      puVar36 = puStack_f0;\n      uVar6 = uStack_11c;\n      piVar17 = piStack_e0;\n      uStack_1e4 = uVar11;\n      if (uVar11 != 0) goto LAB_0004dbbc;\n      if (((uVar34 == 1) || (puStack_128 == (uint *)0x0)) || (*piStack_13c != -1)) {\n        iStack_cc = 0;\n        uStack_d8 = 0;\n        uVar41 = puStack_f0[9];\n        uStack_1d0 = uStack_11c;\n        iStack_dc = 0;\n        uStack_168 = 0;\n        if ((*(byte *)(uVar41 + 0x34) & 1) != 0) {\n          uVar14 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n          if ((uVar14 & 1) == 0) {\n            if (uVar14 == 0) goto LAB_0004dd24;\n            if ((uVar14 & 6) == 6) {\n              uVar41 = puVar36[0xc];\n            }\n            else if ((uVar14 & 2) == 0) {\n              if ((uVar14 & 4) == 0) goto LAB_0004dd24;\n              uVar41 = FUN_00046cac(&uStack_168,puVar36,*(undefined4 *)(uVar41 + 0x28),uVar14);\n            }\n            else {\n              uVar41 = puVar36[0xb];\n            }\n          }\n          else {\n            uVar41 = puVar36[10];\n          }\n          if (uVar41 == 0) goto code_r0x0004ea7c;\n        }\nLAB_0004dd24:\n        bVar4 = ppuVar12 != (uint **)0x0;\n        if ((piStack_e0 == (int *)0x0) ||\n           (uVar14 = puVar36[0x13], piStack_e0[uVar6] = uVar41, uVar14 == 0)) {\nLAB_0004dd48:\n          if (*(int *)(uVar41 + 0x34) << 4 < 0) {\n            if (((*(byte *)(uVar41 + 0x34) & 1) == 0) ||\n               (iVar30 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar41 + 8),uVar41 + 0xc,uVar6),\n               iVar30 != 0)) {\n              uVar14 = uVar6;\n              bVar5 = bVar22;\n              if (!bVar22) goto LAB_0004e0e4;\n            }\n            else {\n              uVar6 = 0xffffffff;\n              bVar5 = false;\n            }\n          }\n          else {\n            uVar6 = 0xffffffff;\n            bVar5 = false;\n          }\n          iVar30 = *(int *)(puVar46 + 0x28244);\n          iVar15 = *(int *)(puVar46 + 0x2829c);\n          uVar14 = uStack_11c;\n          ppuStack_1dc = ppuVar12;\n          while ((int)uVar14 < (int)puStack_10c) {\n            uVar40 = uVar14 + 1;\n            if ((((int)uVar40 < (int)uStack_120) || ((int)puStack_114 <= (int)uStack_120)) &&\n               (((int)uVar40 < (int)puStack_128 || ((int)puStack_114 <= (int)puStack_128)))) {\n              iVar16 = *(int *)(uVar41 + 0x34);\n              puVar36 = puStack_f0;\n            }\n            else {\n              uStack_168 = (*(code *)(iVar30 + 0x41e4))(&puStack_144,uVar14 + 2);\n              if (uStack_168 != 0) {\n                if (uStack_168 == 0xc) goto LAB_0004dbf8;\n                uVar20 = 0x46c;\n                goto LAB_0004ea9c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x34);\n              uVar14 = uStack_11c;\n              puVar36 = puStack_f0;\n            }\n            puStack_f0 = puVar36;\n            if (iVar16 << 5 < 0) {\n              iVar16 = *(int *)(uVar41 + 8);\n              if (0 < iVar16) {\n                param_4 = (uint *)0x0;\n                iVar18 = *(int *)(puVar46 + 0x28244);\n                pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7ab0);\n                do {\n                  uVar42 = *puVar36;\n                  iVar44 = *(int *)(*(int *)(uVar41 + 0xc) + (int)param_4 * 4);\n                  uVar37 = *(uint *)(uVar42 + iVar44 * 8 + 4);\n                  if ((uVar37 & 0x800) != 0) {\n                    if ((uVar37 & 0xffc000) != 0) {\n                      uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec);\n                      uVar37 = (uVar37 << 8) >> 0x16;\n                      if ((uVar37 & 4) == 0) {\n                        uVar27 = uVar19 & 1;\n                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    iVar16 = (*(code *)(iVar15 + -0x4eb0))\n                                       (uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14);\n                    if (iVar16 != 0) {\n                      if (iStack_cc < iVar16) {\n                        iStack_cc = iVar16;\n                      }\n                      iVar16 = iVar16 + uStack_11c;\n                      uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16);\n                      uVar14 = uStack_164;\n                      if (uStack_164 != 0) goto joined_r0x0004e770;\n                      piVar33 = piStack_e0 + iVar16;\n                      iVar28 = *piVar33;\n                      piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc);\n                      if (iVar28 == 0) {\n                        piStack_160 = (int *)*piVar17;\n                        piStack_15c = (int *)piVar17[1];\n                        iStack_158 = piVar17[2];\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        *piVar33 = iVar44;\n                      }\n                      else {\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }\n                      if ((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar16 = *(int *)(uVar41 + 8);\n                    uVar14 = uStack_11c;\n                  }\nLAB_0004e670:\n                  param_4 = (uint *)((int)param_4 + 1);\n                } while ((int)param_4 < iVar16);\n              }\n              uStack_168 = 0;\n            }\n            uStack_11c = uVar14 + 1;\n            uVar14 = (uint)*(byte *)((int)puStack_140 + uVar14);\n            do {\n              if (*(int *)(uVar41 + 0x2c) != 0) {\n                uVar37 = *(uint *)(*(int *)(uVar41 + 0x2c) + uVar14 * 4);\nLAB_0004ddf0:\n                if (piStack_e0 != (int *)0x0) goto LAB_0004ddfc;\n                goto LAB_0004de1c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x30);\n              if (iVar16 != 0) {\n                uVar37 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n                if ((uVar37 & 1) == 0) {\n                  uVar37 = *(uint *)(iVar16 + uVar14 * 4);\n                }\n                else {\n                  uVar37 = *(uint *)(iVar16 + (uVar14 + 0x100) * 4);\n                }\n                goto LAB_0004ddf0;\n              }\n              iVar16 = (*(code *)(iVar26 + -0x7510))(puStack_f0,uVar41);\n            } while (iVar16 != 0);\n            uStack_168 = 0xc;\n            uVar14 = uStack_168;\njoined_r0x0004e770:\n            uStack_168 = uVar14;\n            if (piStack_e0 == (int *)0x0) {\n              piVar17 = (int *)0x0;\n              goto LAB_0004dbb4;\n            }\n            uVar37 = 0;\nLAB_0004ddfc:\n            uVar37 = FUN_0004d0a8(&uStack_168,&puStack_144,uVar37);\nLAB_0004de1c:\n            uVar14 = uStack_11c;\n            if (uVar37 == 0) {\n              piVar17 = piStack_e0;\n              if (uStack_168 != 0) goto LAB_0004dbb4;\n              if ((piStack_e0 == (int *)0x0) || ((bVar5 && (!bVar22)))) break;\n              param_4 = &uStack_168;\n              do {\n                bVar2 = false;\n                piVar17 = piStack_e0 + uStack_11c;\n                uVar14 = uStack_11c;\n                do {\n                  uVar37 = uVar14 + 1;\n                  piVar17 = piVar17 + 1;\n                  if (iStack_dc < (int)uVar37) {\n                    if (bVar2) {\n                      uStack_11c = uVar14;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar2 = true;\n                  uVar14 = uVar37;\n                } while (*piVar17 == 0);\n                uStack_11c = uVar37;\n                uVar37 = FUN_0004d0a8(param_4,&puStack_144,0);\n                uVar14 = uStack_11c;\n                if (uStack_168 != 0) {\n                  if (uVar37 == 0) goto LAB_0004e0cc;\n                  break;\n                }\n              } while (uVar37 == 0);\n            }\n            uVar42 = uStack_1d0;\n            if ((bVar4) && (uVar42 = uVar40, uVar41 != uVar37)) {\n              bVar4 = false;\n              uVar42 = uStack_1d0;\n            }\n            uStack_1d0 = uVar42;\n            uVar41 = uVar37;\n            uStack_11c = uVar14;\n            if (((*(byte *)(uVar37 + 0x34) & 8) != 0) &&\n               (((*(byte *)(uVar37 + 0x34) & 1) == 0 ||\n                (iVar16 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar37 + 8),uVar37 + 0xc,uVar14)\n                , iVar16 != 0)))) {\n              if (!bVar22) goto LAB_0004e0e4;\n              ppuStack_1dc = (uint **)0x0;\n              uVar6 = uVar14;\n              bVar5 = bVar22;\n            }\n          }\nLAB_0004e0cc:\n          uVar14 = uVar6;\n          if (ppuStack_1dc != (uint **)0x0) {\n            *ppuStack_1dc = (uint *)((int)*ppuStack_1dc + uStack_1d0);\n          }\n        }\n        else {\n          uVar14 = FUN_00047924(&puStack_144,uVar41 + 8,uVar41 + 0xc,0);\n          uStack_168 = uVar14;\n          if (uVar14 == 0) {\n            if ((*(byte *)(uVar41 + 0x34) & 2) == 0) {\n              bVar4 = false;\n            }\n            else {\n              uVar14 = FUN_0004c6a8(&puStack_144,uVar41 + 8,uVar41 + 0xc);\n              uStack_168 = uVar14;\n              if (uVar14 != 0) goto LAB_0004e0e4;\n              bVar4 = false;\n            }\n            goto LAB_0004dd48;\n          }\n        }\nLAB_0004e0e4:\n        piVar17 = piStack_e0;\n        if (uVar14 != 0xffffffff) {\n          if (uVar14 == 0xfffffffe) goto LAB_0004dbf8;\n          uStack_e8 = uVar14;\n          if (((uint)ppuVar24[7] & 0x8000000) == 0) {\n            if (!bVar1) {\n              uVar6 = puVar43[0x13];\n              goto joined_r0x0004e94c;\n            }\n            pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n            iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                     piStack_e0[uVar14] + 0xc,uVar14);\n            if ((*(char *)(puVar43 + 0x16) < '\0') || (puVar43[0x13] != 0)) goto LAB_0004e170;\n          }\n          else {\n            uVar6 = puVar43[0x13];\njoined_r0x0004e94c:\n            if (uVar6 != 0) {\n              pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n              iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                       piStack_e0[uVar14] + 0xc,uVar14);\nLAB_0004e170:\n              iVar30 = iStack_e4;\n              puVar36 = puStack_f0;\n              if (uVar14 < 0x3fffffff) {\n                uStack_1f0 = uVar14 + 1;\n                piVar17 = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                if (piVar17 == (int *)0x0) goto LAB_0004dbf8;\n                if (puVar36[0x13] == 0) {\n                  piStack_15c = (int *)0x0;\n                  uStack_150 = 0;\n                  uStack_14c = 0;\n                  uStack_148 = 0;\n                  piStack_160 = piVar17;\n                  iStack_158 = iVar30;\n                  uStack_154 = uVar14;\n                  uStack_1e4 = FUN_0004d30c(&puStack_144,&piStack_160);\n                  (**(code **)(puVar46 + 0x28520))(uStack_148);\n                  if (uStack_1e4 == 0) {\n                    if (*piVar17 == 0) {\n                      (**(code **)(puVar46 + 0x28520))(piVar17);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar46 + 0x28520))(piStack_e0);\n                    uStack_e8 = uVar14;\n                    iStack_e4 = iVar30;\n                    piStack_e0 = piVar17;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  piStack_1ec = (int *)0x0;\n                }\n                else {\n                  piStack_1ec = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                  if (piStack_1ec == (int *)0x0) {\n                    (**(code **)(puVar46 + 0x28520))(piVar17);\n                    uStack_1e4 = 0xc;\n                    piVar17 = piStack_e0;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar15 = *(int *)(puVar46 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);\n                    uStack_150 = 0;\n                    uStack_14c = 0;\n                    uStack_148 = 0;\n                    piStack_160 = piVar17;\n                    piStack_15c = piStack_1ec;\n                    iStack_158 = iVar30;\n                    uStack_154 = uVar14;\n                    uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);\n                    (**(code **)(puVar46 + 0x28520))(uStack_148);\n                    if (uStack_1e4 != 0) break;\n                    if ((*piVar17 != 0) || (*piStack_1ec != 0)) {\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    piVar33 = piStack_e0 + (uStack_1f0 - 1);\n                    uStack_1f0 = uVar14;\n                    while( true ) {\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }\n                    iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       );\n                  }\n                }\n                (**(code **)(puVar46 + 0x28520))(piVar17);\n                (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                piVar17 = piStack_e0;\n                if (uStack_1e4 == 1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }\n              uStack_1e4 = 0xc;\n              goto LAB_0004dbbc;\n            }\n          }\nLAB_0004e7e0:\n          piVar17 = piStack_e0;\n          uStack_1e4 = uVar11;\n          if (local_78 == (uint *)0x0) goto LAB_0004dbbc;\n          puVar23 = ppuVar24[7];\n          if (bVar1) {\n            piVar17 = piStack_74 + 2;\n            do {\n              piVar17[1] = -1;\n              piVar33 = piVar17 + 2;\n              *piVar17 = -1;\n              piVar17 = piVar33;\n            } while (piStack_74 + (int)local_78 * 2 != piVar33);\n            *piStack_74 = 0;\n            piStack_74[1] = uStack_e8;\n            if (((uint)puVar23 & 0x8000000) == 0) {\n              if (*(char *)(puVar43 + 0x16) < '\0') {\n                bVar22 = 0 < (int)puVar43[0x13];\n              }\n              else {\n                bVar22 = false;\n              }\n              uStack_1e4 = FUN_0004bc00(ppuVar24,&puStack_144,local_78,piStack_74,bVar22);\n              piVar17 = piStack_e0;\n              if (uStack_1e4 != 0) goto LAB_0004dbbc;\n              puVar23 = (uint *)*piStack_74;\n            }\n            else {\nLAB_0004e838:\n              puVar23 = (uint *)0x0;\n            }\n            puVar36 = (uint *)0x0;\n            piVar17 = piStack_74;\n            while( true ) {\n              if (puVar23 != (uint *)0xffffffff) {\n                puVar32 = (uint *)piVar17[1];\n                puVar39 = puVar23;\n                puVar38 = puVar32;\n                if (cStack_f8 != '\0') {\n                  puVar39 = puStack_124;\n                  if (puStack_128 != puVar23) {\n                    puVar39 = *(uint **)(iStack_138 + (int)puVar23 * 4);\n                  }\n                  *piVar17 = (int)puVar39;\n                  puVar38 = puStack_124;\n                  if (puStack_128 != puVar32) {\n                    puVar38 = *(uint **)(iStack_138 + (int)puVar32 * 4);\n                  }\n                }\n                *piVar17 = (int)puStack_16c + (int)puVar39;\n                piVar17[1] = (int)puStack_16c + (int)puVar38;\n              }\n              puVar36 = (uint *)((int)puVar36 + 1);\n              piVar17 = piVar17 + 2;\n              if (puVar36 == local_78) break;\n              puVar23 = (uint *)*piVar17;\n            }\n            if (0 < iStack_180) {\n              piVar17 = piStack_74 + (int)local_78 * 2;\n              do {\n                *piVar17 = -1;\n                piVar33 = piVar17 + 2;\n                piVar17[1] = -1;\n                piVar17 = piVar33;\n              } while (piStack_74 + (iStack_180 + (int)local_78) * 2 != piVar33);\n            }\n            piVar33 = (int *)puVar43[0x21];\n            piVar17 = piStack_e0;\n            uStack_1e4 = uVar11;\n            if (piVar33 != (int *)0x0) {\n              iVar29 = 0;\n              piVar3 = piStack_74;\n              do {\n                pcVar45 = *(code **)(puVar46 + 0x28520);\n                if (iVar29 == (int)local_78 + -1) goto LAB_0004dbc0;\n                if (*piVar33 != iVar29) {\n                  piVar3[2] = piStack_74[(*piVar33 + 1) * 2];\n                  piVar3[3] = piStack_74[(*piVar33 + 1) * 2 + 1];\n                }\n                iVar29 = iVar29 + 1;\n                piVar33 = piVar33 + 1;\n                piVar3 = piVar3 + 2;\n              } while( true );\n            }\n            goto LAB_0004dbbc;\n          }\n          *piStack_74 = 0;\n          piStack_74[1] = uStack_e8;\n          goto LAB_0004e838;\n        }\nLAB_0004e2d4:\n        FUN_00044db0(&puStack_144);\n        param_4 = puStack_16c;\n      }\n      param_4 = (uint *)((int)param_4 + iVar29);\n      puStack_16c = param_4;\n      if (((int)param_4 < (int)puVar23) ||\n         (iVar30 = iStack_12c, puVar36 = puStack_88, (int)puVar38 < (int)param_4)) break;\n    }" ({ "{") (expression_statement "puStack_88 = puVar36;" (assignment_expression "puStack_88 = puVar36" (identifier "puStack_88") (= "=") (identifier "puVar36")) (; ";")) (if_statement "if (uVar31 - 4 < 5) {\n                    \n                    \n        uVar6 = (*(code *)(puVar46 + *(int *)(iVar13 + 0x2be4 + (uVar31 - 4) * 4) + 0x2fea4))();\n        return uVar6;\n      }" (if "if") (parenthesized_expression "(uVar31 - 4 < 5)" (( "(") (binary_expression "uVar31 - 4 < 5" (binary_expression "uVar31 - 4" (identifier "uVar31") (- "-") (number_literal "4")) (< "<") (number_literal "5")) () ")")) (compound_statement "{\n                    \n                    \n        uVar6 = (*(code *)(puVar46 + *(int *)(iVar13 + 0x2be4 + (uVar31 - 4) * 4) + 0x2fea4))();\n        return uVar6;\n      }" ({ "{") (expression_statement "uVar6 = (*(code *)(puVar46 + *(int *)(iVar13 + 0x2be4 + (uVar31 - 4) * 4) + 0x2fea4))();" (assignment_expression "uVar6 = (*(code *)(puVar46 + *(int *)(iVar13 + 0x2be4 + (uVar31 - 4) * 4) + 0x2fea4))()" (identifier "uVar6") (= "=") (call_expression "(*(code *)(puVar46 + *(int *)(iVar13 + 0x2be4 + (uVar31 - 4) * 4) + 0x2fea4))()" (parenthesized_expression "(*(code *)(puVar46 + *(int *)(iVar13 + 0x2be4 + (uVar31 - 4) * 4) + 0x2fea4))" (( "(") (pointer_expression "*(code *)(puVar46 + *(int *)(iVar13 + 0x2be4 + (uVar31 - 4) * 4) + 0x2fea4)" (* "*") (cast_expression "(code *)(puVar46 + *(int *)(iVar13 + 0x2be4 + (uVar31 - 4) * 4) + 0x2fea4)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar46 + *(int *)(iVar13 + 0x2be4 + (uVar31 - 4) * 4) + 0x2fea4)" (( "(") (binary_expression "puVar46 + *(int *)(iVar13 + 0x2be4 + (uVar31 - 4) * 4) + 0x2fea4" (binary_expression "puVar46 + *(int *)(iVar13 + 0x2be4 + (uVar31 - 4) * 4)" (identifier "puVar46") (+ "+") (pointer_expression "*(int *)(iVar13 + 0x2be4 + (uVar31 - 4) * 4)" (* "*") (cast_expression "(int *)(iVar13 + 0x2be4 + (uVar31 - 4) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 0x2be4 + (uVar31 - 4) * 4)" (( "(") (binary_expression "iVar13 + 0x2be4 + (uVar31 - 4) * 4" (binary_expression "iVar13 + 0x2be4" (identifier "iVar13") (+ "+") (number_literal "0x2be4")) (+ "+") (binary_expression "(uVar31 - 4) * 4" (parenthesized_expression "(uVar31 - 4)" (( "(") (binary_expression "uVar31 - 4" (identifier "uVar31") (- "-") (number_literal "4")) () ")")) (* "*") (number_literal "4"))) () ")"))))) (+ "+") (number_literal "0x2fea4")) () ")")))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (return_statement "return uVar6;" (return "return") (identifier "uVar6") (; ";")) (} "}"))) (expression_statement "iStack_12c = iVar30;" (assignment_expression "iStack_12c = iVar30" (identifier "iStack_12c") (= "=") (identifier "iVar30")) (; ";")) (while_statement "while( true ) {\n        puVar39 = (uint *)((int)param_4 - iVar30);\n        if (puStack_124 <= puVar39) {\n          uStack_1e4 = (*(code *)(iVar25 + 0x7eac))(&puStack_144,param_4,&_gp_1);\n          piVar17 = piStack_e0;\n          if (uStack_1e4 != 0) goto LAB_0004dbbc;\n          puVar39 = (uint *)((int)param_4 - iStack_12c);\n          iVar30 = iStack_12c;\n        }\n        if ((int)param_4 < (int)puVar36) {\n          cVar21 = *(char *)((int)puStack_1e0 + (uint)*(byte *)((int)puStack_140 + (int)puVar39));\n        }\n        else {\n          cVar21 = *(char *)puStack_1e0;\n        }\n        if (cVar21 != '\0') break;\n        param_4 = (uint *)((int)param_4 + iVar29);\n        puStack_16c = param_4;\n        if (((int)param_4 < (int)puVar23) || ((int)puVar38 < (int)param_4)) goto LAB_0004df68;\n      }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n        puVar39 = (uint *)((int)param_4 - iVar30);\n        if (puStack_124 <= puVar39) {\n          uStack_1e4 = (*(code *)(iVar25 + 0x7eac))(&puStack_144,param_4,&_gp_1);\n          piVar17 = piStack_e0;\n          if (uStack_1e4 != 0) goto LAB_0004dbbc;\n          puVar39 = (uint *)((int)param_4 - iStack_12c);\n          iVar30 = iStack_12c;\n        }\n        if ((int)param_4 < (int)puVar36) {\n          cVar21 = *(char *)((int)puStack_1e0 + (uint)*(byte *)((int)puStack_140 + (int)puVar39));\n        }\n        else {\n          cVar21 = *(char *)puStack_1e0;\n        }\n        if (cVar21 != '\0') break;\n        param_4 = (uint *)((int)param_4 + iVar29);\n        puStack_16c = param_4;\n        if (((int)param_4 < (int)puVar23) || ((int)puVar38 < (int)param_4)) goto LAB_0004df68;\n      }" ({ "{") (expression_statement "puVar39 = (uint *)((int)param_4 - iVar30);" (assignment_expression "puVar39 = (uint *)((int)param_4 - iVar30)" (identifier "puVar39") (= "=") (cast_expression "(uint *)((int)param_4 - iVar30)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_4 - iVar30)" (( "(") (binary_expression "(int)param_4 - iVar30" (cast_expression "(int)param_4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_4")) (- "-") (identifier "iVar30")) () ")")))) (; ";")) (if_statement "if (puStack_124 <= puVar39) {\n          uStack_1e4 = (*(code *)(iVar25 + 0x7eac))(&puStack_144,param_4,&_gp_1);\n          piVar17 = piStack_e0;\n          if (uStack_1e4 != 0) goto LAB_0004dbbc;\n          puVar39 = (uint *)((int)param_4 - iStack_12c);\n          iVar30 = iStack_12c;\n        }" (if "if") (parenthesized_expression "(puStack_124 <= puVar39)" (( "(") (binary_expression "puStack_124 <= puVar39" (identifier "puStack_124") (<= "<=") (identifier "puVar39")) () ")")) (compound_statement "{\n          uStack_1e4 = (*(code *)(iVar25 + 0x7eac))(&puStack_144,param_4,&_gp_1);\n          piVar17 = piStack_e0;\n          if (uStack_1e4 != 0) goto LAB_0004dbbc;\n          puVar39 = (uint *)((int)param_4 - iStack_12c);\n          iVar30 = iStack_12c;\n        }" ({ "{") (expression_statement "uStack_1e4 = (*(code *)(iVar25 + 0x7eac))(&puStack_144,param_4,&_gp_1);" (assignment_expression "uStack_1e4 = (*(code *)(iVar25 + 0x7eac))(&puStack_144,param_4,&_gp_1)" (identifier "uStack_1e4") (= "=") (call_expression "(*(code *)(iVar25 + 0x7eac))(&puStack_144,param_4,&_gp_1)" (parenthesized_expression "(*(code *)(iVar25 + 0x7eac))" (( "(") (pointer_expression "*(code *)(iVar25 + 0x7eac)" (* "*") (cast_expression "(code *)(iVar25 + 0x7eac)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + 0x7eac)" (( "(") (binary_expression "iVar25 + 0x7eac" (identifier "iVar25") (+ "+") (number_literal "0x7eac")) () ")")))) () ")")) (argument_list "(&puStack_144,param_4,&_gp_1)" (( "(") (pointer_expression "&puStack_144" (& "&") (identifier "puStack_144")) (, ",") (identifier "param_4") (, ",") (pointer_expression "&_gp_1" (& "&") (identifier "_gp_1")) () ")")))) (; ";")) (expression_statement "piVar17 = piStack_e0;" (assignment_expression "piVar17 = piStack_e0" (identifier "piVar17") (= "=") (identifier "piStack_e0")) (; ";")) (if_statement "if (uStack_1e4 != 0) goto LAB_0004dbbc;" (if "if") (parenthesized_expression "(uStack_1e4 != 0)" (( "(") (binary_expression "uStack_1e4 != 0" (identifier "uStack_1e4") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0004dbbc;" (goto "goto") (statement_identifier "LAB_0004dbbc") (; ";"))) (expression_statement "puVar39 = (uint *)((int)param_4 - iStack_12c);" (assignment_expression "puVar39 = (uint *)((int)param_4 - iStack_12c)" (identifier "puVar39") (= "=") (cast_expression "(uint *)((int)param_4 - iStack_12c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_4 - iStack_12c)" (( "(") (binary_expression "(int)param_4 - iStack_12c" (cast_expression "(int)param_4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_4")) (- "-") (identifier "iStack_12c")) () ")")))) (; ";")) (expression_statement "iVar30 = iStack_12c;" (assignment_expression "iVar30 = iStack_12c" (identifier "iVar30") (= "=") (identifier "iStack_12c")) (; ";")) (} "}"))) (if_statement "if ((int)param_4 < (int)puVar36) {\n          cVar21 = *(char *)((int)puStack_1e0 + (uint)*(byte *)((int)puStack_140 + (int)puVar39));\n        }\n        else {\n          cVar21 = *(char *)puStack_1e0;\n        }" (if "if") (parenthesized_expression "((int)param_4 < (int)puVar36)" (( "(") (binary_expression "(int)param_4 < (int)puVar36" (cast_expression "(int)param_4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_4")) (< "<") (cast_expression "(int)puVar36" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar36"))) () ")")) (compound_statement "{\n          cVar21 = *(char *)((int)puStack_1e0 + (uint)*(byte *)((int)puStack_140 + (int)puVar39));\n        }" ({ "{") (expression_statement "cVar21 = *(char *)((int)puStack_1e0 + (uint)*(byte *)((int)puStack_140 + (int)puVar39));" (assignment_expression "cVar21 = *(char *)((int)puStack_1e0 + (uint)*(byte *)((int)puStack_140 + (int)puVar39))" (identifier "cVar21") (= "=") (pointer_expression "*(char *)((int)puStack_1e0 + (uint)*(byte *)((int)puStack_140 + (int)puVar39))" (* "*") (cast_expression "(char *)((int)puStack_1e0 + (uint)*(byte *)((int)puStack_140 + (int)puVar39))" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puStack_1e0 + (uint)*(byte *)((int)puStack_140 + (int)puVar39))" (( "(") (binary_expression "(int)puStack_1e0 + (uint)*(byte *)((int)puStack_140 + (int)puVar39)" (cast_expression "(int)puStack_1e0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puStack_1e0")) (+ "+") (binary_expression "(uint)*(byte *)((int)puStack_140 + (int)puVar39)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)((int)puStack_140 + (int)puVar39)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puStack_140 + (int)puVar39)" (( "(") (binary_expression "(int)puStack_140 + (int)puVar39" (cast_expression "(int)puStack_140" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puStack_140")) (+ "+") (cast_expression "(int)puVar39" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar39"))) () ")"))))) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n          cVar21 = *(char *)puStack_1e0;\n        }" (else "else") (compound_statement "{\n          cVar21 = *(char *)puStack_1e0;\n        }" ({ "{") (expression_statement "cVar21 = *(char *)puStack_1e0;" (assignment_expression "cVar21 = *(char *)puStack_1e0" (identifier "cVar21") (= "=") (pointer_expression "*(char *)puStack_1e0" (* "*") (cast_expression "(char *)puStack_1e0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puStack_1e0")))) (; ";")) (} "}")))) (if_statement "if (cVar21 != '\0') break;" (if "if") (parenthesized_expression "(cVar21 != '\0')" (( "(") (binary_expression "cVar21 != '\0'" (identifier "cVar21") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "param_4 = (uint *)((int)param_4 + iVar29);" (assignment_expression "param_4 = (uint *)((int)param_4 + iVar29)" (identifier "param_4") (= "=") (cast_expression "(uint *)((int)param_4 + iVar29)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_4 + iVar29)" (( "(") (binary_expression "(int)param_4 + iVar29" (cast_expression "(int)param_4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_4")) (+ "+") (identifier "iVar29")) () ")")))) (; ";")) (expression_statement "puStack_16c = param_4;" (assignment_expression "puStack_16c = param_4" (identifier "puStack_16c") (= "=") (identifier "param_4")) (; ";")) (if_statement "if (((int)param_4 < (int)puVar23) || ((int)puVar38 < (int)param_4)) goto LAB_0004df68;" (if "if") (parenthesized_expression "(((int)param_4 < (int)puVar23) || ((int)puVar38 < (int)param_4))" (( "(") (binary_expression "((int)param_4 < (int)puVar23) || ((int)puVar38 < (int)param_4)" (parenthesized_expression "((int)param_4 < (int)puVar23)" (( "(") (binary_expression "(int)param_4 < (int)puVar23" (cast_expression "(int)param_4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_4")) (< "<") (cast_expression "(int)puVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar23"))) () ")")) (|| "||") (parenthesized_expression "((int)puVar38 < (int)param_4)" (( "(") (binary_expression "(int)puVar38 < (int)param_4" (cast_expression "(int)puVar38" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar38")) (< "<") (cast_expression "(int)param_4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_4"))) () ")"))) () ")")) (goto_statement "goto LAB_0004df68;" (goto "goto") (statement_identifier "LAB_0004df68") (; ";"))) (} "}"))) (expression_statement "uVar11 = FUN_00047eac(&puStack_144,param_4,&_gp_1);" (assignment_expression "uVar11 = FUN_00047eac(&puStack_144,param_4,&_gp_1)" (identifier "uVar11") (= "=") (call_expression "FUN_00047eac(&puStack_144,param_4,&_gp_1)" (identifier "FUN_00047eac") (argument_list "(&puStack_144,param_4,&_gp_1)" (( "(") (pointer_expression "&puStack_144" (& "&") (identifier "puStack_144")) (, ",") (identifier "param_4") (, ",") (pointer_expression "&_gp_1" (& "&") (identifier "_gp_1")) () ")")))) (; ";")) (expression_statement "puVar36 = puStack_f0;" (assignment_expression "puVar36 = puStack_f0" (identifier "puVar36") (= "=") (identifier "puStack_f0")) (; ";")) (expression_statement "uVar6 = uStack_11c;" (assignment_expression "uVar6 = uStack_11c" (identifier "uVar6") (= "=") (identifier "uStack_11c")) (; ";")) (expression_statement "piVar17 = piStack_e0;" (assignment_expression "piVar17 = piStack_e0" (identifier "piVar17") (= "=") (identifier "piStack_e0")) (; ";")) (expression_statement "uStack_1e4 = uVar11;" (assignment_expression "uStack_1e4 = uVar11" (identifier "uStack_1e4") (= "=") (identifier "uVar11")) (; ";")) (if_statement "if (uVar11 != 0) goto LAB_0004dbbc;" (if "if") (parenthesized_expression "(uVar11 != 0)" (( "(") (binary_expression "uVar11 != 0" (identifier "uVar11") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0004dbbc;" (goto "goto") (statement_identifier "LAB_0004dbbc") (; ";"))) (if_statement "if (((uVar34 == 1) || (puStack_128 == (uint *)0x0)) || (*piStack_13c != -1)) {\n        iStack_cc = 0;\n        uStack_d8 = 0;\n        uVar41 = puStack_f0[9];\n        uStack_1d0 = uStack_11c;\n        iStack_dc = 0;\n        uStack_168 = 0;\n        if ((*(byte *)(uVar41 + 0x34) & 1) != 0) {\n          uVar14 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n          if ((uVar14 & 1) == 0) {\n            if (uVar14 == 0) goto LAB_0004dd24;\n            if ((uVar14 & 6) == 6) {\n              uVar41 = puVar36[0xc];\n            }\n            else if ((uVar14 & 2) == 0) {\n              if ((uVar14 & 4) == 0) goto LAB_0004dd24;\n              uVar41 = FUN_00046cac(&uStack_168,puVar36,*(undefined4 *)(uVar41 + 0x28),uVar14);\n            }\n            else {\n              uVar41 = puVar36[0xb];\n            }\n          }\n          else {\n            uVar41 = puVar36[10];\n          }\n          if (uVar41 == 0) goto code_r0x0004ea7c;\n        }\nLAB_0004dd24:\n        bVar4 = ppuVar12 != (uint **)0x0;\n        if ((piStack_e0 == (int *)0x0) ||\n           (uVar14 = puVar36[0x13], piStack_e0[uVar6] = uVar41, uVar14 == 0)) {\nLAB_0004dd48:\n          if (*(int *)(uVar41 + 0x34) << 4 < 0) {\n            if (((*(byte *)(uVar41 + 0x34) & 1) == 0) ||\n               (iVar30 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar41 + 8),uVar41 + 0xc,uVar6),\n               iVar30 != 0)) {\n              uVar14 = uVar6;\n              bVar5 = bVar22;\n              if (!bVar22) goto LAB_0004e0e4;\n            }\n            else {\n              uVar6 = 0xffffffff;\n              bVar5 = false;\n            }\n          }\n          else {\n            uVar6 = 0xffffffff;\n            bVar5 = false;\n          }\n          iVar30 = *(int *)(puVar46 + 0x28244);\n          iVar15 = *(int *)(puVar46 + 0x2829c);\n          uVar14 = uStack_11c;\n          ppuStack_1dc = ppuVar12;\n          while ((int)uVar14 < (int)puStack_10c) {\n            uVar40 = uVar14 + 1;\n            if ((((int)uVar40 < (int)uStack_120) || ((int)puStack_114 <= (int)uStack_120)) &&\n               (((int)uVar40 < (int)puStack_128 || ((int)puStack_114 <= (int)puStack_128)))) {\n              iVar16 = *(int *)(uVar41 + 0x34);\n              puVar36 = puStack_f0;\n            }\n            else {\n              uStack_168 = (*(code *)(iVar30 + 0x41e4))(&puStack_144,uVar14 + 2);\n              if (uStack_168 != 0) {\n                if (uStack_168 == 0xc) goto LAB_0004dbf8;\n                uVar20 = 0x46c;\n                goto LAB_0004ea9c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x34);\n              uVar14 = uStack_11c;\n              puVar36 = puStack_f0;\n            }\n            puStack_f0 = puVar36;\n            if (iVar16 << 5 < 0) {\n              iVar16 = *(int *)(uVar41 + 8);\n              if (0 < iVar16) {\n                param_4 = (uint *)0x0;\n                iVar18 = *(int *)(puVar46 + 0x28244);\n                pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7ab0);\n                do {\n                  uVar42 = *puVar36;\n                  iVar44 = *(int *)(*(int *)(uVar41 + 0xc) + (int)param_4 * 4);\n                  uVar37 = *(uint *)(uVar42 + iVar44 * 8 + 4);\n                  if ((uVar37 & 0x800) != 0) {\n                    if ((uVar37 & 0xffc000) != 0) {\n                      uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec);\n                      uVar37 = (uVar37 << 8) >> 0x16;\n                      if ((uVar37 & 4) == 0) {\n                        uVar27 = uVar19 & 1;\n                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    iVar16 = (*(code *)(iVar15 + -0x4eb0))\n                                       (uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14);\n                    if (iVar16 != 0) {\n                      if (iStack_cc < iVar16) {\n                        iStack_cc = iVar16;\n                      }\n                      iVar16 = iVar16 + uStack_11c;\n                      uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16);\n                      uVar14 = uStack_164;\n                      if (uStack_164 != 0) goto joined_r0x0004e770;\n                      piVar33 = piStack_e0 + iVar16;\n                      iVar28 = *piVar33;\n                      piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc);\n                      if (iVar28 == 0) {\n                        piStack_160 = (int *)*piVar17;\n                        piStack_15c = (int *)piVar17[1];\n                        iStack_158 = piVar17[2];\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        *piVar33 = iVar44;\n                      }\n                      else {\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }\n                      if ((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar16 = *(int *)(uVar41 + 8);\n                    uVar14 = uStack_11c;\n                  }\nLAB_0004e670:\n                  param_4 = (uint *)((int)param_4 + 1);\n                } while ((int)param_4 < iVar16);\n              }\n              uStack_168 = 0;\n            }\n            uStack_11c = uVar14 + 1;\n            uVar14 = (uint)*(byte *)((int)puStack_140 + uVar14);\n            do {\n              if (*(int *)(uVar41 + 0x2c) != 0) {\n                uVar37 = *(uint *)(*(int *)(uVar41 + 0x2c) + uVar14 * 4);\nLAB_0004ddf0:\n                if (piStack_e0 != (int *)0x0) goto LAB_0004ddfc;\n                goto LAB_0004de1c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x30);\n              if (iVar16 != 0) {\n                uVar37 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n                if ((uVar37 & 1) == 0) {\n                  uVar37 = *(uint *)(iVar16 + uVar14 * 4);\n                }\n                else {\n                  uVar37 = *(uint *)(iVar16 + (uVar14 + 0x100) * 4);\n                }\n                goto LAB_0004ddf0;\n              }\n              iVar16 = (*(code *)(iVar26 + -0x7510))(puStack_f0,uVar41);\n            } while (iVar16 != 0);\n            uStack_168 = 0xc;\n            uVar14 = uStack_168;\njoined_r0x0004e770:\n            uStack_168 = uVar14;\n            if (piStack_e0 == (int *)0x0) {\n              piVar17 = (int *)0x0;\n              goto LAB_0004dbb4;\n            }\n            uVar37 = 0;\nLAB_0004ddfc:\n            uVar37 = FUN_0004d0a8(&uStack_168,&puStack_144,uVar37);\nLAB_0004de1c:\n            uVar14 = uStack_11c;\n            if (uVar37 == 0) {\n              piVar17 = piStack_e0;\n              if (uStack_168 != 0) goto LAB_0004dbb4;\n              if ((piStack_e0 == (int *)0x0) || ((bVar5 && (!bVar22)))) break;\n              param_4 = &uStack_168;\n              do {\n                bVar2 = false;\n                piVar17 = piStack_e0 + uStack_11c;\n                uVar14 = uStack_11c;\n                do {\n                  uVar37 = uVar14 + 1;\n                  piVar17 = piVar17 + 1;\n                  if (iStack_dc < (int)uVar37) {\n                    if (bVar2) {\n                      uStack_11c = uVar14;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar2 = true;\n                  uVar14 = uVar37;\n                } while (*piVar17 == 0);\n                uStack_11c = uVar37;\n                uVar37 = FUN_0004d0a8(param_4,&puStack_144,0);\n                uVar14 = uStack_11c;\n                if (uStack_168 != 0) {\n                  if (uVar37 == 0) goto LAB_0004e0cc;\n                  break;\n                }\n              } while (uVar37 == 0);\n            }\n            uVar42 = uStack_1d0;\n            if ((bVar4) && (uVar42 = uVar40, uVar41 != uVar37)) {\n              bVar4 = false;\n              uVar42 = uStack_1d0;\n            }\n            uStack_1d0 = uVar42;\n            uVar41 = uVar37;\n            uStack_11c = uVar14;\n            if (((*(byte *)(uVar37 + 0x34) & 8) != 0) &&\n               (((*(byte *)(uVar37 + 0x34) & 1) == 0 ||\n                (iVar16 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar37 + 8),uVar37 + 0xc,uVar14)\n                , iVar16 != 0)))) {\n              if (!bVar22) goto LAB_0004e0e4;\n              ppuStack_1dc = (uint **)0x0;\n              uVar6 = uVar14;\n              bVar5 = bVar22;\n            }\n          }\nLAB_0004e0cc:\n          uVar14 = uVar6;\n          if (ppuStack_1dc != (uint **)0x0) {\n            *ppuStack_1dc = (uint *)((int)*ppuStack_1dc + uStack_1d0);\n          }\n        }\n        else {\n          uVar14 = FUN_00047924(&puStack_144,uVar41 + 8,uVar41 + 0xc,0);\n          uStack_168 = uVar14;\n          if (uVar14 == 0) {\n            if ((*(byte *)(uVar41 + 0x34) & 2) == 0) {\n              bVar4 = false;\n            }\n            else {\n              uVar14 = FUN_0004c6a8(&puStack_144,uVar41 + 8,uVar41 + 0xc);\n              uStack_168 = uVar14;\n              if (uVar14 != 0) goto LAB_0004e0e4;\n              bVar4 = false;\n            }\n            goto LAB_0004dd48;\n          }\n        }\nLAB_0004e0e4:\n        piVar17 = piStack_e0;\n        if (uVar14 != 0xffffffff) {\n          if (uVar14 == 0xfffffffe) goto LAB_0004dbf8;\n          uStack_e8 = uVar14;\n          if (((uint)ppuVar24[7] & 0x8000000) == 0) {\n            if (!bVar1) {\n              uVar6 = puVar43[0x13];\n              goto joined_r0x0004e94c;\n            }\n            pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n            iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                     piStack_e0[uVar14] + 0xc,uVar14);\n            if ((*(char *)(puVar43 + 0x16) < '\0') || (puVar43[0x13] != 0)) goto LAB_0004e170;\n          }\n          else {\n            uVar6 = puVar43[0x13];\njoined_r0x0004e94c:\n            if (uVar6 != 0) {\n              pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n              iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                       piStack_e0[uVar14] + 0xc,uVar14);\nLAB_0004e170:\n              iVar30 = iStack_e4;\n              puVar36 = puStack_f0;\n              if (uVar14 < 0x3fffffff) {\n                uStack_1f0 = uVar14 + 1;\n                piVar17 = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                if (piVar17 == (int *)0x0) goto LAB_0004dbf8;\n                if (puVar36[0x13] == 0) {\n                  piStack_15c = (int *)0x0;\n                  uStack_150 = 0;\n                  uStack_14c = 0;\n                  uStack_148 = 0;\n                  piStack_160 = piVar17;\n                  iStack_158 = iVar30;\n                  uStack_154 = uVar14;\n                  uStack_1e4 = FUN_0004d30c(&puStack_144,&piStack_160);\n                  (**(code **)(puVar46 + 0x28520))(uStack_148);\n                  if (uStack_1e4 == 0) {\n                    if (*piVar17 == 0) {\n                      (**(code **)(puVar46 + 0x28520))(piVar17);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar46 + 0x28520))(piStack_e0);\n                    uStack_e8 = uVar14;\n                    iStack_e4 = iVar30;\n                    piStack_e0 = piVar17;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  piStack_1ec = (int *)0x0;\n                }\n                else {\n                  piStack_1ec = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                  if (piStack_1ec == (int *)0x0) {\n                    (**(code **)(puVar46 + 0x28520))(piVar17);\n                    uStack_1e4 = 0xc;\n                    piVar17 = piStack_e0;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar15 = *(int *)(puVar46 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);\n                    uStack_150 = 0;\n                    uStack_14c = 0;\n                    uStack_148 = 0;\n                    piStack_160 = piVar17;\n                    piStack_15c = piStack_1ec;\n                    iStack_158 = iVar30;\n                    uStack_154 = uVar14;\n                    uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);\n                    (**(code **)(puVar46 + 0x28520))(uStack_148);\n                    if (uStack_1e4 != 0) break;\n                    if ((*piVar17 != 0) || (*piStack_1ec != 0)) {\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    piVar33 = piStack_e0 + (uStack_1f0 - 1);\n                    uStack_1f0 = uVar14;\n                    while( true ) {\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }\n                    iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       );\n                  }\n                }\n                (**(code **)(puVar46 + 0x28520))(piVar17);\n                (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                piVar17 = piStack_e0;\n                if (uStack_1e4 == 1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }\n              uStack_1e4 = 0xc;\n              goto LAB_0004dbbc;\n            }\n          }\nLAB_0004e7e0:\n          piVar17 = piStack_e0;\n          uStack_1e4 = uVar11;\n          if (local_78 == (uint *)0x0) goto LAB_0004dbbc;\n          puVar23 = ppuVar24[7];\n          if (bVar1) {\n            piVar17 = piStack_74 + 2;\n            do {\n              piVar17[1] = -1;\n              piVar33 = piVar17 + 2;\n              *piVar17 = -1;\n              piVar17 = piVar33;\n            } while (piStack_74 + (int)local_78 * 2 != piVar33);\n            *piStack_74 = 0;\n            piStack_74[1] = uStack_e8;\n            if (((uint)puVar23 & 0x8000000) == 0) {\n              if (*(char *)(puVar43 + 0x16) < '\0') {\n                bVar22 = 0 < (int)puVar43[0x13];\n              }\n              else {\n                bVar22 = false;\n              }\n              uStack_1e4 = FUN_0004bc00(ppuVar24,&puStack_144,local_78,piStack_74,bVar22);\n              piVar17 = piStack_e0;\n              if (uStack_1e4 != 0) goto LAB_0004dbbc;\n              puVar23 = (uint *)*piStack_74;\n            }\n            else {\nLAB_0004e838:\n              puVar23 = (uint *)0x0;\n            }\n            puVar36 = (uint *)0x0;\n            piVar17 = piStack_74;\n            while( true ) {\n              if (puVar23 != (uint *)0xffffffff) {\n                puVar32 = (uint *)piVar17[1];\n                puVar39 = puVar23;\n                puVar38 = puVar32;\n                if (cStack_f8 != '\0') {\n                  puVar39 = puStack_124;\n                  if (puStack_128 != puVar23) {\n                    puVar39 = *(uint **)(iStack_138 + (int)puVar23 * 4);\n                  }\n                  *piVar17 = (int)puVar39;\n                  puVar38 = puStack_124;\n                  if (puStack_128 != puVar32) {\n                    puVar38 = *(uint **)(iStack_138 + (int)puVar32 * 4);\n                  }\n                }\n                *piVar17 = (int)puStack_16c + (int)puVar39;\n                piVar17[1] = (int)puStack_16c + (int)puVar38;\n              }\n              puVar36 = (uint *)((int)puVar36 + 1);\n              piVar17 = piVar17 + 2;\n              if (puVar36 == local_78) break;\n              puVar23 = (uint *)*piVar17;\n            }\n            if (0 < iStack_180) {\n              piVar17 = piStack_74 + (int)local_78 * 2;\n              do {\n                *piVar17 = -1;\n                piVar33 = piVar17 + 2;\n                piVar17[1] = -1;\n                piVar17 = piVar33;\n              } while (piStack_74 + (iStack_180 + (int)local_78) * 2 != piVar33);\n            }\n            piVar33 = (int *)puVar43[0x21];\n            piVar17 = piStack_e0;\n            uStack_1e4 = uVar11;\n            if (piVar33 != (int *)0x0) {\n              iVar29 = 0;\n              piVar3 = piStack_74;\n              do {\n                pcVar45 = *(code **)(puVar46 + 0x28520);\n                if (iVar29 == (int)local_78 + -1) goto LAB_0004dbc0;\n                if (*piVar33 != iVar29) {\n                  piVar3[2] = piStack_74[(*piVar33 + 1) * 2];\n                  piVar3[3] = piStack_74[(*piVar33 + 1) * 2 + 1];\n                }\n                iVar29 = iVar29 + 1;\n                piVar33 = piVar33 + 1;\n                piVar3 = piVar3 + 2;\n              } while( true );\n            }\n            goto LAB_0004dbbc;\n          }\n          *piStack_74 = 0;\n          piStack_74[1] = uStack_e8;\n          goto LAB_0004e838;\n        }\nLAB_0004e2d4:\n        FUN_00044db0(&puStack_144);\n        param_4 = puStack_16c;\n      }" (if "if") (parenthesized_expression "(((uVar34 == 1) || (puStack_128 == (uint *)0x0)) || (*piStack_13c != -1))" (( "(") (binary_expression "((uVar34 == 1) || (puStack_128 == (uint *)0x0)) || (*piStack_13c != -1)" (parenthesized_expression "((uVar34 == 1) || (puStack_128 == (uint *)0x0))" (( "(") (binary_expression "(uVar34 == 1) || (puStack_128 == (uint *)0x0)" (parenthesized_expression "(uVar34 == 1)" (( "(") (binary_expression "uVar34 == 1" (identifier "uVar34") (== "==") (number_literal "1")) () ")")) (|| "||") (parenthesized_expression "(puStack_128 == (uint *)0x0)" (( "(") (binary_expression "puStack_128 == (uint *)0x0" (identifier "puStack_128") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(*piStack_13c != -1)" (( "(") (binary_expression "*piStack_13c != -1" (pointer_expression "*piStack_13c" (* "*") (identifier "piStack_13c")) (!= "!=") (number_literal "-1")) () ")"))) () ")")) (compound_statement "{\n        iStack_cc = 0;\n        uStack_d8 = 0;\n        uVar41 = puStack_f0[9];\n        uStack_1d0 = uStack_11c;\n        iStack_dc = 0;\n        uStack_168 = 0;\n        if ((*(byte *)(uVar41 + 0x34) & 1) != 0) {\n          uVar14 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n          if ((uVar14 & 1) == 0) {\n            if (uVar14 == 0) goto LAB_0004dd24;\n            if ((uVar14 & 6) == 6) {\n              uVar41 = puVar36[0xc];\n            }\n            else if ((uVar14 & 2) == 0) {\n              if ((uVar14 & 4) == 0) goto LAB_0004dd24;\n              uVar41 = FUN_00046cac(&uStack_168,puVar36,*(undefined4 *)(uVar41 + 0x28),uVar14);\n            }\n            else {\n              uVar41 = puVar36[0xb];\n            }\n          }\n          else {\n            uVar41 = puVar36[10];\n          }\n          if (uVar41 == 0) goto code_r0x0004ea7c;\n        }\nLAB_0004dd24:\n        bVar4 = ppuVar12 != (uint **)0x0;\n        if ((piStack_e0 == (int *)0x0) ||\n           (uVar14 = puVar36[0x13], piStack_e0[uVar6] = uVar41, uVar14 == 0)) {\nLAB_0004dd48:\n          if (*(int *)(uVar41 + 0x34) << 4 < 0) {\n            if (((*(byte *)(uVar41 + 0x34) & 1) == 0) ||\n               (iVar30 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar41 + 8),uVar41 + 0xc,uVar6),\n               iVar30 != 0)) {\n              uVar14 = uVar6;\n              bVar5 = bVar22;\n              if (!bVar22) goto LAB_0004e0e4;\n            }\n            else {\n              uVar6 = 0xffffffff;\n              bVar5 = false;\n            }\n          }\n          else {\n            uVar6 = 0xffffffff;\n            bVar5 = false;\n          }\n          iVar30 = *(int *)(puVar46 + 0x28244);\n          iVar15 = *(int *)(puVar46 + 0x2829c);\n          uVar14 = uStack_11c;\n          ppuStack_1dc = ppuVar12;\n          while ((int)uVar14 < (int)puStack_10c) {\n            uVar40 = uVar14 + 1;\n            if ((((int)uVar40 < (int)uStack_120) || ((int)puStack_114 <= (int)uStack_120)) &&\n               (((int)uVar40 < (int)puStack_128 || ((int)puStack_114 <= (int)puStack_128)))) {\n              iVar16 = *(int *)(uVar41 + 0x34);\n              puVar36 = puStack_f0;\n            }\n            else {\n              uStack_168 = (*(code *)(iVar30 + 0x41e4))(&puStack_144,uVar14 + 2);\n              if (uStack_168 != 0) {\n                if (uStack_168 == 0xc) goto LAB_0004dbf8;\n                uVar20 = 0x46c;\n                goto LAB_0004ea9c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x34);\n              uVar14 = uStack_11c;\n              puVar36 = puStack_f0;\n            }\n            puStack_f0 = puVar36;\n            if (iVar16 << 5 < 0) {\n              iVar16 = *(int *)(uVar41 + 8);\n              if (0 < iVar16) {\n                param_4 = (uint *)0x0;\n                iVar18 = *(int *)(puVar46 + 0x28244);\n                pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7ab0);\n                do {\n                  uVar42 = *puVar36;\n                  iVar44 = *(int *)(*(int *)(uVar41 + 0xc) + (int)param_4 * 4);\n                  uVar37 = *(uint *)(uVar42 + iVar44 * 8 + 4);\n                  if ((uVar37 & 0x800) != 0) {\n                    if ((uVar37 & 0xffc000) != 0) {\n                      uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec);\n                      uVar37 = (uVar37 << 8) >> 0x16;\n                      if ((uVar37 & 4) == 0) {\n                        uVar27 = uVar19 & 1;\n                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    iVar16 = (*(code *)(iVar15 + -0x4eb0))\n                                       (uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14);\n                    if (iVar16 != 0) {\n                      if (iStack_cc < iVar16) {\n                        iStack_cc = iVar16;\n                      }\n                      iVar16 = iVar16 + uStack_11c;\n                      uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16);\n                      uVar14 = uStack_164;\n                      if (uStack_164 != 0) goto joined_r0x0004e770;\n                      piVar33 = piStack_e0 + iVar16;\n                      iVar28 = *piVar33;\n                      piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc);\n                      if (iVar28 == 0) {\n                        piStack_160 = (int *)*piVar17;\n                        piStack_15c = (int *)piVar17[1];\n                        iStack_158 = piVar17[2];\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        *piVar33 = iVar44;\n                      }\n                      else {\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }\n                      if ((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar16 = *(int *)(uVar41 + 8);\n                    uVar14 = uStack_11c;\n                  }\nLAB_0004e670:\n                  param_4 = (uint *)((int)param_4 + 1);\n                } while ((int)param_4 < iVar16);\n              }\n              uStack_168 = 0;\n            }\n            uStack_11c = uVar14 + 1;\n            uVar14 = (uint)*(byte *)((int)puStack_140 + uVar14);\n            do {\n              if (*(int *)(uVar41 + 0x2c) != 0) {\n                uVar37 = *(uint *)(*(int *)(uVar41 + 0x2c) + uVar14 * 4);\nLAB_0004ddf0:\n                if (piStack_e0 != (int *)0x0) goto LAB_0004ddfc;\n                goto LAB_0004de1c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x30);\n              if (iVar16 != 0) {\n                uVar37 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n                if ((uVar37 & 1) == 0) {\n                  uVar37 = *(uint *)(iVar16 + uVar14 * 4);\n                }\n                else {\n                  uVar37 = *(uint *)(iVar16 + (uVar14 + 0x100) * 4);\n                }\n                goto LAB_0004ddf0;\n              }\n              iVar16 = (*(code *)(iVar26 + -0x7510))(puStack_f0,uVar41);\n            } while (iVar16 != 0);\n            uStack_168 = 0xc;\n            uVar14 = uStack_168;\njoined_r0x0004e770:\n            uStack_168 = uVar14;\n            if (piStack_e0 == (int *)0x0) {\n              piVar17 = (int *)0x0;\n              goto LAB_0004dbb4;\n            }\n            uVar37 = 0;\nLAB_0004ddfc:\n            uVar37 = FUN_0004d0a8(&uStack_168,&puStack_144,uVar37);\nLAB_0004de1c:\n            uVar14 = uStack_11c;\n            if (uVar37 == 0) {\n              piVar17 = piStack_e0;\n              if (uStack_168 != 0) goto LAB_0004dbb4;\n              if ((piStack_e0 == (int *)0x0) || ((bVar5 && (!bVar22)))) break;\n              param_4 = &uStack_168;\n              do {\n                bVar2 = false;\n                piVar17 = piStack_e0 + uStack_11c;\n                uVar14 = uStack_11c;\n                do {\n                  uVar37 = uVar14 + 1;\n                  piVar17 = piVar17 + 1;\n                  if (iStack_dc < (int)uVar37) {\n                    if (bVar2) {\n                      uStack_11c = uVar14;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar2 = true;\n                  uVar14 = uVar37;\n                } while (*piVar17 == 0);\n                uStack_11c = uVar37;\n                uVar37 = FUN_0004d0a8(param_4,&puStack_144,0);\n                uVar14 = uStack_11c;\n                if (uStack_168 != 0) {\n                  if (uVar37 == 0) goto LAB_0004e0cc;\n                  break;\n                }\n              } while (uVar37 == 0);\n            }\n            uVar42 = uStack_1d0;\n            if ((bVar4) && (uVar42 = uVar40, uVar41 != uVar37)) {\n              bVar4 = false;\n              uVar42 = uStack_1d0;\n            }\n            uStack_1d0 = uVar42;\n            uVar41 = uVar37;\n            uStack_11c = uVar14;\n            if (((*(byte *)(uVar37 + 0x34) & 8) != 0) &&\n               (((*(byte *)(uVar37 + 0x34) & 1) == 0 ||\n                (iVar16 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar37 + 8),uVar37 + 0xc,uVar14)\n                , iVar16 != 0)))) {\n              if (!bVar22) goto LAB_0004e0e4;\n              ppuStack_1dc = (uint **)0x0;\n              uVar6 = uVar14;\n              bVar5 = bVar22;\n            }\n          }\nLAB_0004e0cc:\n          uVar14 = uVar6;\n          if (ppuStack_1dc != (uint **)0x0) {\n            *ppuStack_1dc = (uint *)((int)*ppuStack_1dc + uStack_1d0);\n          }\n        }\n        else {\n          uVar14 = FUN_00047924(&puStack_144,uVar41 + 8,uVar41 + 0xc,0);\n          uStack_168 = uVar14;\n          if (uVar14 == 0) {\n            if ((*(byte *)(uVar41 + 0x34) & 2) == 0) {\n              bVar4 = false;\n            }\n            else {\n              uVar14 = FUN_0004c6a8(&puStack_144,uVar41 + 8,uVar41 + 0xc);\n              uStack_168 = uVar14;\n              if (uVar14 != 0) goto LAB_0004e0e4;\n              bVar4 = false;\n            }\n            goto LAB_0004dd48;\n          }\n        }\nLAB_0004e0e4:\n        piVar17 = piStack_e0;\n        if (uVar14 != 0xffffffff) {\n          if (uVar14 == 0xfffffffe) goto LAB_0004dbf8;\n          uStack_e8 = uVar14;\n          if (((uint)ppuVar24[7] & 0x8000000) == 0) {\n            if (!bVar1) {\n              uVar6 = puVar43[0x13];\n              goto joined_r0x0004e94c;\n            }\n            pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n            iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                     piStack_e0[uVar14] + 0xc,uVar14);\n            if ((*(char *)(puVar43 + 0x16) < '\0') || (puVar43[0x13] != 0)) goto LAB_0004e170;\n          }\n          else {\n            uVar6 = puVar43[0x13];\njoined_r0x0004e94c:\n            if (uVar6 != 0) {\n              pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n              iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                       piStack_e0[uVar14] + 0xc,uVar14);\nLAB_0004e170:\n              iVar30 = iStack_e4;\n              puVar36 = puStack_f0;\n              if (uVar14 < 0x3fffffff) {\n                uStack_1f0 = uVar14 + 1;\n                piVar17 = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                if (piVar17 == (int *)0x0) goto LAB_0004dbf8;\n                if (puVar36[0x13] == 0) {\n                  piStack_15c = (int *)0x0;\n                  uStack_150 = 0;\n                  uStack_14c = 0;\n                  uStack_148 = 0;\n                  piStack_160 = piVar17;\n                  iStack_158 = iVar30;\n                  uStack_154 = uVar14;\n                  uStack_1e4 = FUN_0004d30c(&puStack_144,&piStack_160);\n                  (**(code **)(puVar46 + 0x28520))(uStack_148);\n                  if (uStack_1e4 == 0) {\n                    if (*piVar17 == 0) {\n                      (**(code **)(puVar46 + 0x28520))(piVar17);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar46 + 0x28520))(piStack_e0);\n                    uStack_e8 = uVar14;\n                    iStack_e4 = iVar30;\n                    piStack_e0 = piVar17;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  piStack_1ec = (int *)0x0;\n                }\n                else {\n                  piStack_1ec = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                  if (piStack_1ec == (int *)0x0) {\n                    (**(code **)(puVar46 + 0x28520))(piVar17);\n                    uStack_1e4 = 0xc;\n                    piVar17 = piStack_e0;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar15 = *(int *)(puVar46 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);\n                    uStack_150 = 0;\n                    uStack_14c = 0;\n                    uStack_148 = 0;\n                    piStack_160 = piVar17;\n                    piStack_15c = piStack_1ec;\n                    iStack_158 = iVar30;\n                    uStack_154 = uVar14;\n                    uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);\n                    (**(code **)(puVar46 + 0x28520))(uStack_148);\n                    if (uStack_1e4 != 0) break;\n                    if ((*piVar17 != 0) || (*piStack_1ec != 0)) {\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    piVar33 = piStack_e0 + (uStack_1f0 - 1);\n                    uStack_1f0 = uVar14;\n                    while( true ) {\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }\n                    iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       );\n                  }\n                }\n                (**(code **)(puVar46 + 0x28520))(piVar17);\n                (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                piVar17 = piStack_e0;\n                if (uStack_1e4 == 1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }\n              uStack_1e4 = 0xc;\n              goto LAB_0004dbbc;\n            }\n          }\nLAB_0004e7e0:\n          piVar17 = piStack_e0;\n          uStack_1e4 = uVar11;\n          if (local_78 == (uint *)0x0) goto LAB_0004dbbc;\n          puVar23 = ppuVar24[7];\n          if (bVar1) {\n            piVar17 = piStack_74 + 2;\n            do {\n              piVar17[1] = -1;\n              piVar33 = piVar17 + 2;\n              *piVar17 = -1;\n              piVar17 = piVar33;\n            } while (piStack_74 + (int)local_78 * 2 != piVar33);\n            *piStack_74 = 0;\n            piStack_74[1] = uStack_e8;\n            if (((uint)puVar23 & 0x8000000) == 0) {\n              if (*(char *)(puVar43 + 0x16) < '\0') {\n                bVar22 = 0 < (int)puVar43[0x13];\n              }\n              else {\n                bVar22 = false;\n              }\n              uStack_1e4 = FUN_0004bc00(ppuVar24,&puStack_144,local_78,piStack_74,bVar22);\n              piVar17 = piStack_e0;\n              if (uStack_1e4 != 0) goto LAB_0004dbbc;\n              puVar23 = (uint *)*piStack_74;\n            }\n            else {\nLAB_0004e838:\n              puVar23 = (uint *)0x0;\n            }\n            puVar36 = (uint *)0x0;\n            piVar17 = piStack_74;\n            while( true ) {\n              if (puVar23 != (uint *)0xffffffff) {\n                puVar32 = (uint *)piVar17[1];\n                puVar39 = puVar23;\n                puVar38 = puVar32;\n                if (cStack_f8 != '\0') {\n                  puVar39 = puStack_124;\n                  if (puStack_128 != puVar23) {\n                    puVar39 = *(uint **)(iStack_138 + (int)puVar23 * 4);\n                  }\n                  *piVar17 = (int)puVar39;\n                  puVar38 = puStack_124;\n                  if (puStack_128 != puVar32) {\n                    puVar38 = *(uint **)(iStack_138 + (int)puVar32 * 4);\n                  }\n                }\n                *piVar17 = (int)puStack_16c + (int)puVar39;\n                piVar17[1] = (int)puStack_16c + (int)puVar38;\n              }\n              puVar36 = (uint *)((int)puVar36 + 1);\n              piVar17 = piVar17 + 2;\n              if (puVar36 == local_78) break;\n              puVar23 = (uint *)*piVar17;\n            }\n            if (0 < iStack_180) {\n              piVar17 = piStack_74 + (int)local_78 * 2;\n              do {\n                *piVar17 = -1;\n                piVar33 = piVar17 + 2;\n                piVar17[1] = -1;\n                piVar17 = piVar33;\n              } while (piStack_74 + (iStack_180 + (int)local_78) * 2 != piVar33);\n            }\n            piVar33 = (int *)puVar43[0x21];\n            piVar17 = piStack_e0;\n            uStack_1e4 = uVar11;\n            if (piVar33 != (int *)0x0) {\n              iVar29 = 0;\n              piVar3 = piStack_74;\n              do {\n                pcVar45 = *(code **)(puVar46 + 0x28520);\n                if (iVar29 == (int)local_78 + -1) goto LAB_0004dbc0;\n                if (*piVar33 != iVar29) {\n                  piVar3[2] = piStack_74[(*piVar33 + 1) * 2];\n                  piVar3[3] = piStack_74[(*piVar33 + 1) * 2 + 1];\n                }\n                iVar29 = iVar29 + 1;\n                piVar33 = piVar33 + 1;\n                piVar3 = piVar3 + 2;\n              } while( true );\n            }\n            goto LAB_0004dbbc;\n          }\n          *piStack_74 = 0;\n          piStack_74[1] = uStack_e8;\n          goto LAB_0004e838;\n        }\nLAB_0004e2d4:\n        FUN_00044db0(&puStack_144);\n        param_4 = puStack_16c;\n      }" ({ "{") (expression_statement "iStack_cc = 0;" (assignment_expression "iStack_cc = 0" (identifier "iStack_cc") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_d8 = 0;" (assignment_expression "uStack_d8 = 0" (identifier "uStack_d8") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar41 = puStack_f0[9];" (assignment_expression "uVar41 = puStack_f0[9]" (identifier "uVar41") (= "=") (subscript_expression "puStack_f0[9]" (identifier "puStack_f0") ([ "[") (number_literal "9") (] "]"))) (; ";")) (expression_statement "uStack_1d0 = uStack_11c;" (assignment_expression "uStack_1d0 = uStack_11c" (identifier "uStack_1d0") (= "=") (identifier "uStack_11c")) (; ";")) (expression_statement "iStack_dc = 0;" (assignment_expression "iStack_dc = 0" (identifier "iStack_dc") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_168 = 0;" (assignment_expression "uStack_168 = 0" (identifier "uStack_168") (= "=") (number_literal "0")) (; ";")) (if_statement "if ((*(byte *)(uVar41 + 0x34) & 1) != 0) {\n          uVar14 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n          if ((uVar14 & 1) == 0) {\n            if (uVar14 == 0) goto LAB_0004dd24;\n            if ((uVar14 & 6) == 6) {\n              uVar41 = puVar36[0xc];\n            }\n            else if ((uVar14 & 2) == 0) {\n              if ((uVar14 & 4) == 0) goto LAB_0004dd24;\n              uVar41 = FUN_00046cac(&uStack_168,puVar36,*(undefined4 *)(uVar41 + 0x28),uVar14);\n            }\n            else {\n              uVar41 = puVar36[0xb];\n            }\n          }\n          else {\n            uVar41 = puVar36[10];\n          }\n          if (uVar41 == 0) goto code_r0x0004ea7c;\n        }" (if "if") (parenthesized_expression "((*(byte *)(uVar41 + 0x34) & 1) != 0)" (( "(") (binary_expression "(*(byte *)(uVar41 + 0x34) & 1) != 0" (parenthesized_expression "(*(byte *)(uVar41 + 0x34) & 1)" (( "(") (binary_expression "*(byte *)(uVar41 + 0x34) & 1" (pointer_expression "*(byte *)(uVar41 + 0x34)" (* "*") (cast_expression "(byte *)(uVar41 + 0x34)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar41 + 0x34)" (( "(") (binary_expression "uVar41 + 0x34" (identifier "uVar41") (+ "+") (number_literal "0x34")) () ")")))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          uVar14 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n          if ((uVar14 & 1) == 0) {\n            if (uVar14 == 0) goto LAB_0004dd24;\n            if ((uVar14 & 6) == 6) {\n              uVar41 = puVar36[0xc];\n            }\n            else if ((uVar14 & 2) == 0) {\n              if ((uVar14 & 4) == 0) goto LAB_0004dd24;\n              uVar41 = FUN_00046cac(&uStack_168,puVar36,*(undefined4 *)(uVar41 + 0x28),uVar14);\n            }\n            else {\n              uVar41 = puVar36[0xb];\n            }\n          }\n          else {\n            uVar41 = puVar36[10];\n          }\n          if (uVar41 == 0) goto code_r0x0004ea7c;\n        }" ({ "{") (expression_statement "uVar14 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);" (assignment_expression "uVar14 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec)" (identifier "uVar14") (= "=") (call_expression "FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec)" (identifier "FUN_00047ab0") (argument_list "(&puStack_144,uStack_11c - 1,puStack_ec)" (( "(") (pointer_expression "&puStack_144" (& "&") (identifier "puStack_144")) (, ",") (binary_expression "uStack_11c - 1" (identifier "uStack_11c") (- "-") (number_literal "1")) (, ",") (identifier "puStack_ec") () ")")))) (; ";")) (if_statement "if ((uVar14 & 1) == 0) {\n            if (uVar14 == 0) goto LAB_0004dd24;\n            if ((uVar14 & 6) == 6) {\n              uVar41 = puVar36[0xc];\n            }\n            else if ((uVar14 & 2) == 0) {\n              if ((uVar14 & 4) == 0) goto LAB_0004dd24;\n              uVar41 = FUN_00046cac(&uStack_168,puVar36,*(undefined4 *)(uVar41 + 0x28),uVar14);\n            }\n            else {\n              uVar41 = puVar36[0xb];\n            }\n          }\n          else {\n            uVar41 = puVar36[10];\n          }" (if "if") (parenthesized_expression "((uVar14 & 1) == 0)" (( "(") (binary_expression "(uVar14 & 1) == 0" (parenthesized_expression "(uVar14 & 1)" (( "(") (binary_expression "uVar14 & 1" (identifier "uVar14") (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            if (uVar14 == 0) goto LAB_0004dd24;\n            if ((uVar14 & 6) == 6) {\n              uVar41 = puVar36[0xc];\n            }\n            else if ((uVar14 & 2) == 0) {\n              if ((uVar14 & 4) == 0) goto LAB_0004dd24;\n              uVar41 = FUN_00046cac(&uStack_168,puVar36,*(undefined4 *)(uVar41 + 0x28),uVar14);\n            }\n            else {\n              uVar41 = puVar36[0xb];\n            }\n          }" ({ "{") (if_statement "if (uVar14 == 0) goto LAB_0004dd24;" (if "if") (parenthesized_expression "(uVar14 == 0)" (( "(") (binary_expression "uVar14 == 0" (identifier "uVar14") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0004dd24;" (goto "goto") (statement_identifier "LAB_0004dd24") (; ";"))) (if_statement "if ((uVar14 & 6) == 6) {\n              uVar41 = puVar36[0xc];\n            }\n            else if ((uVar14 & 2) == 0) {\n              if ((uVar14 & 4) == 0) goto LAB_0004dd24;\n              uVar41 = FUN_00046cac(&uStack_168,puVar36,*(undefined4 *)(uVar41 + 0x28),uVar14);\n            }\n            else {\n              uVar41 = puVar36[0xb];\n            }" (if "if") (parenthesized_expression "((uVar14 & 6) == 6)" (( "(") (binary_expression "(uVar14 & 6) == 6" (parenthesized_expression "(uVar14 & 6)" (( "(") (binary_expression "uVar14 & 6" (identifier "uVar14") (& "&") (number_literal "6")) () ")")) (== "==") (number_literal "6")) () ")")) (compound_statement "{\n              uVar41 = puVar36[0xc];\n            }" ({ "{") (expression_statement "uVar41 = puVar36[0xc];" (assignment_expression "uVar41 = puVar36[0xc]" (identifier "uVar41") (= "=") (subscript_expression "puVar36[0xc]" (identifier "puVar36") ([ "[") (number_literal "0xc") (] "]"))) (; ";")) (} "}")) (else_clause "else if ((uVar14 & 2) == 0) {\n              if ((uVar14 & 4) == 0) goto LAB_0004dd24;\n              uVar41 = FUN_00046cac(&uStack_168,puVar36,*(undefined4 *)(uVar41 + 0x28),uVar14);\n            }\n            else {\n              uVar41 = puVar36[0xb];\n            }" (else "else") (if_statement "if ((uVar14 & 2) == 0) {\n              if ((uVar14 & 4) == 0) goto LAB_0004dd24;\n              uVar41 = FUN_00046cac(&uStack_168,puVar36,*(undefined4 *)(uVar41 + 0x28),uVar14);\n            }\n            else {\n              uVar41 = puVar36[0xb];\n            }" (if "if") (parenthesized_expression "((uVar14 & 2) == 0)" (( "(") (binary_expression "(uVar14 & 2) == 0" (parenthesized_expression "(uVar14 & 2)" (( "(") (binary_expression "uVar14 & 2" (identifier "uVar14") (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              if ((uVar14 & 4) == 0) goto LAB_0004dd24;\n              uVar41 = FUN_00046cac(&uStack_168,puVar36,*(undefined4 *)(uVar41 + 0x28),uVar14);\n            }" ({ "{") (if_statement "if ((uVar14 & 4) == 0) goto LAB_0004dd24;" (if "if") (parenthesized_expression "((uVar14 & 4) == 0)" (( "(") (binary_expression "(uVar14 & 4) == 0" (parenthesized_expression "(uVar14 & 4)" (( "(") (binary_expression "uVar14 & 4" (identifier "uVar14") (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0004dd24;" (goto "goto") (statement_identifier "LAB_0004dd24") (; ";"))) (expression_statement "uVar41 = FUN_00046cac(&uStack_168,puVar36,*(undefined4 *)(uVar41 + 0x28),uVar14);" (assignment_expression "uVar41 = FUN_00046cac(&uStack_168,puVar36,*(undefined4 *)(uVar41 + 0x28),uVar14)" (identifier "uVar41") (= "=") (call_expression "FUN_00046cac(&uStack_168,puVar36,*(undefined4 *)(uVar41 + 0x28),uVar14)" (identifier "FUN_00046cac") (argument_list "(&uStack_168,puVar36,*(undefined4 *)(uVar41 + 0x28),uVar14)" (( "(") (pointer_expression "&uStack_168" (& "&") (identifier "uStack_168")) (, ",") (identifier "puVar36") (, ",") (pointer_expression "*(undefined4 *)(uVar41 + 0x28)" (* "*") (cast_expression "(undefined4 *)(uVar41 + 0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar41 + 0x28)" (( "(") (binary_expression "uVar41 + 0x28" (identifier "uVar41") (+ "+") (number_literal "0x28")) () ")")))) (, ",") (identifier "uVar14") () ")")))) (; ";")) (} "}")) (else_clause "else {\n              uVar41 = puVar36[0xb];\n            }" (else "else") (compound_statement "{\n              uVar41 = puVar36[0xb];\n            }" ({ "{") (expression_statement "uVar41 = puVar36[0xb];" (assignment_expression "uVar41 = puVar36[0xb]" (identifier "uVar41") (= "=") (subscript_expression "puVar36[0xb]" (identifier "puVar36") ([ "[") (number_literal "0xb") (] "]"))) (; ";")) (} "}")))))) (} "}")) (else_clause "else {\n            uVar41 = puVar36[10];\n          }" (else "else") (compound_statement "{\n            uVar41 = puVar36[10];\n          }" ({ "{") (expression_statement "uVar41 = puVar36[10];" (assignment_expression "uVar41 = puVar36[10]" (identifier "uVar41") (= "=") (subscript_expression "puVar36[10]" (identifier "puVar36") ([ "[") (number_literal "10") (] "]"))) (; ";")) (} "}")))) (if_statement "if (uVar41 == 0) goto code_r0x0004ea7c;" (if "if") (parenthesized_expression "(uVar41 == 0)" (( "(") (binary_expression "uVar41 == 0" (identifier "uVar41") (== "==") (number_literal "0")) () ")")) (goto_statement "goto code_r0x0004ea7c;" (goto "goto") (statement_identifier "code_r0x0004ea7c") (; ";"))) (} "}"))) (labeled_statement "LAB_0004dd24:\n        bVar4 = ppuVar12 != (uint **)0x0;" (statement_identifier "LAB_0004dd24") (: ":") (expression_statement "bVar4 = ppuVar12 != (uint **)0x0;" (assignment_expression "bVar4 = ppuVar12 != (uint **)0x0" (identifier "bVar4") (= "=") (binary_expression "ppuVar12 != (uint **)0x0" (identifier "ppuVar12") (!= "!=") (cast_expression "(uint **)0x0" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0")))) (; ";"))) (if_statement "if ((piStack_e0 == (int *)0x0) ||\n           (uVar14 = puVar36[0x13], piStack_e0[uVar6] = uVar41, uVar14 == 0)) {\nLAB_0004dd48:\n          if (*(int *)(uVar41 + 0x34) << 4 < 0) {\n            if (((*(byte *)(uVar41 + 0x34) & 1) == 0) ||\n               (iVar30 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar41 + 8),uVar41 + 0xc,uVar6),\n               iVar30 != 0)) {\n              uVar14 = uVar6;\n              bVar5 = bVar22;\n              if (!bVar22) goto LAB_0004e0e4;\n            }\n            else {\n              uVar6 = 0xffffffff;\n              bVar5 = false;\n            }\n          }\n          else {\n            uVar6 = 0xffffffff;\n            bVar5 = false;\n          }\n          iVar30 = *(int *)(puVar46 + 0x28244);\n          iVar15 = *(int *)(puVar46 + 0x2829c);\n          uVar14 = uStack_11c;\n          ppuStack_1dc = ppuVar12;\n          while ((int)uVar14 < (int)puStack_10c) {\n            uVar40 = uVar14 + 1;\n            if ((((int)uVar40 < (int)uStack_120) || ((int)puStack_114 <= (int)uStack_120)) &&\n               (((int)uVar40 < (int)puStack_128 || ((int)puStack_114 <= (int)puStack_128)))) {\n              iVar16 = *(int *)(uVar41 + 0x34);\n              puVar36 = puStack_f0;\n            }\n            else {\n              uStack_168 = (*(code *)(iVar30 + 0x41e4))(&puStack_144,uVar14 + 2);\n              if (uStack_168 != 0) {\n                if (uStack_168 == 0xc) goto LAB_0004dbf8;\n                uVar20 = 0x46c;\n                goto LAB_0004ea9c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x34);\n              uVar14 = uStack_11c;\n              puVar36 = puStack_f0;\n            }\n            puStack_f0 = puVar36;\n            if (iVar16 << 5 < 0) {\n              iVar16 = *(int *)(uVar41 + 8);\n              if (0 < iVar16) {\n                param_4 = (uint *)0x0;\n                iVar18 = *(int *)(puVar46 + 0x28244);\n                pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7ab0);\n                do {\n                  uVar42 = *puVar36;\n                  iVar44 = *(int *)(*(int *)(uVar41 + 0xc) + (int)param_4 * 4);\n                  uVar37 = *(uint *)(uVar42 + iVar44 * 8 + 4);\n                  if ((uVar37 & 0x800) != 0) {\n                    if ((uVar37 & 0xffc000) != 0) {\n                      uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec);\n                      uVar37 = (uVar37 << 8) >> 0x16;\n                      if ((uVar37 & 4) == 0) {\n                        uVar27 = uVar19 & 1;\n                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    iVar16 = (*(code *)(iVar15 + -0x4eb0))\n                                       (uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14);\n                    if (iVar16 != 0) {\n                      if (iStack_cc < iVar16) {\n                        iStack_cc = iVar16;\n                      }\n                      iVar16 = iVar16 + uStack_11c;\n                      uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16);\n                      uVar14 = uStack_164;\n                      if (uStack_164 != 0) goto joined_r0x0004e770;\n                      piVar33 = piStack_e0 + iVar16;\n                      iVar28 = *piVar33;\n                      piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc);\n                      if (iVar28 == 0) {\n                        piStack_160 = (int *)*piVar17;\n                        piStack_15c = (int *)piVar17[1];\n                        iStack_158 = piVar17[2];\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        *piVar33 = iVar44;\n                      }\n                      else {\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }\n                      if ((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar16 = *(int *)(uVar41 + 8);\n                    uVar14 = uStack_11c;\n                  }\nLAB_0004e670:\n                  param_4 = (uint *)((int)param_4 + 1);\n                } while ((int)param_4 < iVar16);\n              }\n              uStack_168 = 0;\n            }\n            uStack_11c = uVar14 + 1;\n            uVar14 = (uint)*(byte *)((int)puStack_140 + uVar14);\n            do {\n              if (*(int *)(uVar41 + 0x2c) != 0) {\n                uVar37 = *(uint *)(*(int *)(uVar41 + 0x2c) + uVar14 * 4);\nLAB_0004ddf0:\n                if (piStack_e0 != (int *)0x0) goto LAB_0004ddfc;\n                goto LAB_0004de1c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x30);\n              if (iVar16 != 0) {\n                uVar37 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n                if ((uVar37 & 1) == 0) {\n                  uVar37 = *(uint *)(iVar16 + uVar14 * 4);\n                }\n                else {\n                  uVar37 = *(uint *)(iVar16 + (uVar14 + 0x100) * 4);\n                }\n                goto LAB_0004ddf0;\n              }\n              iVar16 = (*(code *)(iVar26 + -0x7510))(puStack_f0,uVar41);\n            } while (iVar16 != 0);\n            uStack_168 = 0xc;\n            uVar14 = uStack_168;\njoined_r0x0004e770:\n            uStack_168 = uVar14;\n            if (piStack_e0 == (int *)0x0) {\n              piVar17 = (int *)0x0;\n              goto LAB_0004dbb4;\n            }\n            uVar37 = 0;\nLAB_0004ddfc:\n            uVar37 = FUN_0004d0a8(&uStack_168,&puStack_144,uVar37);\nLAB_0004de1c:\n            uVar14 = uStack_11c;\n            if (uVar37 == 0) {\n              piVar17 = piStack_e0;\n              if (uStack_168 != 0) goto LAB_0004dbb4;\n              if ((piStack_e0 == (int *)0x0) || ((bVar5 && (!bVar22)))) break;\n              param_4 = &uStack_168;\n              do {\n                bVar2 = false;\n                piVar17 = piStack_e0 + uStack_11c;\n                uVar14 = uStack_11c;\n                do {\n                  uVar37 = uVar14 + 1;\n                  piVar17 = piVar17 + 1;\n                  if (iStack_dc < (int)uVar37) {\n                    if (bVar2) {\n                      uStack_11c = uVar14;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar2 = true;\n                  uVar14 = uVar37;\n                } while (*piVar17 == 0);\n                uStack_11c = uVar37;\n                uVar37 = FUN_0004d0a8(param_4,&puStack_144,0);\n                uVar14 = uStack_11c;\n                if (uStack_168 != 0) {\n                  if (uVar37 == 0) goto LAB_0004e0cc;\n                  break;\n                }\n              } while (uVar37 == 0);\n            }\n            uVar42 = uStack_1d0;\n            if ((bVar4) && (uVar42 = uVar40, uVar41 != uVar37)) {\n              bVar4 = false;\n              uVar42 = uStack_1d0;\n            }\n            uStack_1d0 = uVar42;\n            uVar41 = uVar37;\n            uStack_11c = uVar14;\n            if (((*(byte *)(uVar37 + 0x34) & 8) != 0) &&\n               (((*(byte *)(uVar37 + 0x34) & 1) == 0 ||\n                (iVar16 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar37 + 8),uVar37 + 0xc,uVar14)\n                , iVar16 != 0)))) {\n              if (!bVar22) goto LAB_0004e0e4;\n              ppuStack_1dc = (uint **)0x0;\n              uVar6 = uVar14;\n              bVar5 = bVar22;\n            }\n          }\nLAB_0004e0cc:\n          uVar14 = uVar6;\n          if (ppuStack_1dc != (uint **)0x0) {\n            *ppuStack_1dc = (uint *)((int)*ppuStack_1dc + uStack_1d0);\n          }\n        }\n        else {\n          uVar14 = FUN_00047924(&puStack_144,uVar41 + 8,uVar41 + 0xc,0);\n          uStack_168 = uVar14;\n          if (uVar14 == 0) {\n            if ((*(byte *)(uVar41 + 0x34) & 2) == 0) {\n              bVar4 = false;\n            }\n            else {\n              uVar14 = FUN_0004c6a8(&puStack_144,uVar41 + 8,uVar41 + 0xc);\n              uStack_168 = uVar14;\n              if (uVar14 != 0) goto LAB_0004e0e4;\n              bVar4 = false;\n            }\n            goto LAB_0004dd48;\n          }\n        }" (if "if") (parenthesized_expression "((piStack_e0 == (int *)0x0) ||\n           (uVar14 = puVar36[0x13], piStack_e0[uVar6] = uVar41, uVar14 == 0))" (( "(") (binary_expression "(piStack_e0 == (int *)0x0) ||\n           (uVar14 = puVar36[0x13], piStack_e0[uVar6] = uVar41, uVar14 == 0)" (parenthesized_expression "(piStack_e0 == (int *)0x0)" (( "(") (binary_expression "piStack_e0 == (int *)0x0" (identifier "piStack_e0") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(uVar14 = puVar36[0x13], piStack_e0[uVar6] = uVar41, uVar14 == 0)" (( "(") (comma_expression "uVar14 = puVar36[0x13], piStack_e0[uVar6] = uVar41, uVar14 == 0" (assignment_expression "uVar14 = puVar36[0x13]" (identifier "uVar14") (= "=") (subscript_expression "puVar36[0x13]" (identifier "puVar36") ([ "[") (number_literal "0x13") (] "]"))) (, ",") (comma_expression "piStack_e0[uVar6] = uVar41, uVar14 == 0" (assignment_expression "piStack_e0[uVar6] = uVar41" (subscript_expression "piStack_e0[uVar6]" (identifier "piStack_e0") ([ "[") (identifier "uVar6") (] "]")) (= "=") (identifier "uVar41")) (, ",") (binary_expression "uVar14 == 0" (identifier "uVar14") (== "==") (number_literal "0")))) () ")"))) () ")")) (compound_statement "{\nLAB_0004dd48:\n          if (*(int *)(uVar41 + 0x34) << 4 < 0) {\n            if (((*(byte *)(uVar41 + 0x34) & 1) == 0) ||\n               (iVar30 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar41 + 8),uVar41 + 0xc,uVar6),\n               iVar30 != 0)) {\n              uVar14 = uVar6;\n              bVar5 = bVar22;\n              if (!bVar22) goto LAB_0004e0e4;\n            }\n            else {\n              uVar6 = 0xffffffff;\n              bVar5 = false;\n            }\n          }\n          else {\n            uVar6 = 0xffffffff;\n            bVar5 = false;\n          }\n          iVar30 = *(int *)(puVar46 + 0x28244);\n          iVar15 = *(int *)(puVar46 + 0x2829c);\n          uVar14 = uStack_11c;\n          ppuStack_1dc = ppuVar12;\n          while ((int)uVar14 < (int)puStack_10c) {\n            uVar40 = uVar14 + 1;\n            if ((((int)uVar40 < (int)uStack_120) || ((int)puStack_114 <= (int)uStack_120)) &&\n               (((int)uVar40 < (int)puStack_128 || ((int)puStack_114 <= (int)puStack_128)))) {\n              iVar16 = *(int *)(uVar41 + 0x34);\n              puVar36 = puStack_f0;\n            }\n            else {\n              uStack_168 = (*(code *)(iVar30 + 0x41e4))(&puStack_144,uVar14 + 2);\n              if (uStack_168 != 0) {\n                if (uStack_168 == 0xc) goto LAB_0004dbf8;\n                uVar20 = 0x46c;\n                goto LAB_0004ea9c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x34);\n              uVar14 = uStack_11c;\n              puVar36 = puStack_f0;\n            }\n            puStack_f0 = puVar36;\n            if (iVar16 << 5 < 0) {\n              iVar16 = *(int *)(uVar41 + 8);\n              if (0 < iVar16) {\n                param_4 = (uint *)0x0;\n                iVar18 = *(int *)(puVar46 + 0x28244);\n                pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7ab0);\n                do {\n                  uVar42 = *puVar36;\n                  iVar44 = *(int *)(*(int *)(uVar41 + 0xc) + (int)param_4 * 4);\n                  uVar37 = *(uint *)(uVar42 + iVar44 * 8 + 4);\n                  if ((uVar37 & 0x800) != 0) {\n                    if ((uVar37 & 0xffc000) != 0) {\n                      uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec);\n                      uVar37 = (uVar37 << 8) >> 0x16;\n                      if ((uVar37 & 4) == 0) {\n                        uVar27 = uVar19 & 1;\n                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    iVar16 = (*(code *)(iVar15 + -0x4eb0))\n                                       (uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14);\n                    if (iVar16 != 0) {\n                      if (iStack_cc < iVar16) {\n                        iStack_cc = iVar16;\n                      }\n                      iVar16 = iVar16 + uStack_11c;\n                      uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16);\n                      uVar14 = uStack_164;\n                      if (uStack_164 != 0) goto joined_r0x0004e770;\n                      piVar33 = piStack_e0 + iVar16;\n                      iVar28 = *piVar33;\n                      piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc);\n                      if (iVar28 == 0) {\n                        piStack_160 = (int *)*piVar17;\n                        piStack_15c = (int *)piVar17[1];\n                        iStack_158 = piVar17[2];\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        *piVar33 = iVar44;\n                      }\n                      else {\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }\n                      if ((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar16 = *(int *)(uVar41 + 8);\n                    uVar14 = uStack_11c;\n                  }\nLAB_0004e670:\n                  param_4 = (uint *)((int)param_4 + 1);\n                } while ((int)param_4 < iVar16);\n              }\n              uStack_168 = 0;\n            }\n            uStack_11c = uVar14 + 1;\n            uVar14 = (uint)*(byte *)((int)puStack_140 + uVar14);\n            do {\n              if (*(int *)(uVar41 + 0x2c) != 0) {\n                uVar37 = *(uint *)(*(int *)(uVar41 + 0x2c) + uVar14 * 4);\nLAB_0004ddf0:\n                if (piStack_e0 != (int *)0x0) goto LAB_0004ddfc;\n                goto LAB_0004de1c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x30);\n              if (iVar16 != 0) {\n                uVar37 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n                if ((uVar37 & 1) == 0) {\n                  uVar37 = *(uint *)(iVar16 + uVar14 * 4);\n                }\n                else {\n                  uVar37 = *(uint *)(iVar16 + (uVar14 + 0x100) * 4);\n                }\n                goto LAB_0004ddf0;\n              }\n              iVar16 = (*(code *)(iVar26 + -0x7510))(puStack_f0,uVar41);\n            } while (iVar16 != 0);\n            uStack_168 = 0xc;\n            uVar14 = uStack_168;\njoined_r0x0004e770:\n            uStack_168 = uVar14;\n            if (piStack_e0 == (int *)0x0) {\n              piVar17 = (int *)0x0;\n              goto LAB_0004dbb4;\n            }\n            uVar37 = 0;\nLAB_0004ddfc:\n            uVar37 = FUN_0004d0a8(&uStack_168,&puStack_144,uVar37);\nLAB_0004de1c:\n            uVar14 = uStack_11c;\n            if (uVar37 == 0) {\n              piVar17 = piStack_e0;\n              if (uStack_168 != 0) goto LAB_0004dbb4;\n              if ((piStack_e0 == (int *)0x0) || ((bVar5 && (!bVar22)))) break;\n              param_4 = &uStack_168;\n              do {\n                bVar2 = false;\n                piVar17 = piStack_e0 + uStack_11c;\n                uVar14 = uStack_11c;\n                do {\n                  uVar37 = uVar14 + 1;\n                  piVar17 = piVar17 + 1;\n                  if (iStack_dc < (int)uVar37) {\n                    if (bVar2) {\n                      uStack_11c = uVar14;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar2 = true;\n                  uVar14 = uVar37;\n                } while (*piVar17 == 0);\n                uStack_11c = uVar37;\n                uVar37 = FUN_0004d0a8(param_4,&puStack_144,0);\n                uVar14 = uStack_11c;\n                if (uStack_168 != 0) {\n                  if (uVar37 == 0) goto LAB_0004e0cc;\n                  break;\n                }\n              } while (uVar37 == 0);\n            }\n            uVar42 = uStack_1d0;\n            if ((bVar4) && (uVar42 = uVar40, uVar41 != uVar37)) {\n              bVar4 = false;\n              uVar42 = uStack_1d0;\n            }\n            uStack_1d0 = uVar42;\n            uVar41 = uVar37;\n            uStack_11c = uVar14;\n            if (((*(byte *)(uVar37 + 0x34) & 8) != 0) &&\n               (((*(byte *)(uVar37 + 0x34) & 1) == 0 ||\n                (iVar16 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar37 + 8),uVar37 + 0xc,uVar14)\n                , iVar16 != 0)))) {\n              if (!bVar22) goto LAB_0004e0e4;\n              ppuStack_1dc = (uint **)0x0;\n              uVar6 = uVar14;\n              bVar5 = bVar22;\n            }\n          }\nLAB_0004e0cc:\n          uVar14 = uVar6;\n          if (ppuStack_1dc != (uint **)0x0) {\n            *ppuStack_1dc = (uint *)((int)*ppuStack_1dc + uStack_1d0);\n          }\n        }" ({ "{") (labeled_statement "LAB_0004dd48:\n          if (*(int *)(uVar41 + 0x34) << 4 < 0) {\n            if (((*(byte *)(uVar41 + 0x34) & 1) == 0) ||\n               (iVar30 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar41 + 8),uVar41 + 0xc,uVar6),\n               iVar30 != 0)) {\n              uVar14 = uVar6;\n              bVar5 = bVar22;\n              if (!bVar22) goto LAB_0004e0e4;\n            }\n            else {\n              uVar6 = 0xffffffff;\n              bVar5 = false;\n            }\n          }\n          else {\n            uVar6 = 0xffffffff;\n            bVar5 = false;\n          }" (statement_identifier "LAB_0004dd48") (: ":") (if_statement "if (*(int *)(uVar41 + 0x34) << 4 < 0) {\n            if (((*(byte *)(uVar41 + 0x34) & 1) == 0) ||\n               (iVar30 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar41 + 8),uVar41 + 0xc,uVar6),\n               iVar30 != 0)) {\n              uVar14 = uVar6;\n              bVar5 = bVar22;\n              if (!bVar22) goto LAB_0004e0e4;\n            }\n            else {\n              uVar6 = 0xffffffff;\n              bVar5 = false;\n            }\n          }\n          else {\n            uVar6 = 0xffffffff;\n            bVar5 = false;\n          }" (if "if") (parenthesized_expression "(*(int *)(uVar41 + 0x34) << 4 < 0)" (( "(") (binary_expression "*(int *)(uVar41 + 0x34) << 4 < 0" (binary_expression "*(int *)(uVar41 + 0x34) << 4" (pointer_expression "*(int *)(uVar41 + 0x34)" (* "*") (cast_expression "(int *)(uVar41 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar41 + 0x34)" (( "(") (binary_expression "uVar41 + 0x34" (identifier "uVar41") (+ "+") (number_literal "0x34")) () ")")))) (<< "<<") (number_literal "4")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n            if (((*(byte *)(uVar41 + 0x34) & 1) == 0) ||\n               (iVar30 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar41 + 8),uVar41 + 0xc,uVar6),\n               iVar30 != 0)) {\n              uVar14 = uVar6;\n              bVar5 = bVar22;\n              if (!bVar22) goto LAB_0004e0e4;\n            }\n            else {\n              uVar6 = 0xffffffff;\n              bVar5 = false;\n            }\n          }" ({ "{") (if_statement "if (((*(byte *)(uVar41 + 0x34) & 1) == 0) ||\n               (iVar30 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar41 + 8),uVar41 + 0xc,uVar6),\n               iVar30 != 0)) {\n              uVar14 = uVar6;\n              bVar5 = bVar22;\n              if (!bVar22) goto LAB_0004e0e4;\n            }\n            else {\n              uVar6 = 0xffffffff;\n              bVar5 = false;\n            }" (if "if") (parenthesized_expression "(((*(byte *)(uVar41 + 0x34) & 1) == 0) ||\n               (iVar30 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar41 + 8),uVar41 + 0xc,uVar6),\n               iVar30 != 0))" (( "(") (binary_expression "((*(byte *)(uVar41 + 0x34) & 1) == 0) ||\n               (iVar30 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar41 + 8),uVar41 + 0xc,uVar6),\n               iVar30 != 0)" (parenthesized_expression "((*(byte *)(uVar41 + 0x34) & 1) == 0)" (( "(") (binary_expression "(*(byte *)(uVar41 + 0x34) & 1) == 0" (parenthesized_expression "(*(byte *)(uVar41 + 0x34) & 1)" (( "(") (binary_expression "*(byte *)(uVar41 + 0x34) & 1" (pointer_expression "*(byte *)(uVar41 + 0x34)" (* "*") (cast_expression "(byte *)(uVar41 + 0x34)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar41 + 0x34)" (( "(") (binary_expression "uVar41 + 0x34" (identifier "uVar41") (+ "+") (number_literal "0x34")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar30 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar41 + 8),uVar41 + 0xc,uVar6),\n               iVar30 != 0)" (( "(") (comma_expression "iVar30 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar41 + 8),uVar41 + 0xc,uVar6),\n               iVar30 != 0" (assignment_expression "iVar30 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar41 + 8),uVar41 + 0xc,uVar6)" (identifier "iVar30") (= "=") (call_expression "FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar41 + 8),uVar41 + 0xc,uVar6)" (identifier "FUN_00047d8c") (argument_list "(&puStack_144,*(undefined4 *)(uVar41 + 8),uVar41 + 0xc,uVar6)" (( "(") (pointer_expression "&puStack_144" (& "&") (identifier "puStack_144")) (, ",") (pointer_expression "*(undefined4 *)(uVar41 + 8)" (* "*") (cast_expression "(undefined4 *)(uVar41 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar41 + 8)" (( "(") (binary_expression "uVar41 + 8" (identifier "uVar41") (+ "+") (number_literal "8")) () ")")))) (, ",") (binary_expression "uVar41 + 0xc" (identifier "uVar41") (+ "+") (number_literal "0xc")) (, ",") (identifier "uVar6") () ")")))) (, ",") (binary_expression "iVar30 != 0" (identifier "iVar30") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n              uVar14 = uVar6;\n              bVar5 = bVar22;\n              if (!bVar22) goto LAB_0004e0e4;\n            }" ({ "{") (expression_statement "uVar14 = uVar6;" (assignment_expression "uVar14 = uVar6" (identifier "uVar14") (= "=") (identifier "uVar6")) (; ";")) (expression_statement "bVar5 = bVar22;" (assignment_expression "bVar5 = bVar22" (identifier "bVar5") (= "=") (identifier "bVar22")) (; ";")) (if_statement "if (!bVar22) goto LAB_0004e0e4;" (if "if") (parenthesized_expression "(!bVar22)" (( "(") (unary_expression "!bVar22" (! "!") (identifier "bVar22")) () ")")) (goto_statement "goto LAB_0004e0e4;" (goto "goto") (statement_identifier "LAB_0004e0e4") (; ";"))) (} "}")) (else_clause "else {\n              uVar6 = 0xffffffff;\n              bVar5 = false;\n            }" (else "else") (compound_statement "{\n              uVar6 = 0xffffffff;\n              bVar5 = false;\n            }" ({ "{") (expression_statement "uVar6 = 0xffffffff;" (assignment_expression "uVar6 = 0xffffffff" (identifier "uVar6") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "bVar5 = false;" (assignment_expression "bVar5 = false" (identifier "bVar5") (= "=") (false "false")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n            uVar6 = 0xffffffff;\n            bVar5 = false;\n          }" (else "else") (compound_statement "{\n            uVar6 = 0xffffffff;\n            bVar5 = false;\n          }" ({ "{") (expression_statement "uVar6 = 0xffffffff;" (assignment_expression "uVar6 = 0xffffffff" (identifier "uVar6") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "bVar5 = false;" (assignment_expression "bVar5 = false" (identifier "bVar5") (= "=") (false "false")) (; ";")) (} "}"))))) (expression_statement "iVar30 = *(int *)(puVar46 + 0x28244);" (assignment_expression "iVar30 = *(int *)(puVar46 + 0x28244)" (identifier "iVar30") (= "=") (pointer_expression "*(int *)(puVar46 + 0x28244)" (* "*") (cast_expression "(int *)(puVar46 + 0x28244)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar46 + 0x28244)" (( "(") (binary_expression "puVar46 + 0x28244" (identifier "puVar46") (+ "+") (number_literal "0x28244")) () ")"))))) (; ";")) (expression_statement "iVar15 = *(int *)(puVar46 + 0x2829c);" (assignment_expression "iVar15 = *(int *)(puVar46 + 0x2829c)" (identifier "iVar15") (= "=") (pointer_expression "*(int *)(puVar46 + 0x2829c)" (* "*") (cast_expression "(int *)(puVar46 + 0x2829c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar46 + 0x2829c)" (( "(") (binary_expression "puVar46 + 0x2829c" (identifier "puVar46") (+ "+") (number_literal "0x2829c")) () ")"))))) (; ";")) (expression_statement "uVar14 = uStack_11c;" (assignment_expression "uVar14 = uStack_11c" (identifier "uVar14") (= "=") (identifier "uStack_11c")) (; ";")) (expression_statement "ppuStack_1dc = ppuVar12;" (assignment_expression "ppuStack_1dc = ppuVar12" (identifier "ppuStack_1dc") (= "=") (identifier "ppuVar12")) (; ";")) (while_statement "while ((int)uVar14 < (int)puStack_10c) {\n            uVar40 = uVar14 + 1;\n            if ((((int)uVar40 < (int)uStack_120) || ((int)puStack_114 <= (int)uStack_120)) &&\n               (((int)uVar40 < (int)puStack_128 || ((int)puStack_114 <= (int)puStack_128)))) {\n              iVar16 = *(int *)(uVar41 + 0x34);\n              puVar36 = puStack_f0;\n            }\n            else {\n              uStack_168 = (*(code *)(iVar30 + 0x41e4))(&puStack_144,uVar14 + 2);\n              if (uStack_168 != 0) {\n                if (uStack_168 == 0xc) goto LAB_0004dbf8;\n                uVar20 = 0x46c;\n                goto LAB_0004ea9c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x34);\n              uVar14 = uStack_11c;\n              puVar36 = puStack_f0;\n            }\n            puStack_f0 = puVar36;\n            if (iVar16 << 5 < 0) {\n              iVar16 = *(int *)(uVar41 + 8);\n              if (0 < iVar16) {\n                param_4 = (uint *)0x0;\n                iVar18 = *(int *)(puVar46 + 0x28244);\n                pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7ab0);\n                do {\n                  uVar42 = *puVar36;\n                  iVar44 = *(int *)(*(int *)(uVar41 + 0xc) + (int)param_4 * 4);\n                  uVar37 = *(uint *)(uVar42 + iVar44 * 8 + 4);\n                  if ((uVar37 & 0x800) != 0) {\n                    if ((uVar37 & 0xffc000) != 0) {\n                      uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec);\n                      uVar37 = (uVar37 << 8) >> 0x16;\n                      if ((uVar37 & 4) == 0) {\n                        uVar27 = uVar19 & 1;\n                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    iVar16 = (*(code *)(iVar15 + -0x4eb0))\n                                       (uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14);\n                    if (iVar16 != 0) {\n                      if (iStack_cc < iVar16) {\n                        iStack_cc = iVar16;\n                      }\n                      iVar16 = iVar16 + uStack_11c;\n                      uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16);\n                      uVar14 = uStack_164;\n                      if (uStack_164 != 0) goto joined_r0x0004e770;\n                      piVar33 = piStack_e0 + iVar16;\n                      iVar28 = *piVar33;\n                      piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc);\n                      if (iVar28 == 0) {\n                        piStack_160 = (int *)*piVar17;\n                        piStack_15c = (int *)piVar17[1];\n                        iStack_158 = piVar17[2];\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        *piVar33 = iVar44;\n                      }\n                      else {\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }\n                      if ((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar16 = *(int *)(uVar41 + 8);\n                    uVar14 = uStack_11c;\n                  }\nLAB_0004e670:\n                  param_4 = (uint *)((int)param_4 + 1);\n                } while ((int)param_4 < iVar16);\n              }\n              uStack_168 = 0;\n            }\n            uStack_11c = uVar14 + 1;\n            uVar14 = (uint)*(byte *)((int)puStack_140 + uVar14);\n            do {\n              if (*(int *)(uVar41 + 0x2c) != 0) {\n                uVar37 = *(uint *)(*(int *)(uVar41 + 0x2c) + uVar14 * 4);\nLAB_0004ddf0:\n                if (piStack_e0 != (int *)0x0) goto LAB_0004ddfc;\n                goto LAB_0004de1c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x30);\n              if (iVar16 != 0) {\n                uVar37 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n                if ((uVar37 & 1) == 0) {\n                  uVar37 = *(uint *)(iVar16 + uVar14 * 4);\n                }\n                else {\n                  uVar37 = *(uint *)(iVar16 + (uVar14 + 0x100) * 4);\n                }\n                goto LAB_0004ddf0;\n              }\n              iVar16 = (*(code *)(iVar26 + -0x7510))(puStack_f0,uVar41);\n            } while (iVar16 != 0);\n            uStack_168 = 0xc;\n            uVar14 = uStack_168;\njoined_r0x0004e770:\n            uStack_168 = uVar14;\n            if (piStack_e0 == (int *)0x0) {\n              piVar17 = (int *)0x0;\n              goto LAB_0004dbb4;\n            }\n            uVar37 = 0;\nLAB_0004ddfc:\n            uVar37 = FUN_0004d0a8(&uStack_168,&puStack_144,uVar37);\nLAB_0004de1c:\n            uVar14 = uStack_11c;\n            if (uVar37 == 0) {\n              piVar17 = piStack_e0;\n              if (uStack_168 != 0) goto LAB_0004dbb4;\n              if ((piStack_e0 == (int *)0x0) || ((bVar5 && (!bVar22)))) break;\n              param_4 = &uStack_168;\n              do {\n                bVar2 = false;\n                piVar17 = piStack_e0 + uStack_11c;\n                uVar14 = uStack_11c;\n                do {\n                  uVar37 = uVar14 + 1;\n                  piVar17 = piVar17 + 1;\n                  if (iStack_dc < (int)uVar37) {\n                    if (bVar2) {\n                      uStack_11c = uVar14;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar2 = true;\n                  uVar14 = uVar37;\n                } while (*piVar17 == 0);\n                uStack_11c = uVar37;\n                uVar37 = FUN_0004d0a8(param_4,&puStack_144,0);\n                uVar14 = uStack_11c;\n                if (uStack_168 != 0) {\n                  if (uVar37 == 0) goto LAB_0004e0cc;\n                  break;\n                }\n              } while (uVar37 == 0);\n            }\n            uVar42 = uStack_1d0;\n            if ((bVar4) && (uVar42 = uVar40, uVar41 != uVar37)) {\n              bVar4 = false;\n              uVar42 = uStack_1d0;\n            }\n            uStack_1d0 = uVar42;\n            uVar41 = uVar37;\n            uStack_11c = uVar14;\n            if (((*(byte *)(uVar37 + 0x34) & 8) != 0) &&\n               (((*(byte *)(uVar37 + 0x34) & 1) == 0 ||\n                (iVar16 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar37 + 8),uVar37 + 0xc,uVar14)\n                , iVar16 != 0)))) {\n              if (!bVar22) goto LAB_0004e0e4;\n              ppuStack_1dc = (uint **)0x0;\n              uVar6 = uVar14;\n              bVar5 = bVar22;\n            }\n          }" (while "while") (parenthesized_expression "((int)uVar14 < (int)puStack_10c)" (( "(") (binary_expression "(int)uVar14 < (int)puStack_10c" (cast_expression "(int)uVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar14")) (< "<") (cast_expression "(int)puStack_10c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puStack_10c"))) () ")")) (compound_statement "{\n            uVar40 = uVar14 + 1;\n            if ((((int)uVar40 < (int)uStack_120) || ((int)puStack_114 <= (int)uStack_120)) &&\n               (((int)uVar40 < (int)puStack_128 || ((int)puStack_114 <= (int)puStack_128)))) {\n              iVar16 = *(int *)(uVar41 + 0x34);\n              puVar36 = puStack_f0;\n            }\n            else {\n              uStack_168 = (*(code *)(iVar30 + 0x41e4))(&puStack_144,uVar14 + 2);\n              if (uStack_168 != 0) {\n                if (uStack_168 == 0xc) goto LAB_0004dbf8;\n                uVar20 = 0x46c;\n                goto LAB_0004ea9c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x34);\n              uVar14 = uStack_11c;\n              puVar36 = puStack_f0;\n            }\n            puStack_f0 = puVar36;\n            if (iVar16 << 5 < 0) {\n              iVar16 = *(int *)(uVar41 + 8);\n              if (0 < iVar16) {\n                param_4 = (uint *)0x0;\n                iVar18 = *(int *)(puVar46 + 0x28244);\n                pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7ab0);\n                do {\n                  uVar42 = *puVar36;\n                  iVar44 = *(int *)(*(int *)(uVar41 + 0xc) + (int)param_4 * 4);\n                  uVar37 = *(uint *)(uVar42 + iVar44 * 8 + 4);\n                  if ((uVar37 & 0x800) != 0) {\n                    if ((uVar37 & 0xffc000) != 0) {\n                      uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec);\n                      uVar37 = (uVar37 << 8) >> 0x16;\n                      if ((uVar37 & 4) == 0) {\n                        uVar27 = uVar19 & 1;\n                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    iVar16 = (*(code *)(iVar15 + -0x4eb0))\n                                       (uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14);\n                    if (iVar16 != 0) {\n                      if (iStack_cc < iVar16) {\n                        iStack_cc = iVar16;\n                      }\n                      iVar16 = iVar16 + uStack_11c;\n                      uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16);\n                      uVar14 = uStack_164;\n                      if (uStack_164 != 0) goto joined_r0x0004e770;\n                      piVar33 = piStack_e0 + iVar16;\n                      iVar28 = *piVar33;\n                      piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc);\n                      if (iVar28 == 0) {\n                        piStack_160 = (int *)*piVar17;\n                        piStack_15c = (int *)piVar17[1];\n                        iStack_158 = piVar17[2];\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        *piVar33 = iVar44;\n                      }\n                      else {\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }\n                      if ((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar16 = *(int *)(uVar41 + 8);\n                    uVar14 = uStack_11c;\n                  }\nLAB_0004e670:\n                  param_4 = (uint *)((int)param_4 + 1);\n                } while ((int)param_4 < iVar16);\n              }\n              uStack_168 = 0;\n            }\n            uStack_11c = uVar14 + 1;\n            uVar14 = (uint)*(byte *)((int)puStack_140 + uVar14);\n            do {\n              if (*(int *)(uVar41 + 0x2c) != 0) {\n                uVar37 = *(uint *)(*(int *)(uVar41 + 0x2c) + uVar14 * 4);\nLAB_0004ddf0:\n                if (piStack_e0 != (int *)0x0) goto LAB_0004ddfc;\n                goto LAB_0004de1c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x30);\n              if (iVar16 != 0) {\n                uVar37 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n                if ((uVar37 & 1) == 0) {\n                  uVar37 = *(uint *)(iVar16 + uVar14 * 4);\n                }\n                else {\n                  uVar37 = *(uint *)(iVar16 + (uVar14 + 0x100) * 4);\n                }\n                goto LAB_0004ddf0;\n              }\n              iVar16 = (*(code *)(iVar26 + -0x7510))(puStack_f0,uVar41);\n            } while (iVar16 != 0);\n            uStack_168 = 0xc;\n            uVar14 = uStack_168;\njoined_r0x0004e770:\n            uStack_168 = uVar14;\n            if (piStack_e0 == (int *)0x0) {\n              piVar17 = (int *)0x0;\n              goto LAB_0004dbb4;\n            }\n            uVar37 = 0;\nLAB_0004ddfc:\n            uVar37 = FUN_0004d0a8(&uStack_168,&puStack_144,uVar37);\nLAB_0004de1c:\n            uVar14 = uStack_11c;\n            if (uVar37 == 0) {\n              piVar17 = piStack_e0;\n              if (uStack_168 != 0) goto LAB_0004dbb4;\n              if ((piStack_e0 == (int *)0x0) || ((bVar5 && (!bVar22)))) break;\n              param_4 = &uStack_168;\n              do {\n                bVar2 = false;\n                piVar17 = piStack_e0 + uStack_11c;\n                uVar14 = uStack_11c;\n                do {\n                  uVar37 = uVar14 + 1;\n                  piVar17 = piVar17 + 1;\n                  if (iStack_dc < (int)uVar37) {\n                    if (bVar2) {\n                      uStack_11c = uVar14;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar2 = true;\n                  uVar14 = uVar37;\n                } while (*piVar17 == 0);\n                uStack_11c = uVar37;\n                uVar37 = FUN_0004d0a8(param_4,&puStack_144,0);\n                uVar14 = uStack_11c;\n                if (uStack_168 != 0) {\n                  if (uVar37 == 0) goto LAB_0004e0cc;\n                  break;\n                }\n              } while (uVar37 == 0);\n            }\n            uVar42 = uStack_1d0;\n            if ((bVar4) && (uVar42 = uVar40, uVar41 != uVar37)) {\n              bVar4 = false;\n              uVar42 = uStack_1d0;\n            }\n            uStack_1d0 = uVar42;\n            uVar41 = uVar37;\n            uStack_11c = uVar14;\n            if (((*(byte *)(uVar37 + 0x34) & 8) != 0) &&\n               (((*(byte *)(uVar37 + 0x34) & 1) == 0 ||\n                (iVar16 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar37 + 8),uVar37 + 0xc,uVar14)\n                , iVar16 != 0)))) {\n              if (!bVar22) goto LAB_0004e0e4;\n              ppuStack_1dc = (uint **)0x0;\n              uVar6 = uVar14;\n              bVar5 = bVar22;\n            }\n          }" ({ "{") (expression_statement "uVar40 = uVar14 + 1;" (assignment_expression "uVar40 = uVar14 + 1" (identifier "uVar40") (= "=") (binary_expression "uVar14 + 1" (identifier "uVar14") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if ((((int)uVar40 < (int)uStack_120) || ((int)puStack_114 <= (int)uStack_120)) &&\n               (((int)uVar40 < (int)puStack_128 || ((int)puStack_114 <= (int)puStack_128)))) {\n              iVar16 = *(int *)(uVar41 + 0x34);\n              puVar36 = puStack_f0;\n            }\n            else {\n              uStack_168 = (*(code *)(iVar30 + 0x41e4))(&puStack_144,uVar14 + 2);\n              if (uStack_168 != 0) {\n                if (uStack_168 == 0xc) goto LAB_0004dbf8;\n                uVar20 = 0x46c;\n                goto LAB_0004ea9c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x34);\n              uVar14 = uStack_11c;\n              puVar36 = puStack_f0;\n            }" (if "if") (parenthesized_expression "((((int)uVar40 < (int)uStack_120) || ((int)puStack_114 <= (int)uStack_120)) &&\n               (((int)uVar40 < (int)puStack_128 || ((int)puStack_114 <= (int)puStack_128))))" (( "(") (binary_expression "(((int)uVar40 < (int)uStack_120) || ((int)puStack_114 <= (int)uStack_120)) &&\n               (((int)uVar40 < (int)puStack_128 || ((int)puStack_114 <= (int)puStack_128)))" (parenthesized_expression "(((int)uVar40 < (int)uStack_120) || ((int)puStack_114 <= (int)uStack_120))" (( "(") (binary_expression "((int)uVar40 < (int)uStack_120) || ((int)puStack_114 <= (int)uStack_120)" (parenthesized_expression "((int)uVar40 < (int)uStack_120)" (( "(") (binary_expression "(int)uVar40 < (int)uStack_120" (cast_expression "(int)uVar40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar40")) (< "<") (cast_expression "(int)uStack_120" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uStack_120"))) () ")")) (|| "||") (parenthesized_expression "((int)puStack_114 <= (int)uStack_120)" (( "(") (binary_expression "(int)puStack_114 <= (int)uStack_120" (cast_expression "(int)puStack_114" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puStack_114")) (<= "<=") (cast_expression "(int)uStack_120" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uStack_120"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(((int)uVar40 < (int)puStack_128 || ((int)puStack_114 <= (int)puStack_128)))" (( "(") (parenthesized_expression "((int)uVar40 < (int)puStack_128 || ((int)puStack_114 <= (int)puStack_128))" (( "(") (binary_expression "(int)uVar40 < (int)puStack_128 || ((int)puStack_114 <= (int)puStack_128)" (binary_expression "(int)uVar40 < (int)puStack_128" (cast_expression "(int)uVar40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar40")) (< "<") (cast_expression "(int)puStack_128" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puStack_128"))) (|| "||") (parenthesized_expression "((int)puStack_114 <= (int)puStack_128)" (( "(") (binary_expression "(int)puStack_114 <= (int)puStack_128" (cast_expression "(int)puStack_114" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puStack_114")) (<= "<=") (cast_expression "(int)puStack_128" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puStack_128"))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n              iVar16 = *(int *)(uVar41 + 0x34);\n              puVar36 = puStack_f0;\n            }" ({ "{") (expression_statement "iVar16 = *(int *)(uVar41 + 0x34);" (assignment_expression "iVar16 = *(int *)(uVar41 + 0x34)" (identifier "iVar16") (= "=") (pointer_expression "*(int *)(uVar41 + 0x34)" (* "*") (cast_expression "(int *)(uVar41 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar41 + 0x34)" (( "(") (binary_expression "uVar41 + 0x34" (identifier "uVar41") (+ "+") (number_literal "0x34")) () ")"))))) (; ";")) (expression_statement "puVar36 = puStack_f0;" (assignment_expression "puVar36 = puStack_f0" (identifier "puVar36") (= "=") (identifier "puStack_f0")) (; ";")) (} "}")) (else_clause "else {\n              uStack_168 = (*(code *)(iVar30 + 0x41e4))(&puStack_144,uVar14 + 2);\n              if (uStack_168 != 0) {\n                if (uStack_168 == 0xc) goto LAB_0004dbf8;\n                uVar20 = 0x46c;\n                goto LAB_0004ea9c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x34);\n              uVar14 = uStack_11c;\n              puVar36 = puStack_f0;\n            }" (else "else") (compound_statement "{\n              uStack_168 = (*(code *)(iVar30 + 0x41e4))(&puStack_144,uVar14 + 2);\n              if (uStack_168 != 0) {\n                if (uStack_168 == 0xc) goto LAB_0004dbf8;\n                uVar20 = 0x46c;\n                goto LAB_0004ea9c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x34);\n              uVar14 = uStack_11c;\n              puVar36 = puStack_f0;\n            }" ({ "{") (expression_statement "uStack_168 = (*(code *)(iVar30 + 0x41e4))(&puStack_144,uVar14 + 2);" (assignment_expression "uStack_168 = (*(code *)(iVar30 + 0x41e4))(&puStack_144,uVar14 + 2)" (identifier "uStack_168") (= "=") (call_expression "(*(code *)(iVar30 + 0x41e4))(&puStack_144,uVar14 + 2)" (parenthesized_expression "(*(code *)(iVar30 + 0x41e4))" (( "(") (pointer_expression "*(code *)(iVar30 + 0x41e4)" (* "*") (cast_expression "(code *)(iVar30 + 0x41e4)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar30 + 0x41e4)" (( "(") (binary_expression "iVar30 + 0x41e4" (identifier "iVar30") (+ "+") (number_literal "0x41e4")) () ")")))) () ")")) (argument_list "(&puStack_144,uVar14 + 2)" (( "(") (pointer_expression "&puStack_144" (& "&") (identifier "puStack_144")) (, ",") (binary_expression "uVar14 + 2" (identifier "uVar14") (+ "+") (number_literal "2")) () ")")))) (; ";")) (if_statement "if (uStack_168 != 0) {\n                if (uStack_168 == 0xc) goto LAB_0004dbf8;\n                uVar20 = 0x46c;\n                goto LAB_0004ea9c;\n              }" (if "if") (parenthesized_expression "(uStack_168 != 0)" (( "(") (binary_expression "uStack_168 != 0" (identifier "uStack_168") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                if (uStack_168 == 0xc) goto LAB_0004dbf8;\n                uVar20 = 0x46c;\n                goto LAB_0004ea9c;\n              }" ({ "{") (if_statement "if (uStack_168 == 0xc) goto LAB_0004dbf8;" (if "if") (parenthesized_expression "(uStack_168 == 0xc)" (( "(") (binary_expression "uStack_168 == 0xc" (identifier "uStack_168") (== "==") (number_literal "0xc")) () ")")) (goto_statement "goto LAB_0004dbf8;" (goto "goto") (statement_identifier "LAB_0004dbf8") (; ";"))) (expression_statement "uVar20 = 0x46c;" (assignment_expression "uVar20 = 0x46c" (identifier "uVar20") (= "=") (number_literal "0x46c")) (; ";")) (goto_statement "goto LAB_0004ea9c;" (goto "goto") (statement_identifier "LAB_0004ea9c") (; ";")) (} "}"))) (expression_statement "iVar16 = *(int *)(uVar41 + 0x34);" (assignment_expression "iVar16 = *(int *)(uVar41 + 0x34)" (identifier "iVar16") (= "=") (pointer_expression "*(int *)(uVar41 + 0x34)" (* "*") (cast_expression "(int *)(uVar41 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar41 + 0x34)" (( "(") (binary_expression "uVar41 + 0x34" (identifier "uVar41") (+ "+") (number_literal "0x34")) () ")"))))) (; ";")) (expression_statement "uVar14 = uStack_11c;" (assignment_expression "uVar14 = uStack_11c" (identifier "uVar14") (= "=") (identifier "uStack_11c")) (; ";")) (expression_statement "puVar36 = puStack_f0;" (assignment_expression "puVar36 = puStack_f0" (identifier "puVar36") (= "=") (identifier "puStack_f0")) (; ";")) (} "}")))) (expression_statement "puStack_f0 = puVar36;" (assignment_expression "puStack_f0 = puVar36" (identifier "puStack_f0") (= "=") (identifier "puVar36")) (; ";")) (if_statement "if (iVar16 << 5 < 0) {\n              iVar16 = *(int *)(uVar41 + 8);\n              if (0 < iVar16) {\n                param_4 = (uint *)0x0;\n                iVar18 = *(int *)(puVar46 + 0x28244);\n                pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7ab0);\n                do {\n                  uVar42 = *puVar36;\n                  iVar44 = *(int *)(*(int *)(uVar41 + 0xc) + (int)param_4 * 4);\n                  uVar37 = *(uint *)(uVar42 + iVar44 * 8 + 4);\n                  if ((uVar37 & 0x800) != 0) {\n                    if ((uVar37 & 0xffc000) != 0) {\n                      uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec);\n                      uVar37 = (uVar37 << 8) >> 0x16;\n                      if ((uVar37 & 4) == 0) {\n                        uVar27 = uVar19 & 1;\n                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    iVar16 = (*(code *)(iVar15 + -0x4eb0))\n                                       (uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14);\n                    if (iVar16 != 0) {\n                      if (iStack_cc < iVar16) {\n                        iStack_cc = iVar16;\n                      }\n                      iVar16 = iVar16 + uStack_11c;\n                      uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16);\n                      uVar14 = uStack_164;\n                      if (uStack_164 != 0) goto joined_r0x0004e770;\n                      piVar33 = piStack_e0 + iVar16;\n                      iVar28 = *piVar33;\n                      piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc);\n                      if (iVar28 == 0) {\n                        piStack_160 = (int *)*piVar17;\n                        piStack_15c = (int *)piVar17[1];\n                        iStack_158 = piVar17[2];\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        *piVar33 = iVar44;\n                      }\n                      else {\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }\n                      if ((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar16 = *(int *)(uVar41 + 8);\n                    uVar14 = uStack_11c;\n                  }\nLAB_0004e670:\n                  param_4 = (uint *)((int)param_4 + 1);\n                } while ((int)param_4 < iVar16);\n              }\n              uStack_168 = 0;\n            }" (if "if") (parenthesized_expression "(iVar16 << 5 < 0)" (( "(") (binary_expression "iVar16 << 5 < 0" (binary_expression "iVar16 << 5" (identifier "iVar16") (<< "<<") (number_literal "5")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n              iVar16 = *(int *)(uVar41 + 8);\n              if (0 < iVar16) {\n                param_4 = (uint *)0x0;\n                iVar18 = *(int *)(puVar46 + 0x28244);\n                pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7ab0);\n                do {\n                  uVar42 = *puVar36;\n                  iVar44 = *(int *)(*(int *)(uVar41 + 0xc) + (int)param_4 * 4);\n                  uVar37 = *(uint *)(uVar42 + iVar44 * 8 + 4);\n                  if ((uVar37 & 0x800) != 0) {\n                    if ((uVar37 & 0xffc000) != 0) {\n                      uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec);\n                      uVar37 = (uVar37 << 8) >> 0x16;\n                      if ((uVar37 & 4) == 0) {\n                        uVar27 = uVar19 & 1;\n                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    iVar16 = (*(code *)(iVar15 + -0x4eb0))\n                                       (uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14);\n                    if (iVar16 != 0) {\n                      if (iStack_cc < iVar16) {\n                        iStack_cc = iVar16;\n                      }\n                      iVar16 = iVar16 + uStack_11c;\n                      uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16);\n                      uVar14 = uStack_164;\n                      if (uStack_164 != 0) goto joined_r0x0004e770;\n                      piVar33 = piStack_e0 + iVar16;\n                      iVar28 = *piVar33;\n                      piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc);\n                      if (iVar28 == 0) {\n                        piStack_160 = (int *)*piVar17;\n                        piStack_15c = (int *)piVar17[1];\n                        iStack_158 = piVar17[2];\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        *piVar33 = iVar44;\n                      }\n                      else {\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }\n                      if ((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar16 = *(int *)(uVar41 + 8);\n                    uVar14 = uStack_11c;\n                  }\nLAB_0004e670:\n                  param_4 = (uint *)((int)param_4 + 1);\n                } while ((int)param_4 < iVar16);\n              }\n              uStack_168 = 0;\n            }" ({ "{") (expression_statement "iVar16 = *(int *)(uVar41 + 8);" (assignment_expression "iVar16 = *(int *)(uVar41 + 8)" (identifier "iVar16") (= "=") (pointer_expression "*(int *)(uVar41 + 8)" (* "*") (cast_expression "(int *)(uVar41 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar41 + 8)" (( "(") (binary_expression "uVar41 + 8" (identifier "uVar41") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (0 < iVar16) {\n                param_4 = (uint *)0x0;\n                iVar18 = *(int *)(puVar46 + 0x28244);\n                pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7ab0);\n                do {\n                  uVar42 = *puVar36;\n                  iVar44 = *(int *)(*(int *)(uVar41 + 0xc) + (int)param_4 * 4);\n                  uVar37 = *(uint *)(uVar42 + iVar44 * 8 + 4);\n                  if ((uVar37 & 0x800) != 0) {\n                    if ((uVar37 & 0xffc000) != 0) {\n                      uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec);\n                      uVar37 = (uVar37 << 8) >> 0x16;\n                      if ((uVar37 & 4) == 0) {\n                        uVar27 = uVar19 & 1;\n                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    iVar16 = (*(code *)(iVar15 + -0x4eb0))\n                                       (uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14);\n                    if (iVar16 != 0) {\n                      if (iStack_cc < iVar16) {\n                        iStack_cc = iVar16;\n                      }\n                      iVar16 = iVar16 + uStack_11c;\n                      uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16);\n                      uVar14 = uStack_164;\n                      if (uStack_164 != 0) goto joined_r0x0004e770;\n                      piVar33 = piStack_e0 + iVar16;\n                      iVar28 = *piVar33;\n                      piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc);\n                      if (iVar28 == 0) {\n                        piStack_160 = (int *)*piVar17;\n                        piStack_15c = (int *)piVar17[1];\n                        iStack_158 = piVar17[2];\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        *piVar33 = iVar44;\n                      }\n                      else {\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }\n                      if ((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar16 = *(int *)(uVar41 + 8);\n                    uVar14 = uStack_11c;\n                  }\nLAB_0004e670:\n                  param_4 = (uint *)((int)param_4 + 1);\n                } while ((int)param_4 < iVar16);\n              }" (if "if") (parenthesized_expression "(0 < iVar16)" (( "(") (binary_expression "0 < iVar16" (number_literal "0") (< "<") (identifier "iVar16")) () ")")) (compound_statement "{\n                param_4 = (uint *)0x0;\n                iVar18 = *(int *)(puVar46 + 0x28244);\n                pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7ab0);\n                do {\n                  uVar42 = *puVar36;\n                  iVar44 = *(int *)(*(int *)(uVar41 + 0xc) + (int)param_4 * 4);\n                  uVar37 = *(uint *)(uVar42 + iVar44 * 8 + 4);\n                  if ((uVar37 & 0x800) != 0) {\n                    if ((uVar37 & 0xffc000) != 0) {\n                      uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec);\n                      uVar37 = (uVar37 << 8) >> 0x16;\n                      if ((uVar37 & 4) == 0) {\n                        uVar27 = uVar19 & 1;\n                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    iVar16 = (*(code *)(iVar15 + -0x4eb0))\n                                       (uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14);\n                    if (iVar16 != 0) {\n                      if (iStack_cc < iVar16) {\n                        iStack_cc = iVar16;\n                      }\n                      iVar16 = iVar16 + uStack_11c;\n                      uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16);\n                      uVar14 = uStack_164;\n                      if (uStack_164 != 0) goto joined_r0x0004e770;\n                      piVar33 = piStack_e0 + iVar16;\n                      iVar28 = *piVar33;\n                      piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc);\n                      if (iVar28 == 0) {\n                        piStack_160 = (int *)*piVar17;\n                        piStack_15c = (int *)piVar17[1];\n                        iStack_158 = piVar17[2];\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        *piVar33 = iVar44;\n                      }\n                      else {\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }\n                      if ((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar16 = *(int *)(uVar41 + 8);\n                    uVar14 = uStack_11c;\n                  }\nLAB_0004e670:\n                  param_4 = (uint *)((int)param_4 + 1);\n                } while ((int)param_4 < iVar16);\n              }" ({ "{") (expression_statement "param_4 = (uint *)0x0;" (assignment_expression "param_4 = (uint *)0x0" (identifier "param_4") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "iVar18 = *(int *)(puVar46 + 0x28244);" (assignment_expression "iVar18 = *(int *)(puVar46 + 0x28244)" (identifier "iVar18") (= "=") (pointer_expression "*(int *)(puVar46 + 0x28244)" (* "*") (cast_expression "(int *)(puVar46 + 0x28244)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar46 + 0x28244)" (( "(") (binary_expression "puVar46 + 0x28244" (identifier "puVar46") (+ "+") (number_literal "0x28244")) () ")"))))) (; ";")) (expression_statement "pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7ab0);" (assignment_expression "pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7ab0)" (identifier "pcVar45") (= "=") (cast_expression "(code *)(*(int *)(puVar46 + 0x28244) + 0x7ab0)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar46 + 0x28244) + 0x7ab0)" (( "(") (binary_expression "*(int *)(puVar46 + 0x28244) + 0x7ab0" (pointer_expression "*(int *)(puVar46 + 0x28244)" (* "*") (cast_expression "(int *)(puVar46 + 0x28244)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar46 + 0x28244)" (( "(") (binary_expression "puVar46 + 0x28244" (identifier "puVar46") (+ "+") (number_literal "0x28244")) () ")")))) (+ "+") (number_literal "0x7ab0")) () ")")))) (; ";")) (do_statement "do {\n                  uVar42 = *puVar36;\n                  iVar44 = *(int *)(*(int *)(uVar41 + 0xc) + (int)param_4 * 4);\n                  uVar37 = *(uint *)(uVar42 + iVar44 * 8 + 4);\n                  if ((uVar37 & 0x800) != 0) {\n                    if ((uVar37 & 0xffc000) != 0) {\n                      uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec);\n                      uVar37 = (uVar37 << 8) >> 0x16;\n                      if ((uVar37 & 4) == 0) {\n                        uVar27 = uVar19 & 1;\n                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    iVar16 = (*(code *)(iVar15 + -0x4eb0))\n                                       (uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14);\n                    if (iVar16 != 0) {\n                      if (iStack_cc < iVar16) {\n                        iStack_cc = iVar16;\n                      }\n                      iVar16 = iVar16 + uStack_11c;\n                      uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16);\n                      uVar14 = uStack_164;\n                      if (uStack_164 != 0) goto joined_r0x0004e770;\n                      piVar33 = piStack_e0 + iVar16;\n                      iVar28 = *piVar33;\n                      piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc);\n                      if (iVar28 == 0) {\n                        piStack_160 = (int *)*piVar17;\n                        piStack_15c = (int *)piVar17[1];\n                        iStack_158 = piVar17[2];\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        *piVar33 = iVar44;\n                      }\n                      else {\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }\n                      if ((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar16 = *(int *)(uVar41 + 8);\n                    uVar14 = uStack_11c;\n                  }\nLAB_0004e670:\n                  param_4 = (uint *)((int)param_4 + 1);\n                } while ((int)param_4 < iVar16);" (do "do") (compound_statement "{\n                  uVar42 = *puVar36;\n                  iVar44 = *(int *)(*(int *)(uVar41 + 0xc) + (int)param_4 * 4);\n                  uVar37 = *(uint *)(uVar42 + iVar44 * 8 + 4);\n                  if ((uVar37 & 0x800) != 0) {\n                    if ((uVar37 & 0xffc000) != 0) {\n                      uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec);\n                      uVar37 = (uVar37 << 8) >> 0x16;\n                      if ((uVar37 & 4) == 0) {\n                        uVar27 = uVar19 & 1;\n                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    iVar16 = (*(code *)(iVar15 + -0x4eb0))\n                                       (uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14);\n                    if (iVar16 != 0) {\n                      if (iStack_cc < iVar16) {\n                        iStack_cc = iVar16;\n                      }\n                      iVar16 = iVar16 + uStack_11c;\n                      uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16);\n                      uVar14 = uStack_164;\n                      if (uStack_164 != 0) goto joined_r0x0004e770;\n                      piVar33 = piStack_e0 + iVar16;\n                      iVar28 = *piVar33;\n                      piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc);\n                      if (iVar28 == 0) {\n                        piStack_160 = (int *)*piVar17;\n                        piStack_15c = (int *)piVar17[1];\n                        iStack_158 = piVar17[2];\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        *piVar33 = iVar44;\n                      }\n                      else {\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }\n                      if ((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar16 = *(int *)(uVar41 + 8);\n                    uVar14 = uStack_11c;\n                  }\nLAB_0004e670:\n                  param_4 = (uint *)((int)param_4 + 1);\n                }" ({ "{") (expression_statement "uVar42 = *puVar36;" (assignment_expression "uVar42 = *puVar36" (identifier "uVar42") (= "=") (pointer_expression "*puVar36" (* "*") (identifier "puVar36"))) (; ";")) (expression_statement "iVar44 = *(int *)(*(int *)(uVar41 + 0xc) + (int)param_4 * 4);" (assignment_expression "iVar44 = *(int *)(*(int *)(uVar41 + 0xc) + (int)param_4 * 4)" (identifier "iVar44") (= "=") (pointer_expression "*(int *)(*(int *)(uVar41 + 0xc) + (int)param_4 * 4)" (* "*") (cast_expression "(int *)(*(int *)(uVar41 + 0xc) + (int)param_4 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(uVar41 + 0xc) + (int)param_4 * 4)" (( "(") (binary_expression "*(int *)(uVar41 + 0xc) + (int)param_4 * 4" (pointer_expression "*(int *)(uVar41 + 0xc)" (* "*") (cast_expression "(int *)(uVar41 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar41 + 0xc)" (( "(") (binary_expression "uVar41 + 0xc" (identifier "uVar41") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (binary_expression "(int)param_4 * 4" (cast_expression "(int)param_4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_4")) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (expression_statement "uVar37 = *(uint *)(uVar42 + iVar44 * 8 + 4);" (assignment_expression "uVar37 = *(uint *)(uVar42 + iVar44 * 8 + 4)" (identifier "uVar37") (= "=") (pointer_expression "*(uint *)(uVar42 + iVar44 * 8 + 4)" (* "*") (cast_expression "(uint *)(uVar42 + iVar44 * 8 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar42 + iVar44 * 8 + 4)" (( "(") (binary_expression "uVar42 + iVar44 * 8 + 4" (binary_expression "uVar42 + iVar44 * 8" (identifier "uVar42") (+ "+") (binary_expression "iVar44 * 8" (identifier "iVar44") (* "*") (number_literal "8"))) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if ((uVar37 & 0x800) != 0) {\n                    if ((uVar37 & 0xffc000) != 0) {\n                      uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec);\n                      uVar37 = (uVar37 << 8) >> 0x16;\n                      if ((uVar37 & 4) == 0) {\n                        uVar27 = uVar19 & 1;\n                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    iVar16 = (*(code *)(iVar15 + -0x4eb0))\n                                       (uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14);\n                    if (iVar16 != 0) {\n                      if (iStack_cc < iVar16) {\n                        iStack_cc = iVar16;\n                      }\n                      iVar16 = iVar16 + uStack_11c;\n                      uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16);\n                      uVar14 = uStack_164;\n                      if (uStack_164 != 0) goto joined_r0x0004e770;\n                      piVar33 = piStack_e0 + iVar16;\n                      iVar28 = *piVar33;\n                      piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc);\n                      if (iVar28 == 0) {\n                        piStack_160 = (int *)*piVar17;\n                        piStack_15c = (int *)piVar17[1];\n                        iStack_158 = piVar17[2];\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        *piVar33 = iVar44;\n                      }\n                      else {\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }\n                      if ((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar16 = *(int *)(uVar41 + 8);\n                    uVar14 = uStack_11c;\n                  }" (if "if") (parenthesized_expression "((uVar37 & 0x800) != 0)" (( "(") (binary_expression "(uVar37 & 0x800) != 0" (parenthesized_expression "(uVar37 & 0x800)" (( "(") (binary_expression "uVar37 & 0x800" (identifier "uVar37") (& "&") (number_literal "0x800")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    if ((uVar37 & 0xffc000) != 0) {\n                      uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec);\n                      uVar37 = (uVar37 << 8) >> 0x16;\n                      if ((uVar37 & 4) == 0) {\n                        uVar27 = uVar19 & 1;\n                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))) goto LAB_0004e670;\n                    }\n                    iVar16 = (*(code *)(iVar15 + -0x4eb0))\n                                       (uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14);\n                    if (iVar16 != 0) {\n                      if (iStack_cc < iVar16) {\n                        iStack_cc = iVar16;\n                      }\n                      iVar16 = iVar16 + uStack_11c;\n                      uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16);\n                      uVar14 = uStack_164;\n                      if (uStack_164 != 0) goto joined_r0x0004e770;\n                      piVar33 = piStack_e0 + iVar16;\n                      iVar28 = *piVar33;\n                      piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc);\n                      if (iVar28 == 0) {\n                        piStack_160 = (int *)*piVar17;\n                        piStack_15c = (int *)piVar17[1];\n                        iStack_158 = piVar17[2];\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        *piVar33 = iVar44;\n                      }\n                      else {\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }\n                      if ((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))\n                      goto joined_r0x0004e770;\n                    }\n                    iVar16 = *(int *)(uVar41 + 8);\n                    uVar14 = uStack_11c;\n                  }" ({ "{") (if_statement "if ((uVar37 & 0xffc000) != 0) {\n                      uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec);\n                      uVar37 = (uVar37 << 8) >> 0x16;\n                      if ((uVar37 & 4) == 0) {\n                        uVar27 = uVar19 & 1;\n                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))) goto LAB_0004e670;\n                    }" (if "if") (parenthesized_expression "((uVar37 & 0xffc000) != 0)" (( "(") (binary_expression "(uVar37 & 0xffc000) != 0" (parenthesized_expression "(uVar37 & 0xffc000)" (( "(") (binary_expression "uVar37 & 0xffc000" (identifier "uVar37") (& "&") (number_literal "0xffc000")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                      uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec);\n                      uVar37 = (uVar37 << 8) >> 0x16;\n                      if ((uVar37 & 4) == 0) {\n                        uVar27 = uVar19 & 1;\n                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }\n                      if ((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))) goto LAB_0004e670;\n                    }" ({ "{") (expression_statement "uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec);" (assignment_expression "uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec)" (identifier "uVar19") (= "=") (call_expression "(*pcVar45)(&puStack_144,uVar14,puStack_ec)" (parenthesized_expression "(*pcVar45)" (( "(") (pointer_expression "*pcVar45" (* "*") (identifier "pcVar45")) () ")")) (argument_list "(&puStack_144,uVar14,puStack_ec)" (( "(") (pointer_expression "&puStack_144" (& "&") (identifier "puStack_144")) (, ",") (identifier "uVar14") (, ",") (identifier "puStack_ec") () ")")))) (; ";")) (expression_statement "uVar37 = (uVar37 << 8) >> 0x16;" (assignment_expression "uVar37 = (uVar37 << 8) >> 0x16" (identifier "uVar37") (= "=") (binary_expression "(uVar37 << 8) >> 0x16" (parenthesized_expression "(uVar37 << 8)" (( "(") (binary_expression "uVar37 << 8" (identifier "uVar37") (<< "<<") (number_literal "8")) () ")")) (>> ">>") (number_literal "0x16"))) (; ";")) (if_statement "if ((uVar37 & 4) == 0) {\n                        uVar27 = uVar19 & 1;\n                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;\n                      }\n                      else {\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }" (if "if") (parenthesized_expression "((uVar37 & 4) == 0)" (( "(") (binary_expression "(uVar37 & 4) == 0" (parenthesized_expression "(uVar37 & 4)" (( "(") (binary_expression "uVar37 & 4" (identifier "uVar37") (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                        uVar27 = uVar19 & 1;\n                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;\n                      }" ({ "{") (expression_statement "uVar27 = uVar19 & 1;" (assignment_expression "uVar27 = uVar19 & 1" (identifier "uVar27") (= "=") (binary_expression "uVar19 & 1" (identifier "uVar19") (& "&") (number_literal "1"))) (; ";")) (if_statement "if ((uVar37 & 8) != 0) goto joined_r0x0004e514;" (if "if") (parenthesized_expression "((uVar37 & 8) != 0)" (( "(") (binary_expression "(uVar37 & 8) != 0" (parenthesized_expression "(uVar37 & 8)" (( "(") (binary_expression "uVar37 & 8" (identifier "uVar37") (& "&") (number_literal "8")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto joined_r0x0004e514;" (goto "goto") (statement_identifier "joined_r0x0004e514") (; ";"))) (} "}")) (else_clause "else {\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }" (else "else") (compound_statement "{\n                        uVar27 = uVar37 & 8;\n                        if ((uVar19 & 1) == 0) goto LAB_0004e670;\njoined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;\n                      }" ({ "{") (expression_statement "uVar27 = uVar37 & 8;" (assignment_expression "uVar27 = uVar37 & 8" (identifier "uVar27") (= "=") (binary_expression "uVar37 & 8" (identifier "uVar37") (& "&") (number_literal "8"))) (; ";")) (if_statement "if ((uVar19 & 1) == 0) goto LAB_0004e670;" (if "if") (parenthesized_expression "((uVar19 & 1) == 0)" (( "(") (binary_expression "(uVar19 & 1) == 0" (parenthesized_expression "(uVar19 & 1)" (( "(") (binary_expression "uVar19 & 1" (identifier "uVar19") (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0004e670;" (goto "goto") (statement_identifier "LAB_0004e670") (; ";"))) (labeled_statement "joined_r0x0004e514:\n                        if (uVar27 != 0) goto LAB_0004e670;" (statement_identifier "joined_r0x0004e514") (: ":") (if_statement "if (uVar27 != 0) goto LAB_0004e670;" (if "if") (parenthesized_expression "(uVar27 != 0)" (( "(") (binary_expression "uVar27 != 0" (identifier "uVar27") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0004e670;" (goto "goto") (statement_identifier "LAB_0004e670") (; ";")))) (} "}")))) (if_statement "if ((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))) goto LAB_0004e670;" (if "if") (parenthesized_expression "((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0))))" (( "(") (binary_expression "(((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))" (parenthesized_expression "(((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0))" (( "(") (binary_expression "((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)" (parenthesized_expression "((uVar37 & 0x20) != 0)" (( "(") (binary_expression "(uVar37 & 0x20) != 0" (parenthesized_expression "(uVar37 & 0x20)" (( "(") (binary_expression "uVar37 & 0x20" (identifier "uVar37") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((uVar19 & 2) == 0)" (( "(") (binary_expression "(uVar19 & 2) == 0" (parenthesized_expression "(uVar19 & 2)" (( "(") (binary_expression "uVar19 & 2" (identifier "uVar19") (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))" (( "(") (parenthesized_expression "((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0))" (( "(") (binary_expression "(uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)" (binary_expression "(uVar37 & 0x80) != 0" (parenthesized_expression "(uVar37 & 0x80)" (( "(") (binary_expression "uVar37 & 0x80" (identifier "uVar37") (& "&") (number_literal "0x80")) () ")")) (!= "!=") (number_literal "0")) (&& "&&") (parenthesized_expression "((uVar19 & 8) == 0)" (( "(") (binary_expression "(uVar19 & 8) == 0" (parenthesized_expression "(uVar19 & 8)" (( "(") (binary_expression "uVar19 & 8" (identifier "uVar19") (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_0004e670;" (goto "goto") (statement_identifier "LAB_0004e670") (; ";"))) (} "}"))) (expression_statement "iVar16 = (*(code *)(iVar15 + -0x4eb0))\n                                       (uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14);" (assignment_expression "iVar16 = (*(code *)(iVar15 + -0x4eb0))\n                                       (uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14)" (identifier "iVar16") (= "=") (call_expression "(*(code *)(iVar15 + -0x4eb0))\n                                       (uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14)" (parenthesized_expression "(*(code *)(iVar15 + -0x4eb0))" (( "(") (pointer_expression "*(code *)(iVar15 + -0x4eb0)" (* "*") (cast_expression "(code *)(iVar15 + -0x4eb0)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + -0x4eb0)" (( "(") (binary_expression "iVar15 + -0x4eb0" (identifier "iVar15") (+ "+") (number_literal "-0x4eb0")) () ")")))) () ")")) (argument_list "(uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14)" (( "(") (identifier "uVar42") (, ",") (binary_expression "puVar36 + 0x20" (identifier "puVar36") (+ "+") (number_literal "0x20")) (, ",") (identifier "iVar44") (, ",") (pointer_expression "&puStack_144" (& "&") (identifier "puStack_144")) (, ",") (identifier "uVar14") () ")")))) (; ";")) (if_statement "if (iVar16 != 0) {\n                      if (iStack_cc < iVar16) {\n                        iStack_cc = iVar16;\n                      }\n                      iVar16 = iVar16 + uStack_11c;\n                      uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16);\n                      uVar14 = uStack_164;\n                      if (uStack_164 != 0) goto joined_r0x0004e770;\n                      piVar33 = piStack_e0 + iVar16;\n                      iVar28 = *piVar33;\n                      piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc);\n                      if (iVar28 == 0) {\n                        piStack_160 = (int *)*piVar17;\n                        piStack_15c = (int *)piVar17[1];\n                        iStack_158 = piVar17[2];\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        *piVar33 = iVar44;\n                      }\n                      else {\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }\n                      if ((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))\n                      goto joined_r0x0004e770;\n                    }" (if "if") (parenthesized_expression "(iVar16 != 0)" (( "(") (binary_expression "iVar16 != 0" (identifier "iVar16") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                      if (iStack_cc < iVar16) {\n                        iStack_cc = iVar16;\n                      }\n                      iVar16 = iVar16 + uStack_11c;\n                      uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16);\n                      uVar14 = uStack_164;\n                      if (uStack_164 != 0) goto joined_r0x0004e770;\n                      piVar33 = piStack_e0 + iVar16;\n                      iVar28 = *piVar33;\n                      piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc);\n                      if (iVar28 == 0) {\n                        piStack_160 = (int *)*piVar17;\n                        piStack_15c = (int *)piVar17[1];\n                        iStack_158 = piVar17[2];\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        *piVar33 = iVar44;\n                      }\n                      else {\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }\n                      if ((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))\n                      goto joined_r0x0004e770;\n                    }" ({ "{") (if_statement "if (iStack_cc < iVar16) {\n                        iStack_cc = iVar16;\n                      }" (if "if") (parenthesized_expression "(iStack_cc < iVar16)" (( "(") (binary_expression "iStack_cc < iVar16" (identifier "iStack_cc") (< "<") (identifier "iVar16")) () ")")) (compound_statement "{\n                        iStack_cc = iVar16;\n                      }" ({ "{") (expression_statement "iStack_cc = iVar16;" (assignment_expression "iStack_cc = iVar16" (identifier "iStack_cc") (= "=") (identifier "iVar16")) (; ";")) (} "}"))) (expression_statement "iVar16 = iVar16 + uStack_11c;" (assignment_expression "iVar16 = iVar16 + uStack_11c" (identifier "iVar16") (= "=") (binary_expression "iVar16 + uStack_11c" (identifier "iVar16") (+ "+") (identifier "uStack_11c"))) (; ";")) (expression_statement "uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16);" (assignment_expression "uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16)" (identifier "uStack_164") (= "=") (call_expression "(*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16)" (parenthesized_expression "(*(code *)(iVar18 + 0x43b0))" (( "(") (pointer_expression "*(code *)(iVar18 + 0x43b0)" (* "*") (cast_expression "(code *)(iVar18 + 0x43b0)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x43b0)" (( "(") (binary_expression "iVar18 + 0x43b0" (identifier "iVar18") (+ "+") (number_literal "0x43b0")) () ")")))) () ")")) (argument_list "(&puStack_144,iVar16)" (( "(") (pointer_expression "&puStack_144" (& "&") (identifier "puStack_144")) (, ",") (identifier "iVar16") () ")")))) (; ";")) (expression_statement "uVar14 = uStack_164;" (assignment_expression "uVar14 = uStack_164" (identifier "uVar14") (= "=") (identifier "uStack_164")) (; ";")) (if_statement "if (uStack_164 != 0) goto joined_r0x0004e770;" (if "if") (parenthesized_expression "(uStack_164 != 0)" (( "(") (binary_expression "uStack_164 != 0" (identifier "uStack_164") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto joined_r0x0004e770;" (goto "goto") (statement_identifier "joined_r0x0004e770") (; ";"))) (expression_statement "piVar33 = piStack_e0 + iVar16;" (assignment_expression "piVar33 = piStack_e0 + iVar16" (identifier "piVar33") (= "=") (binary_expression "piStack_e0 + iVar16" (identifier "piStack_e0") (+ "+") (identifier "iVar16"))) (; ";")) (expression_statement "iVar28 = *piVar33;" (assignment_expression "iVar28 = *piVar33" (identifier "iVar28") (= "=") (pointer_expression "*piVar33" (* "*") (identifier "piVar33"))) (; ";")) (expression_statement "piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc);" (assignment_expression "piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc)" (identifier "piVar17") (= "=") (cast_expression "(int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc)" (( "(") (binary_expression "puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc" (subscript_expression "puVar36[6]" (identifier "puVar36") ([ "[") (number_literal "6") (] "]")) (+ "+") (binary_expression "*(int *)(puVar36[3] + iVar44 * 4) * 0xc" (pointer_expression "*(int *)(puVar36[3] + iVar44 * 4)" (* "*") (cast_expression "(int *)(puVar36[3] + iVar44 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36[3] + iVar44 * 4)" (( "(") (binary_expression "puVar36[3] + iVar44 * 4" (subscript_expression "puVar36[3]" (identifier "puVar36") ([ "[") (number_literal "3") (] "]")) (+ "+") (binary_expression "iVar44 * 4" (identifier "iVar44") (* "*") (number_literal "4"))) () ")")))) (* "*") (number_literal "0xc"))) () ")")))) (; ";")) (if_statement "if (iVar28 == 0) {\n                        piStack_160 = (int *)*piVar17;\n                        piStack_15c = (int *)piVar17[1];\n                        iStack_158 = piVar17[2];\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        *piVar33 = iVar44;\n                      }\n                      else {\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }" (if "if") (parenthesized_expression "(iVar28 == 0)" (( "(") (binary_expression "iVar28 == 0" (identifier "iVar28") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                        piStack_160 = (int *)*piVar17;\n                        piStack_15c = (int *)piVar17[1];\n                        iStack_158 = piVar17[2];\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        *piVar33 = iVar44;\n                      }" ({ "{") (expression_statement "piStack_160 = (int *)*piVar17;" (assignment_expression "piStack_160 = (int *)*piVar17" (identifier "piStack_160") (= "=") (cast_expression "(int *)*piVar17" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar17" (* "*") (identifier "piVar17")))) (; ";")) (expression_statement "piStack_15c = (int *)piVar17[1];" (assignment_expression "piStack_15c = (int *)piVar17[1]" (identifier "piStack_15c") (= "=") (cast_expression "(int *)piVar17[1]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar17[1]" (identifier "piVar17") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "iStack_158 = piVar17[2];" (assignment_expression "iStack_158 = piVar17[2]" (identifier "iStack_158") (= "=") (subscript_expression "piVar17[2]" (identifier "piVar17") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);" (assignment_expression "uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec)" (identifier "uVar20") (= "=") (call_expression "(*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec)" (parenthesized_expression "(*pcVar45)" (( "(") (pointer_expression "*pcVar45" (* "*") (identifier "pcVar45")) () ")")) (argument_list "(&puStack_144,iVar16 + -1,puStack_ec)" (( "(") (pointer_expression "&puStack_144" (& "&") (identifier "puStack_144")) (, ",") (binary_expression "iVar16 + -1" (identifier "iVar16") (+ "+") (number_literal "-1")) (, ",") (identifier "puStack_ec") () ")")))) (; ";")) (expression_statement "iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);" (assignment_expression "iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20)" (identifier "iVar44") (= "=") (call_expression "FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20)" (identifier "FUN_00046cac") (argument_list "(&uStack_164,puVar36,&piStack_160,uVar20)" (( "(") (pointer_expression "&uStack_164" (& "&") (identifier "uStack_164")) (, ",") (identifier "puVar36") (, ",") (pointer_expression "&piStack_160" (& "&") (identifier "piStack_160")) (, ",") (identifier "uVar20") () ")")))) (; ";")) (expression_statement "*piVar33 = iVar44;" (assignment_expression "*piVar33 = iVar44" (pointer_expression "*piVar33" (* "*") (identifier "piVar33")) (= "=") (identifier "iVar44")) (; ";")) (} "}")) (else_clause "else {\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }" (else "else") (compound_statement "{\n                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));\n                        uVar14 = uStack_164;\n                        if (uStack_164 != 0) goto joined_r0x0004e770;\n                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);\n                        piVar17 = piStack_e0 + iVar16;\n                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);\n                        pcVar7 = *(code **)(puVar46 + 0x28520);\n                        *piVar17 = iVar44;\n                        (*pcVar7)(iStack_158);\n                      }" ({ "{") (expression_statement "uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));" (assignment_expression "uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28))" (identifier "uStack_164") (= "=") (call_expression "FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28))" (identifier "FUN_00046ab0") (argument_list "(&piStack_160,*(undefined4 *)(iVar28 + 0x28))" (( "(") (pointer_expression "&piStack_160" (& "&") (identifier "piStack_160")) (, ",") (pointer_expression "*(undefined4 *)(iVar28 + 0x28)" (* "*") (cast_expression "(undefined4 *)(iVar28 + 0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar28 + 0x28)" (( "(") (binary_expression "iVar28 + 0x28" (identifier "iVar28") (+ "+") (number_literal "0x28")) () ")")))) () ")")))) (; ";")) (expression_statement "uVar14 = uStack_164;" (assignment_expression "uVar14 = uStack_164" (identifier "uVar14") (= "=") (identifier "uStack_164")) (; ";")) (if_statement "if (uStack_164 != 0) goto joined_r0x0004e770;" (if "if") (parenthesized_expression "(uStack_164 != 0)" (( "(") (binary_expression "uStack_164 != 0" (identifier "uStack_164") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto joined_r0x0004e770;" (goto "goto") (statement_identifier "joined_r0x0004e770") (; ";"))) (expression_statement "uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);" (assignment_expression "uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec)" (identifier "uVar20") (= "=") (call_expression "(*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec)" (parenthesized_expression "(*pcVar45)" (( "(") (pointer_expression "*pcVar45" (* "*") (identifier "pcVar45")) () ")")) (argument_list "(&puStack_144,iVar16 + -1,puStack_ec)" (( "(") (pointer_expression "&puStack_144" (& "&") (identifier "puStack_144")) (, ",") (binary_expression "iVar16 + -1" (identifier "iVar16") (+ "+") (number_literal "-1")) (, ",") (identifier "puStack_ec") () ")")))) (; ";")) (expression_statement "piVar17 = piStack_e0 + iVar16;" (assignment_expression "piVar17 = piStack_e0 + iVar16" (identifier "piVar17") (= "=") (binary_expression "piStack_e0 + iVar16" (identifier "piStack_e0") (+ "+") (identifier "iVar16"))) (; ";")) (expression_statement "iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);" (assignment_expression "iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20)" (identifier "iVar44") (= "=") (call_expression "FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20)" (identifier "FUN_00046cac") (argument_list "(&uStack_164,puVar36,&piStack_160,uVar20)" (( "(") (pointer_expression "&uStack_164" (& "&") (identifier "uStack_164")) (, ",") (identifier "puVar36") (, ",") (pointer_expression "&piStack_160" (& "&") (identifier "piStack_160")) (, ",") (identifier "uVar20") () ")")))) (; ";")) (expression_statement "pcVar7 = *(code **)(puVar46 + 0x28520);" (assignment_expression "pcVar7 = *(code **)(puVar46 + 0x28520)" (identifier "pcVar7") (= "=") (pointer_expression "*(code **)(puVar46 + 0x28520)" (* "*") (cast_expression "(code **)(puVar46 + 0x28520)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar46 + 0x28520)" (( "(") (binary_expression "puVar46 + 0x28520" (identifier "puVar46") (+ "+") (number_literal "0x28520")) () ")"))))) (; ";")) (expression_statement "*piVar17 = iVar44;" (assignment_expression "*piVar17 = iVar44" (pointer_expression "*piVar17" (* "*") (identifier "piVar17")) (= "=") (identifier "iVar44")) (; ";")) (expression_statement "(*pcVar7)(iStack_158);" (call_expression "(*pcVar7)(iStack_158)" (parenthesized_expression "(*pcVar7)" (( "(") (pointer_expression "*pcVar7" (* "*") (identifier "pcVar7")) () ")")) (argument_list "(iStack_158)" (( "(") (identifier "iStack_158") () ")"))) (; ";")) (} "}")))) (if_statement "if ((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))\n                      goto joined_r0x0004e770;" (if "if") (parenthesized_expression "((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))" (( "(") (binary_expression "(piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0)" (parenthesized_expression "(piStack_e0[iVar16] == 0)" (( "(") (binary_expression "piStack_e0[iVar16] == 0" (subscript_expression "piStack_e0[iVar16]" (identifier "piStack_e0") ([ "[") (identifier "iVar16") (] "]")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(uVar14 = uStack_164, uStack_164 != 0)" (( "(") (comma_expression "uVar14 = uStack_164, uStack_164 != 0" (assignment_expression "uVar14 = uStack_164" (identifier "uVar14") (= "=") (identifier "uStack_164")) (, ",") (binary_expression "uStack_164 != 0" (identifier "uStack_164") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (goto_statement "goto joined_r0x0004e770;" (goto "goto") (statement_identifier "joined_r0x0004e770") (; ";"))) (} "}"))) (expression_statement "iVar16 = *(int *)(uVar41 + 8);" (assignment_expression "iVar16 = *(int *)(uVar41 + 8)" (identifier "iVar16") (= "=") (pointer_expression "*(int *)(uVar41 + 8)" (* "*") (cast_expression "(int *)(uVar41 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar41 + 8)" (( "(") (binary_expression "uVar41 + 8" (identifier "uVar41") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "uVar14 = uStack_11c;" (assignment_expression "uVar14 = uStack_11c" (identifier "uVar14") (= "=") (identifier "uStack_11c")) (; ";")) (} "}"))) (labeled_statement "LAB_0004e670:\n                  param_4 = (uint *)((int)param_4 + 1);" (statement_identifier "LAB_0004e670") (: ":") (expression_statement "param_4 = (uint *)((int)param_4 + 1);" (assignment_expression "param_4 = (uint *)((int)param_4 + 1)" (identifier "param_4") (= "=") (cast_expression "(uint *)((int)param_4 + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_4 + 1)" (( "(") (binary_expression "(int)param_4 + 1" (cast_expression "(int)param_4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_4")) (+ "+") (number_literal "1")) () ")")))) (; ";"))) (} "}")) (while "while") (parenthesized_expression "((int)param_4 < iVar16)" (( "(") (binary_expression "(int)param_4 < iVar16" (cast_expression "(int)param_4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_4")) (< "<") (identifier "iVar16")) () ")")) (; ";")) (} "}"))) (expression_statement "uStack_168 = 0;" (assignment_expression "uStack_168 = 0" (identifier "uStack_168") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "uStack_11c = uVar14 + 1;" (assignment_expression "uStack_11c = uVar14 + 1" (identifier "uStack_11c") (= "=") (binary_expression "uVar14 + 1" (identifier "uVar14") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar14 = (uint)*(byte *)((int)puStack_140 + uVar14);" (assignment_expression "uVar14 = (uint)*(byte *)((int)puStack_140 + uVar14)" (identifier "uVar14") (= "=") (binary_expression "(uint)*(byte *)((int)puStack_140 + uVar14)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)((int)puStack_140 + uVar14)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puStack_140 + uVar14)" (( "(") (binary_expression "(int)puStack_140 + uVar14" (cast_expression "(int)puStack_140" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puStack_140")) (+ "+") (identifier "uVar14")) () ")"))))) (; ";")) (do_statement "do {\n              if (*(int *)(uVar41 + 0x2c) != 0) {\n                uVar37 = *(uint *)(*(int *)(uVar41 + 0x2c) + uVar14 * 4);\nLAB_0004ddf0:\n                if (piStack_e0 != (int *)0x0) goto LAB_0004ddfc;\n                goto LAB_0004de1c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x30);\n              if (iVar16 != 0) {\n                uVar37 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n                if ((uVar37 & 1) == 0) {\n                  uVar37 = *(uint *)(iVar16 + uVar14 * 4);\n                }\n                else {\n                  uVar37 = *(uint *)(iVar16 + (uVar14 + 0x100) * 4);\n                }\n                goto LAB_0004ddf0;\n              }\n              iVar16 = (*(code *)(iVar26 + -0x7510))(puStack_f0,uVar41);\n            } while (iVar16 != 0);" (do "do") (compound_statement "{\n              if (*(int *)(uVar41 + 0x2c) != 0) {\n                uVar37 = *(uint *)(*(int *)(uVar41 + 0x2c) + uVar14 * 4);\nLAB_0004ddf0:\n                if (piStack_e0 != (int *)0x0) goto LAB_0004ddfc;\n                goto LAB_0004de1c;\n              }\n              iVar16 = *(int *)(uVar41 + 0x30);\n              if (iVar16 != 0) {\n                uVar37 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n                if ((uVar37 & 1) == 0) {\n                  uVar37 = *(uint *)(iVar16 + uVar14 * 4);\n                }\n                else {\n                  uVar37 = *(uint *)(iVar16 + (uVar14 + 0x100) * 4);\n                }\n                goto LAB_0004ddf0;\n              }\n              iVar16 = (*(code *)(iVar26 + -0x7510))(puStack_f0,uVar41);\n            }" ({ "{") (if_statement "if (*(int *)(uVar41 + 0x2c) != 0) {\n                uVar37 = *(uint *)(*(int *)(uVar41 + 0x2c) + uVar14 * 4);\nLAB_0004ddf0:\n                if (piStack_e0 != (int *)0x0) goto LAB_0004ddfc;\n                goto LAB_0004de1c;\n              }" (if "if") (parenthesized_expression "(*(int *)(uVar41 + 0x2c) != 0)" (( "(") (binary_expression "*(int *)(uVar41 + 0x2c) != 0" (pointer_expression "*(int *)(uVar41 + 0x2c)" (* "*") (cast_expression "(int *)(uVar41 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar41 + 0x2c)" (( "(") (binary_expression "uVar41 + 0x2c" (identifier "uVar41") (+ "+") (number_literal "0x2c")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                uVar37 = *(uint *)(*(int *)(uVar41 + 0x2c) + uVar14 * 4);\nLAB_0004ddf0:\n                if (piStack_e0 != (int *)0x0) goto LAB_0004ddfc;\n                goto LAB_0004de1c;\n              }" ({ "{") (expression_statement "uVar37 = *(uint *)(*(int *)(uVar41 + 0x2c) + uVar14 * 4);" (assignment_expression "uVar37 = *(uint *)(*(int *)(uVar41 + 0x2c) + uVar14 * 4)" (identifier "uVar37") (= "=") (pointer_expression "*(uint *)(*(int *)(uVar41 + 0x2c) + uVar14 * 4)" (* "*") (cast_expression "(uint *)(*(int *)(uVar41 + 0x2c) + uVar14 * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(uVar41 + 0x2c) + uVar14 * 4)" (( "(") (binary_expression "*(int *)(uVar41 + 0x2c) + uVar14 * 4" (pointer_expression "*(int *)(uVar41 + 0x2c)" (* "*") (cast_expression "(int *)(uVar41 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar41 + 0x2c)" (( "(") (binary_expression "uVar41 + 0x2c" (identifier "uVar41") (+ "+") (number_literal "0x2c")) () ")")))) (+ "+") (binary_expression "uVar14 * 4" (identifier "uVar14") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (labeled_statement "LAB_0004ddf0:\n                if (piStack_e0 != (int *)0x0) goto LAB_0004ddfc;" (statement_identifier "LAB_0004ddf0") (: ":") (if_statement "if (piStack_e0 != (int *)0x0) goto LAB_0004ddfc;" (if "if") (parenthesized_expression "(piStack_e0 != (int *)0x0)" (( "(") (binary_expression "piStack_e0 != (int *)0x0" (identifier "piStack_e0") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0004ddfc;" (goto "goto") (statement_identifier "LAB_0004ddfc") (; ";")))) (goto_statement "goto LAB_0004de1c;" (goto "goto") (statement_identifier "LAB_0004de1c") (; ";")) (} "}"))) (expression_statement "iVar16 = *(int *)(uVar41 + 0x30);" (assignment_expression "iVar16 = *(int *)(uVar41 + 0x30)" (identifier "iVar16") (= "=") (pointer_expression "*(int *)(uVar41 + 0x30)" (* "*") (cast_expression "(int *)(uVar41 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar41 + 0x30)" (( "(") (binary_expression "uVar41 + 0x30" (identifier "uVar41") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (if_statement "if (iVar16 != 0) {\n                uVar37 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n                if ((uVar37 & 1) == 0) {\n                  uVar37 = *(uint *)(iVar16 + uVar14 * 4);\n                }\n                else {\n                  uVar37 = *(uint *)(iVar16 + (uVar14 + 0x100) * 4);\n                }\n                goto LAB_0004ddf0;\n              }" (if "if") (parenthesized_expression "(iVar16 != 0)" (( "(") (binary_expression "iVar16 != 0" (identifier "iVar16") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                uVar37 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);\n                if ((uVar37 & 1) == 0) {\n                  uVar37 = *(uint *)(iVar16 + uVar14 * 4);\n                }\n                else {\n                  uVar37 = *(uint *)(iVar16 + (uVar14 + 0x100) * 4);\n                }\n                goto LAB_0004ddf0;\n              }" ({ "{") (expression_statement "uVar37 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);" (assignment_expression "uVar37 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec)" (identifier "uVar37") (= "=") (call_expression "FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec)" (identifier "FUN_00047ab0") (argument_list "(&puStack_144,uStack_11c - 1,puStack_ec)" (( "(") (pointer_expression "&puStack_144" (& "&") (identifier "puStack_144")) (, ",") (binary_expression "uStack_11c - 1" (identifier "uStack_11c") (- "-") (number_literal "1")) (, ",") (identifier "puStack_ec") () ")")))) (; ";")) (if_statement "if ((uVar37 & 1) == 0) {\n                  uVar37 = *(uint *)(iVar16 + uVar14 * 4);\n                }\n                else {\n                  uVar37 = *(uint *)(iVar16 + (uVar14 + 0x100) * 4);\n                }" (if "if") (parenthesized_expression "((uVar37 & 1) == 0)" (( "(") (binary_expression "(uVar37 & 1) == 0" (parenthesized_expression "(uVar37 & 1)" (( "(") (binary_expression "uVar37 & 1" (identifier "uVar37") (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  uVar37 = *(uint *)(iVar16 + uVar14 * 4);\n                }" ({ "{") (expression_statement "uVar37 = *(uint *)(iVar16 + uVar14 * 4);" (assignment_expression "uVar37 = *(uint *)(iVar16 + uVar14 * 4)" (identifier "uVar37") (= "=") (pointer_expression "*(uint *)(iVar16 + uVar14 * 4)" (* "*") (cast_expression "(uint *)(iVar16 + uVar14 * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + uVar14 * 4)" (( "(") (binary_expression "iVar16 + uVar14 * 4" (identifier "iVar16") (+ "+") (binary_expression "uVar14 * 4" (identifier "uVar14") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n                  uVar37 = *(uint *)(iVar16 + (uVar14 + 0x100) * 4);\n                }" (else "else") (compound_statement "{\n                  uVar37 = *(uint *)(iVar16 + (uVar14 + 0x100) * 4);\n                }" ({ "{") (expression_statement "uVar37 = *(uint *)(iVar16 + (uVar14 + 0x100) * 4);" (assignment_expression "uVar37 = *(uint *)(iVar16 + (uVar14 + 0x100) * 4)" (identifier "uVar37") (= "=") (pointer_expression "*(uint *)(iVar16 + (uVar14 + 0x100) * 4)" (* "*") (cast_expression "(uint *)(iVar16 + (uVar14 + 0x100) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + (uVar14 + 0x100) * 4)" (( "(") (binary_expression "iVar16 + (uVar14 + 0x100) * 4" (identifier "iVar16") (+ "+") (binary_expression "(uVar14 + 0x100) * 4" (parenthesized_expression "(uVar14 + 0x100)" (( "(") (binary_expression "uVar14 + 0x100" (identifier "uVar14") (+ "+") (number_literal "0x100")) () ")")) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (} "}")))) (goto_statement "goto LAB_0004ddf0;" (goto "goto") (statement_identifier "LAB_0004ddf0") (; ";")) (} "}"))) (expression_statement "iVar16 = (*(code *)(iVar26 + -0x7510))(puStack_f0,uVar41);" (assignment_expression "iVar16 = (*(code *)(iVar26 + -0x7510))(puStack_f0,uVar41)" (identifier "iVar16") (= "=") (call_expression "(*(code *)(iVar26 + -0x7510))(puStack_f0,uVar41)" (parenthesized_expression "(*(code *)(iVar26 + -0x7510))" (( "(") (pointer_expression "*(code *)(iVar26 + -0x7510)" (* "*") (cast_expression "(code *)(iVar26 + -0x7510)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar26 + -0x7510)" (( "(") (binary_expression "iVar26 + -0x7510" (identifier "iVar26") (+ "+") (number_literal "-0x7510")) () ")")))) () ")")) (argument_list "(puStack_f0,uVar41)" (( "(") (identifier "puStack_f0") (, ",") (identifier "uVar41") () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar16 != 0)" (( "(") (binary_expression "iVar16 != 0" (identifier "iVar16") (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "uStack_168 = 0xc;" (assignment_expression "uStack_168 = 0xc" (identifier "uStack_168") (= "=") (number_literal "0xc")) (; ";")) (expression_statement "uVar14 = uStack_168;" (assignment_expression "uVar14 = uStack_168" (identifier "uVar14") (= "=") (identifier "uStack_168")) (; ";")) (labeled_statement "joined_r0x0004e770:\n            uStack_168 = uVar14;" (statement_identifier "joined_r0x0004e770") (: ":") (expression_statement "uStack_168 = uVar14;" (assignment_expression "uStack_168 = uVar14" (identifier "uStack_168") (= "=") (identifier "uVar14")) (; ";"))) (if_statement "if (piStack_e0 == (int *)0x0) {\n              piVar17 = (int *)0x0;\n              goto LAB_0004dbb4;\n            }" (if "if") (parenthesized_expression "(piStack_e0 == (int *)0x0)" (( "(") (binary_expression "piStack_e0 == (int *)0x0" (identifier "piStack_e0") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              piVar17 = (int *)0x0;\n              goto LAB_0004dbb4;\n            }" ({ "{") (expression_statement "piVar17 = (int *)0x0;" (assignment_expression "piVar17 = (int *)0x0" (identifier "piVar17") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (goto_statement "goto LAB_0004dbb4;" (goto "goto") (statement_identifier "LAB_0004dbb4") (; ";")) (} "}"))) (expression_statement "uVar37 = 0;" (assignment_expression "uVar37 = 0" (identifier "uVar37") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_0004ddfc:\n            uVar37 = FUN_0004d0a8(&uStack_168,&puStack_144,uVar37);" (statement_identifier "LAB_0004ddfc") (: ":") (expression_statement "uVar37 = FUN_0004d0a8(&uStack_168,&puStack_144,uVar37);" (assignment_expression "uVar37 = FUN_0004d0a8(&uStack_168,&puStack_144,uVar37)" (identifier "uVar37") (= "=") (call_expression "FUN_0004d0a8(&uStack_168,&puStack_144,uVar37)" (identifier "FUN_0004d0a8") (argument_list "(&uStack_168,&puStack_144,uVar37)" (( "(") (pointer_expression "&uStack_168" (& "&") (identifier "uStack_168")) (, ",") (pointer_expression "&puStack_144" (& "&") (identifier "puStack_144")) (, ",") (identifier "uVar37") () ")")))) (; ";"))) (labeled_statement "LAB_0004de1c:\n            uVar14 = uStack_11c;" (statement_identifier "LAB_0004de1c") (: ":") (expression_statement "uVar14 = uStack_11c;" (assignment_expression "uVar14 = uStack_11c" (identifier "uVar14") (= "=") (identifier "uStack_11c")) (; ";"))) (if_statement "if (uVar37 == 0) {\n              piVar17 = piStack_e0;\n              if (uStack_168 != 0) goto LAB_0004dbb4;\n              if ((piStack_e0 == (int *)0x0) || ((bVar5 && (!bVar22)))) break;\n              param_4 = &uStack_168;\n              do {\n                bVar2 = false;\n                piVar17 = piStack_e0 + uStack_11c;\n                uVar14 = uStack_11c;\n                do {\n                  uVar37 = uVar14 + 1;\n                  piVar17 = piVar17 + 1;\n                  if (iStack_dc < (int)uVar37) {\n                    if (bVar2) {\n                      uStack_11c = uVar14;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar2 = true;\n                  uVar14 = uVar37;\n                } while (*piVar17 == 0);\n                uStack_11c = uVar37;\n                uVar37 = FUN_0004d0a8(param_4,&puStack_144,0);\n                uVar14 = uStack_11c;\n                if (uStack_168 != 0) {\n                  if (uVar37 == 0) goto LAB_0004e0cc;\n                  break;\n                }\n              } while (uVar37 == 0);\n            }" (if "if") (parenthesized_expression "(uVar37 == 0)" (( "(") (binary_expression "uVar37 == 0" (identifier "uVar37") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              piVar17 = piStack_e0;\n              if (uStack_168 != 0) goto LAB_0004dbb4;\n              if ((piStack_e0 == (int *)0x0) || ((bVar5 && (!bVar22)))) break;\n              param_4 = &uStack_168;\n              do {\n                bVar2 = false;\n                piVar17 = piStack_e0 + uStack_11c;\n                uVar14 = uStack_11c;\n                do {\n                  uVar37 = uVar14 + 1;\n                  piVar17 = piVar17 + 1;\n                  if (iStack_dc < (int)uVar37) {\n                    if (bVar2) {\n                      uStack_11c = uVar14;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar2 = true;\n                  uVar14 = uVar37;\n                } while (*piVar17 == 0);\n                uStack_11c = uVar37;\n                uVar37 = FUN_0004d0a8(param_4,&puStack_144,0);\n                uVar14 = uStack_11c;\n                if (uStack_168 != 0) {\n                  if (uVar37 == 0) goto LAB_0004e0cc;\n                  break;\n                }\n              } while (uVar37 == 0);\n            }" ({ "{") (expression_statement "piVar17 = piStack_e0;" (assignment_expression "piVar17 = piStack_e0" (identifier "piVar17") (= "=") (identifier "piStack_e0")) (; ";")) (if_statement "if (uStack_168 != 0) goto LAB_0004dbb4;" (if "if") (parenthesized_expression "(uStack_168 != 0)" (( "(") (binary_expression "uStack_168 != 0" (identifier "uStack_168") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0004dbb4;" (goto "goto") (statement_identifier "LAB_0004dbb4") (; ";"))) (if_statement "if ((piStack_e0 == (int *)0x0) || ((bVar5 && (!bVar22)))) break;" (if "if") (parenthesized_expression "((piStack_e0 == (int *)0x0) || ((bVar5 && (!bVar22))))" (( "(") (binary_expression "(piStack_e0 == (int *)0x0) || ((bVar5 && (!bVar22)))" (parenthesized_expression "(piStack_e0 == (int *)0x0)" (( "(") (binary_expression "piStack_e0 == (int *)0x0" (identifier "piStack_e0") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "((bVar5 && (!bVar22)))" (( "(") (parenthesized_expression "(bVar5 && (!bVar22))" (( "(") (binary_expression "bVar5 && (!bVar22)" (identifier "bVar5") (&& "&&") (parenthesized_expression "(!bVar22)" (( "(") (unary_expression "!bVar22" (! "!") (identifier "bVar22")) () ")"))) () ")")) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "param_4 = &uStack_168;" (assignment_expression "param_4 = &uStack_168" (identifier "param_4") (= "=") (pointer_expression "&uStack_168" (& "&") (identifier "uStack_168"))) (; ";")) (do_statement "do {\n                bVar2 = false;\n                piVar17 = piStack_e0 + uStack_11c;\n                uVar14 = uStack_11c;\n                do {\n                  uVar37 = uVar14 + 1;\n                  piVar17 = piVar17 + 1;\n                  if (iStack_dc < (int)uVar37) {\n                    if (bVar2) {\n                      uStack_11c = uVar14;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar2 = true;\n                  uVar14 = uVar37;\n                } while (*piVar17 == 0);\n                uStack_11c = uVar37;\n                uVar37 = FUN_0004d0a8(param_4,&puStack_144,0);\n                uVar14 = uStack_11c;\n                if (uStack_168 != 0) {\n                  if (uVar37 == 0) goto LAB_0004e0cc;\n                  break;\n                }\n              } while (uVar37 == 0);" (do "do") (compound_statement "{\n                bVar2 = false;\n                piVar17 = piStack_e0 + uStack_11c;\n                uVar14 = uStack_11c;\n                do {\n                  uVar37 = uVar14 + 1;\n                  piVar17 = piVar17 + 1;\n                  if (iStack_dc < (int)uVar37) {\n                    if (bVar2) {\n                      uStack_11c = uVar14;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar2 = true;\n                  uVar14 = uVar37;\n                } while (*piVar17 == 0);\n                uStack_11c = uVar37;\n                uVar37 = FUN_0004d0a8(param_4,&puStack_144,0);\n                uVar14 = uStack_11c;\n                if (uStack_168 != 0) {\n                  if (uVar37 == 0) goto LAB_0004e0cc;\n                  break;\n                }\n              }" ({ "{") (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" (identifier "bVar2") (= "=") (false "false")) (; ";")) (expression_statement "piVar17 = piStack_e0 + uStack_11c;" (assignment_expression "piVar17 = piStack_e0 + uStack_11c" (identifier "piVar17") (= "=") (binary_expression "piStack_e0 + uStack_11c" (identifier "piStack_e0") (+ "+") (identifier "uStack_11c"))) (; ";")) (expression_statement "uVar14 = uStack_11c;" (assignment_expression "uVar14 = uStack_11c" (identifier "uVar14") (= "=") (identifier "uStack_11c")) (; ";")) (do_statement "do {\n                  uVar37 = uVar14 + 1;\n                  piVar17 = piVar17 + 1;\n                  if (iStack_dc < (int)uVar37) {\n                    if (bVar2) {\n                      uStack_11c = uVar14;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar2 = true;\n                  uVar14 = uVar37;\n                } while (*piVar17 == 0);" (do "do") (compound_statement "{\n                  uVar37 = uVar14 + 1;\n                  piVar17 = piVar17 + 1;\n                  if (iStack_dc < (int)uVar37) {\n                    if (bVar2) {\n                      uStack_11c = uVar14;\n                    }\n                    goto LAB_0004e0cc;\n                  }\n                  bVar2 = true;\n                  uVar14 = uVar37;\n                }" ({ "{") (expression_statement "uVar37 = uVar14 + 1;" (assignment_expression "uVar37 = uVar14 + 1" (identifier "uVar37") (= "=") (binary_expression "uVar14 + 1" (identifier "uVar14") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar17 = piVar17 + 1;" (assignment_expression "piVar17 = piVar17 + 1" (identifier "piVar17") (= "=") (binary_expression "piVar17 + 1" (identifier "piVar17") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (iStack_dc < (int)uVar37) {\n                    if (bVar2) {\n                      uStack_11c = uVar14;\n                    }\n                    goto LAB_0004e0cc;\n                  }" (if "if") (parenthesized_expression "(iStack_dc < (int)uVar37)" (( "(") (binary_expression "iStack_dc < (int)uVar37" (identifier "iStack_dc") (< "<") (cast_expression "(int)uVar37" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar37"))) () ")")) (compound_statement "{\n                    if (bVar2) {\n                      uStack_11c = uVar14;\n                    }\n                    goto LAB_0004e0cc;\n                  }" ({ "{") (if_statement "if (bVar2) {\n                      uStack_11c = uVar14;\n                    }" (if "if") (parenthesized_expression "(bVar2)" (( "(") (identifier "bVar2") () ")")) (compound_statement "{\n                      uStack_11c = uVar14;\n                    }" ({ "{") (expression_statement "uStack_11c = uVar14;" (assignment_expression "uStack_11c = uVar14" (identifier "uStack_11c") (= "=") (identifier "uVar14")) (; ";")) (} "}"))) (goto_statement "goto LAB_0004e0cc;" (goto "goto") (statement_identifier "LAB_0004e0cc") (; ";")) (} "}"))) (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" (identifier "bVar2") (= "=") (true "true")) (; ";")) (expression_statement "uVar14 = uVar37;" (assignment_expression "uVar14 = uVar37" (identifier "uVar14") (= "=") (identifier "uVar37")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*piVar17 == 0)" (( "(") (binary_expression "*piVar17 == 0" (pointer_expression "*piVar17" (* "*") (identifier "piVar17")) (== "==") (number_literal "0")) () ")")) (; ";")) (expression_statement "uStack_11c = uVar37;" (assignment_expression "uStack_11c = uVar37" (identifier "uStack_11c") (= "=") (identifier "uVar37")) (; ";")) (expression_statement "uVar37 = FUN_0004d0a8(param_4,&puStack_144,0);" (assignment_expression "uVar37 = FUN_0004d0a8(param_4,&puStack_144,0)" (identifier "uVar37") (= "=") (call_expression "FUN_0004d0a8(param_4,&puStack_144,0)" (identifier "FUN_0004d0a8") (argument_list "(param_4,&puStack_144,0)" (( "(") (identifier "param_4") (, ",") (pointer_expression "&puStack_144" (& "&") (identifier "puStack_144")) (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "uVar14 = uStack_11c;" (assignment_expression "uVar14 = uStack_11c" (identifier "uVar14") (= "=") (identifier "uStack_11c")) (; ";")) (if_statement "if (uStack_168 != 0) {\n                  if (uVar37 == 0) goto LAB_0004e0cc;\n                  break;\n                }" (if "if") (parenthesized_expression "(uStack_168 != 0)" (( "(") (binary_expression "uStack_168 != 0" (identifier "uStack_168") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  if (uVar37 == 0) goto LAB_0004e0cc;\n                  break;\n                }" ({ "{") (if_statement "if (uVar37 == 0) goto LAB_0004e0cc;" (if "if") (parenthesized_expression "(uVar37 == 0)" (( "(") (binary_expression "uVar37 == 0" (identifier "uVar37") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0004e0cc;" (goto "goto") (statement_identifier "LAB_0004e0cc") (; ";"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (} "}")) (while "while") (parenthesized_expression "(uVar37 == 0)" (( "(") (binary_expression "uVar37 == 0" (identifier "uVar37") (== "==") (number_literal "0")) () ")")) (; ";")) (} "}"))) (expression_statement "uVar42 = uStack_1d0;" (assignment_expression "uVar42 = uStack_1d0" (identifier "uVar42") (= "=") (identifier "uStack_1d0")) (; ";")) (if_statement "if ((bVar4) && (uVar42 = uVar40, uVar41 != uVar37)) {\n              bVar4 = false;\n              uVar42 = uStack_1d0;\n            }" (if "if") (parenthesized_expression "((bVar4) && (uVar42 = uVar40, uVar41 != uVar37))" (( "(") (binary_expression "(bVar4) && (uVar42 = uVar40, uVar41 != uVar37)" (parenthesized_expression "(bVar4)" (( "(") (identifier "bVar4") () ")")) (&& "&&") (parenthesized_expression "(uVar42 = uVar40, uVar41 != uVar37)" (( "(") (comma_expression "uVar42 = uVar40, uVar41 != uVar37" (assignment_expression "uVar42 = uVar40" (identifier "uVar42") (= "=") (identifier "uVar40")) (, ",") (binary_expression "uVar41 != uVar37" (identifier "uVar41") (!= "!=") (identifier "uVar37"))) () ")"))) () ")")) (compound_statement "{\n              bVar4 = false;\n              uVar42 = uStack_1d0;\n            }" ({ "{") (expression_statement "bVar4 = false;" (assignment_expression "bVar4 = false" (identifier "bVar4") (= "=") (false "false")) (; ";")) (expression_statement "uVar42 = uStack_1d0;" (assignment_expression "uVar42 = uStack_1d0" (identifier "uVar42") (= "=") (identifier "uStack_1d0")) (; ";")) (} "}"))) (expression_statement "uStack_1d0 = uVar42;" (assignment_expression "uStack_1d0 = uVar42" (identifier "uStack_1d0") (= "=") (identifier "uVar42")) (; ";")) (expression_statement "uVar41 = uVar37;" (assignment_expression "uVar41 = uVar37" (identifier "uVar41") (= "=") (identifier "uVar37")) (; ";")) (expression_statement "uStack_11c = uVar14;" (assignment_expression "uStack_11c = uVar14" (identifier "uStack_11c") (= "=") (identifier "uVar14")) (; ";")) (if_statement "if (((*(byte *)(uVar37 + 0x34) & 8) != 0) &&\n               (((*(byte *)(uVar37 + 0x34) & 1) == 0 ||\n                (iVar16 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar37 + 8),uVar37 + 0xc,uVar14)\n                , iVar16 != 0)))) {\n              if (!bVar22) goto LAB_0004e0e4;\n              ppuStack_1dc = (uint **)0x0;\n              uVar6 = uVar14;\n              bVar5 = bVar22;\n            }" (if "if") (parenthesized_expression "(((*(byte *)(uVar37 + 0x34) & 8) != 0) &&\n               (((*(byte *)(uVar37 + 0x34) & 1) == 0 ||\n                (iVar16 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar37 + 8),uVar37 + 0xc,uVar14)\n                , iVar16 != 0))))" (( "(") (binary_expression "((*(byte *)(uVar37 + 0x34) & 8) != 0) &&\n               (((*(byte *)(uVar37 + 0x34) & 1) == 0 ||\n                (iVar16 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar37 + 8),uVar37 + 0xc,uVar14)\n                , iVar16 != 0)))" (parenthesized_expression "((*(byte *)(uVar37 + 0x34) & 8) != 0)" (( "(") (binary_expression "(*(byte *)(uVar37 + 0x34) & 8) != 0" (parenthesized_expression "(*(byte *)(uVar37 + 0x34) & 8)" (( "(") (binary_expression "*(byte *)(uVar37 + 0x34) & 8" (pointer_expression "*(byte *)(uVar37 + 0x34)" (* "*") (cast_expression "(byte *)(uVar37 + 0x34)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar37 + 0x34)" (( "(") (binary_expression "uVar37 + 0x34" (identifier "uVar37") (+ "+") (number_literal "0x34")) () ")")))) (& "&") (number_literal "8")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(((*(byte *)(uVar37 + 0x34) & 1) == 0 ||\n                (iVar16 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar37 + 8),uVar37 + 0xc,uVar14)\n                , iVar16 != 0)))" (( "(") (parenthesized_expression "((*(byte *)(uVar37 + 0x34) & 1) == 0 ||\n                (iVar16 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar37 + 8),uVar37 + 0xc,uVar14)\n                , iVar16 != 0))" (( "(") (binary_expression "(*(byte *)(uVar37 + 0x34) & 1) == 0 ||\n                (iVar16 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar37 + 8),uVar37 + 0xc,uVar14)\n                , iVar16 != 0)" (binary_expression "(*(byte *)(uVar37 + 0x34) & 1) == 0" (parenthesized_expression "(*(byte *)(uVar37 + 0x34) & 1)" (( "(") (binary_expression "*(byte *)(uVar37 + 0x34) & 1" (pointer_expression "*(byte *)(uVar37 + 0x34)" (* "*") (cast_expression "(byte *)(uVar37 + 0x34)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar37 + 0x34)" (( "(") (binary_expression "uVar37 + 0x34" (identifier "uVar37") (+ "+") (number_literal "0x34")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) (|| "||") (parenthesized_expression "(iVar16 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar37 + 8),uVar37 + 0xc,uVar14)\n                , iVar16 != 0)" (( "(") (comma_expression "iVar16 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar37 + 8),uVar37 + 0xc,uVar14)\n                , iVar16 != 0" (assignment_expression "iVar16 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar37 + 8),uVar37 + 0xc,uVar14)" (identifier "iVar16") (= "=") (call_expression "FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar37 + 8),uVar37 + 0xc,uVar14)" (identifier "FUN_00047d8c") (argument_list "(&puStack_144,*(undefined4 *)(uVar37 + 8),uVar37 + 0xc,uVar14)" (( "(") (pointer_expression "&puStack_144" (& "&") (identifier "puStack_144")) (, ",") (pointer_expression "*(undefined4 *)(uVar37 + 8)" (* "*") (cast_expression "(undefined4 *)(uVar37 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar37 + 8)" (( "(") (binary_expression "uVar37 + 8" (identifier "uVar37") (+ "+") (number_literal "8")) () ")")))) (, ",") (binary_expression "uVar37 + 0xc" (identifier "uVar37") (+ "+") (number_literal "0xc")) (, ",") (identifier "uVar14") () ")")))) (, ",") (binary_expression "iVar16 != 0" (identifier "iVar16") (!= "!=") (number_literal "0"))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n              if (!bVar22) goto LAB_0004e0e4;\n              ppuStack_1dc = (uint **)0x0;\n              uVar6 = uVar14;\n              bVar5 = bVar22;\n            }" ({ "{") (if_statement "if (!bVar22) goto LAB_0004e0e4;" (if "if") (parenthesized_expression "(!bVar22)" (( "(") (unary_expression "!bVar22" (! "!") (identifier "bVar22")) () ")")) (goto_statement "goto LAB_0004e0e4;" (goto "goto") (statement_identifier "LAB_0004e0e4") (; ";"))) (expression_statement "ppuStack_1dc = (uint **)0x0;" (assignment_expression "ppuStack_1dc = (uint **)0x0" (identifier "ppuStack_1dc") (= "=") (cast_expression "(uint **)0x0" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "uVar6 = uVar14;" (assignment_expression "uVar6 = uVar14" (identifier "uVar6") (= "=") (identifier "uVar14")) (; ";")) (expression_statement "bVar5 = bVar22;" (assignment_expression "bVar5 = bVar22" (identifier "bVar5") (= "=") (identifier "bVar22")) (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_0004e0cc:\n          uVar14 = uVar6;" (statement_identifier "LAB_0004e0cc") (: ":") (expression_statement "uVar14 = uVar6;" (assignment_expression "uVar14 = uVar6" (identifier "uVar14") (= "=") (identifier "uVar6")) (; ";"))) (if_statement "if (ppuStack_1dc != (uint **)0x0) {\n            *ppuStack_1dc = (uint *)((int)*ppuStack_1dc + uStack_1d0);\n          }" (if "if") (parenthesized_expression "(ppuStack_1dc != (uint **)0x0)" (( "(") (binary_expression "ppuStack_1dc != (uint **)0x0" (identifier "ppuStack_1dc") (!= "!=") (cast_expression "(uint **)0x0" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            *ppuStack_1dc = (uint *)((int)*ppuStack_1dc + uStack_1d0);\n          }" ({ "{") (expression_statement "*ppuStack_1dc = (uint *)((int)*ppuStack_1dc + uStack_1d0);" (assignment_expression "*ppuStack_1dc = (uint *)((int)*ppuStack_1dc + uStack_1d0)" (pointer_expression "*ppuStack_1dc" (* "*") (identifier "ppuStack_1dc")) (= "=") (cast_expression "(uint *)((int)*ppuStack_1dc + uStack_1d0)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)*ppuStack_1dc + uStack_1d0)" (( "(") (binary_expression "(int)*ppuStack_1dc + uStack_1d0" (cast_expression "(int)*ppuStack_1dc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*ppuStack_1dc" (* "*") (identifier "ppuStack_1dc"))) (+ "+") (identifier "uStack_1d0")) () ")")))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          uVar14 = FUN_00047924(&puStack_144,uVar41 + 8,uVar41 + 0xc,0);\n          uStack_168 = uVar14;\n          if (uVar14 == 0) {\n            if ((*(byte *)(uVar41 + 0x34) & 2) == 0) {\n              bVar4 = false;\n            }\n            else {\n              uVar14 = FUN_0004c6a8(&puStack_144,uVar41 + 8,uVar41 + 0xc);\n              uStack_168 = uVar14;\n              if (uVar14 != 0) goto LAB_0004e0e4;\n              bVar4 = false;\n            }\n            goto LAB_0004dd48;\n          }\n        }" (else "else") (compound_statement "{\n          uVar14 = FUN_00047924(&puStack_144,uVar41 + 8,uVar41 + 0xc,0);\n          uStack_168 = uVar14;\n          if (uVar14 == 0) {\n            if ((*(byte *)(uVar41 + 0x34) & 2) == 0) {\n              bVar4 = false;\n            }\n            else {\n              uVar14 = FUN_0004c6a8(&puStack_144,uVar41 + 8,uVar41 + 0xc);\n              uStack_168 = uVar14;\n              if (uVar14 != 0) goto LAB_0004e0e4;\n              bVar4 = false;\n            }\n            goto LAB_0004dd48;\n          }\n        }" ({ "{") (expression_statement "uVar14 = FUN_00047924(&puStack_144,uVar41 + 8,uVar41 + 0xc,0);" (assignment_expression "uVar14 = FUN_00047924(&puStack_144,uVar41 + 8,uVar41 + 0xc,0)" (identifier "uVar14") (= "=") (call_expression "FUN_00047924(&puStack_144,uVar41 + 8,uVar41 + 0xc,0)" (identifier "FUN_00047924") (argument_list "(&puStack_144,uVar41 + 8,uVar41 + 0xc,0)" (( "(") (pointer_expression "&puStack_144" (& "&") (identifier "puStack_144")) (, ",") (binary_expression "uVar41 + 8" (identifier "uVar41") (+ "+") (number_literal "8")) (, ",") (binary_expression "uVar41 + 0xc" (identifier "uVar41") (+ "+") (number_literal "0xc")) (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "uStack_168 = uVar14;" (assignment_expression "uStack_168 = uVar14" (identifier "uStack_168") (= "=") (identifier "uVar14")) (; ";")) (if_statement "if (uVar14 == 0) {\n            if ((*(byte *)(uVar41 + 0x34) & 2) == 0) {\n              bVar4 = false;\n            }\n            else {\n              uVar14 = FUN_0004c6a8(&puStack_144,uVar41 + 8,uVar41 + 0xc);\n              uStack_168 = uVar14;\n              if (uVar14 != 0) goto LAB_0004e0e4;\n              bVar4 = false;\n            }\n            goto LAB_0004dd48;\n          }" (if "if") (parenthesized_expression "(uVar14 == 0)" (( "(") (binary_expression "uVar14 == 0" (identifier "uVar14") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            if ((*(byte *)(uVar41 + 0x34) & 2) == 0) {\n              bVar4 = false;\n            }\n            else {\n              uVar14 = FUN_0004c6a8(&puStack_144,uVar41 + 8,uVar41 + 0xc);\n              uStack_168 = uVar14;\n              if (uVar14 != 0) goto LAB_0004e0e4;\n              bVar4 = false;\n            }\n            goto LAB_0004dd48;\n          }" ({ "{") (if_statement "if ((*(byte *)(uVar41 + 0x34) & 2) == 0) {\n              bVar4 = false;\n            }\n            else {\n              uVar14 = FUN_0004c6a8(&puStack_144,uVar41 + 8,uVar41 + 0xc);\n              uStack_168 = uVar14;\n              if (uVar14 != 0) goto LAB_0004e0e4;\n              bVar4 = false;\n            }" (if "if") (parenthesized_expression "((*(byte *)(uVar41 + 0x34) & 2) == 0)" (( "(") (binary_expression "(*(byte *)(uVar41 + 0x34) & 2) == 0" (parenthesized_expression "(*(byte *)(uVar41 + 0x34) & 2)" (( "(") (binary_expression "*(byte *)(uVar41 + 0x34) & 2" (pointer_expression "*(byte *)(uVar41 + 0x34)" (* "*") (cast_expression "(byte *)(uVar41 + 0x34)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar41 + 0x34)" (( "(") (binary_expression "uVar41 + 0x34" (identifier "uVar41") (+ "+") (number_literal "0x34")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              bVar4 = false;\n            }" ({ "{") (expression_statement "bVar4 = false;" (assignment_expression "bVar4 = false" (identifier "bVar4") (= "=") (false "false")) (; ";")) (} "}")) (else_clause "else {\n              uVar14 = FUN_0004c6a8(&puStack_144,uVar41 + 8,uVar41 + 0xc);\n              uStack_168 = uVar14;\n              if (uVar14 != 0) goto LAB_0004e0e4;\n              bVar4 = false;\n            }" (else "else") (compound_statement "{\n              uVar14 = FUN_0004c6a8(&puStack_144,uVar41 + 8,uVar41 + 0xc);\n              uStack_168 = uVar14;\n              if (uVar14 != 0) goto LAB_0004e0e4;\n              bVar4 = false;\n            }" ({ "{") (expression_statement "uVar14 = FUN_0004c6a8(&puStack_144,uVar41 + 8,uVar41 + 0xc);" (assignment_expression "uVar14 = FUN_0004c6a8(&puStack_144,uVar41 + 8,uVar41 + 0xc)" (identifier "uVar14") (= "=") (call_expression "FUN_0004c6a8(&puStack_144,uVar41 + 8,uVar41 + 0xc)" (identifier "FUN_0004c6a8") (argument_list "(&puStack_144,uVar41 + 8,uVar41 + 0xc)" (( "(") (pointer_expression "&puStack_144" (& "&") (identifier "puStack_144")) (, ",") (binary_expression "uVar41 + 8" (identifier "uVar41") (+ "+") (number_literal "8")) (, ",") (binary_expression "uVar41 + 0xc" (identifier "uVar41") (+ "+") (number_literal "0xc")) () ")")))) (; ";")) (expression_statement "uStack_168 = uVar14;" (assignment_expression "uStack_168 = uVar14" (identifier "uStack_168") (= "=") (identifier "uVar14")) (; ";")) (if_statement "if (uVar14 != 0) goto LAB_0004e0e4;" (if "if") (parenthesized_expression "(uVar14 != 0)" (( "(") (binary_expression "uVar14 != 0" (identifier "uVar14") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0004e0e4;" (goto "goto") (statement_identifier "LAB_0004e0e4") (; ";"))) (expression_statement "bVar4 = false;" (assignment_expression "bVar4 = false" (identifier "bVar4") (= "=") (false "false")) (; ";")) (} "}")))) (goto_statement "goto LAB_0004dd48;" (goto "goto") (statement_identifier "LAB_0004dd48") (; ";")) (} "}"))) (} "}")))) (labeled_statement "LAB_0004e0e4:\n        piVar17 = piStack_e0;" (statement_identifier "LAB_0004e0e4") (: ":") (expression_statement "piVar17 = piStack_e0;" (assignment_expression "piVar17 = piStack_e0" (identifier "piVar17") (= "=") (identifier "piStack_e0")) (; ";"))) (if_statement "if (uVar14 != 0xffffffff) {\n          if (uVar14 == 0xfffffffe) goto LAB_0004dbf8;\n          uStack_e8 = uVar14;\n          if (((uint)ppuVar24[7] & 0x8000000) == 0) {\n            if (!bVar1) {\n              uVar6 = puVar43[0x13];\n              goto joined_r0x0004e94c;\n            }\n            pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n            iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                     piStack_e0[uVar14] + 0xc,uVar14);\n            if ((*(char *)(puVar43 + 0x16) < '\0') || (puVar43[0x13] != 0)) goto LAB_0004e170;\n          }\n          else {\n            uVar6 = puVar43[0x13];\njoined_r0x0004e94c:\n            if (uVar6 != 0) {\n              pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n              iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                       piStack_e0[uVar14] + 0xc,uVar14);\nLAB_0004e170:\n              iVar30 = iStack_e4;\n              puVar36 = puStack_f0;\n              if (uVar14 < 0x3fffffff) {\n                uStack_1f0 = uVar14 + 1;\n                piVar17 = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                if (piVar17 == (int *)0x0) goto LAB_0004dbf8;\n                if (puVar36[0x13] == 0) {\n                  piStack_15c = (int *)0x0;\n                  uStack_150 = 0;\n                  uStack_14c = 0;\n                  uStack_148 = 0;\n                  piStack_160 = piVar17;\n                  iStack_158 = iVar30;\n                  uStack_154 = uVar14;\n                  uStack_1e4 = FUN_0004d30c(&puStack_144,&piStack_160);\n                  (**(code **)(puVar46 + 0x28520))(uStack_148);\n                  if (uStack_1e4 == 0) {\n                    if (*piVar17 == 0) {\n                      (**(code **)(puVar46 + 0x28520))(piVar17);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar46 + 0x28520))(piStack_e0);\n                    uStack_e8 = uVar14;\n                    iStack_e4 = iVar30;\n                    piStack_e0 = piVar17;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  piStack_1ec = (int *)0x0;\n                }\n                else {\n                  piStack_1ec = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                  if (piStack_1ec == (int *)0x0) {\n                    (**(code **)(puVar46 + 0x28520))(piVar17);\n                    uStack_1e4 = 0xc;\n                    piVar17 = piStack_e0;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar15 = *(int *)(puVar46 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);\n                    uStack_150 = 0;\n                    uStack_14c = 0;\n                    uStack_148 = 0;\n                    piStack_160 = piVar17;\n                    piStack_15c = piStack_1ec;\n                    iStack_158 = iVar30;\n                    uStack_154 = uVar14;\n                    uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);\n                    (**(code **)(puVar46 + 0x28520))(uStack_148);\n                    if (uStack_1e4 != 0) break;\n                    if ((*piVar17 != 0) || (*piStack_1ec != 0)) {\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    piVar33 = piStack_e0 + (uStack_1f0 - 1);\n                    uStack_1f0 = uVar14;\n                    while( true ) {\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }\n                    iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       );\n                  }\n                }\n                (**(code **)(puVar46 + 0x28520))(piVar17);\n                (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                piVar17 = piStack_e0;\n                if (uStack_1e4 == 1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }\n              uStack_1e4 = 0xc;\n              goto LAB_0004dbbc;\n            }\n          }\nLAB_0004e7e0:\n          piVar17 = piStack_e0;\n          uStack_1e4 = uVar11;\n          if (local_78 == (uint *)0x0) goto LAB_0004dbbc;\n          puVar23 = ppuVar24[7];\n          if (bVar1) {\n            piVar17 = piStack_74 + 2;\n            do {\n              piVar17[1] = -1;\n              piVar33 = piVar17 + 2;\n              *piVar17 = -1;\n              piVar17 = piVar33;\n            } while (piStack_74 + (int)local_78 * 2 != piVar33);\n            *piStack_74 = 0;\n            piStack_74[1] = uStack_e8;\n            if (((uint)puVar23 & 0x8000000) == 0) {\n              if (*(char *)(puVar43 + 0x16) < '\0') {\n                bVar22 = 0 < (int)puVar43[0x13];\n              }\n              else {\n                bVar22 = false;\n              }\n              uStack_1e4 = FUN_0004bc00(ppuVar24,&puStack_144,local_78,piStack_74,bVar22);\n              piVar17 = piStack_e0;\n              if (uStack_1e4 != 0) goto LAB_0004dbbc;\n              puVar23 = (uint *)*piStack_74;\n            }\n            else {\nLAB_0004e838:\n              puVar23 = (uint *)0x0;\n            }\n            puVar36 = (uint *)0x0;\n            piVar17 = piStack_74;\n            while( true ) {\n              if (puVar23 != (uint *)0xffffffff) {\n                puVar32 = (uint *)piVar17[1];\n                puVar39 = puVar23;\n                puVar38 = puVar32;\n                if (cStack_f8 != '\0') {\n                  puVar39 = puStack_124;\n                  if (puStack_128 != puVar23) {\n                    puVar39 = *(uint **)(iStack_138 + (int)puVar23 * 4);\n                  }\n                  *piVar17 = (int)puVar39;\n                  puVar38 = puStack_124;\n                  if (puStack_128 != puVar32) {\n                    puVar38 = *(uint **)(iStack_138 + (int)puVar32 * 4);\n                  }\n                }\n                *piVar17 = (int)puStack_16c + (int)puVar39;\n                piVar17[1] = (int)puStack_16c + (int)puVar38;\n              }\n              puVar36 = (uint *)((int)puVar36 + 1);\n              piVar17 = piVar17 + 2;\n              if (puVar36 == local_78) break;\n              puVar23 = (uint *)*piVar17;\n            }\n            if (0 < iStack_180) {\n              piVar17 = piStack_74 + (int)local_78 * 2;\n              do {\n                *piVar17 = -1;\n                piVar33 = piVar17 + 2;\n                piVar17[1] = -1;\n                piVar17 = piVar33;\n              } while (piStack_74 + (iStack_180 + (int)local_78) * 2 != piVar33);\n            }\n            piVar33 = (int *)puVar43[0x21];\n            piVar17 = piStack_e0;\n            uStack_1e4 = uVar11;\n            if (piVar33 != (int *)0x0) {\n              iVar29 = 0;\n              piVar3 = piStack_74;\n              do {\n                pcVar45 = *(code **)(puVar46 + 0x28520);\n                if (iVar29 == (int)local_78 + -1) goto LAB_0004dbc0;\n                if (*piVar33 != iVar29) {\n                  piVar3[2] = piStack_74[(*piVar33 + 1) * 2];\n                  piVar3[3] = piStack_74[(*piVar33 + 1) * 2 + 1];\n                }\n                iVar29 = iVar29 + 1;\n                piVar33 = piVar33 + 1;\n                piVar3 = piVar3 + 2;\n              } while( true );\n            }\n            goto LAB_0004dbbc;\n          }\n          *piStack_74 = 0;\n          piStack_74[1] = uStack_e8;\n          goto LAB_0004e838;\n        }" (if "if") (parenthesized_expression "(uVar14 != 0xffffffff)" (( "(") (binary_expression "uVar14 != 0xffffffff" (identifier "uVar14") (!= "!=") (number_literal "0xffffffff")) () ")")) (compound_statement "{\n          if (uVar14 == 0xfffffffe) goto LAB_0004dbf8;\n          uStack_e8 = uVar14;\n          if (((uint)ppuVar24[7] & 0x8000000) == 0) {\n            if (!bVar1) {\n              uVar6 = puVar43[0x13];\n              goto joined_r0x0004e94c;\n            }\n            pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n            iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                     piStack_e0[uVar14] + 0xc,uVar14);\n            if ((*(char *)(puVar43 + 0x16) < '\0') || (puVar43[0x13] != 0)) goto LAB_0004e170;\n          }\n          else {\n            uVar6 = puVar43[0x13];\njoined_r0x0004e94c:\n            if (uVar6 != 0) {\n              pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n              iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                       piStack_e0[uVar14] + 0xc,uVar14);\nLAB_0004e170:\n              iVar30 = iStack_e4;\n              puVar36 = puStack_f0;\n              if (uVar14 < 0x3fffffff) {\n                uStack_1f0 = uVar14 + 1;\n                piVar17 = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                if (piVar17 == (int *)0x0) goto LAB_0004dbf8;\n                if (puVar36[0x13] == 0) {\n                  piStack_15c = (int *)0x0;\n                  uStack_150 = 0;\n                  uStack_14c = 0;\n                  uStack_148 = 0;\n                  piStack_160 = piVar17;\n                  iStack_158 = iVar30;\n                  uStack_154 = uVar14;\n                  uStack_1e4 = FUN_0004d30c(&puStack_144,&piStack_160);\n                  (**(code **)(puVar46 + 0x28520))(uStack_148);\n                  if (uStack_1e4 == 0) {\n                    if (*piVar17 == 0) {\n                      (**(code **)(puVar46 + 0x28520))(piVar17);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar46 + 0x28520))(piStack_e0);\n                    uStack_e8 = uVar14;\n                    iStack_e4 = iVar30;\n                    piStack_e0 = piVar17;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  piStack_1ec = (int *)0x0;\n                }\n                else {\n                  piStack_1ec = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                  if (piStack_1ec == (int *)0x0) {\n                    (**(code **)(puVar46 + 0x28520))(piVar17);\n                    uStack_1e4 = 0xc;\n                    piVar17 = piStack_e0;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar15 = *(int *)(puVar46 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);\n                    uStack_150 = 0;\n                    uStack_14c = 0;\n                    uStack_148 = 0;\n                    piStack_160 = piVar17;\n                    piStack_15c = piStack_1ec;\n                    iStack_158 = iVar30;\n                    uStack_154 = uVar14;\n                    uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);\n                    (**(code **)(puVar46 + 0x28520))(uStack_148);\n                    if (uStack_1e4 != 0) break;\n                    if ((*piVar17 != 0) || (*piStack_1ec != 0)) {\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    piVar33 = piStack_e0 + (uStack_1f0 - 1);\n                    uStack_1f0 = uVar14;\n                    while( true ) {\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }\n                    iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       );\n                  }\n                }\n                (**(code **)(puVar46 + 0x28520))(piVar17);\n                (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                piVar17 = piStack_e0;\n                if (uStack_1e4 == 1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }\n              uStack_1e4 = 0xc;\n              goto LAB_0004dbbc;\n            }\n          }\nLAB_0004e7e0:\n          piVar17 = piStack_e0;\n          uStack_1e4 = uVar11;\n          if (local_78 == (uint *)0x0) goto LAB_0004dbbc;\n          puVar23 = ppuVar24[7];\n          if (bVar1) {\n            piVar17 = piStack_74 + 2;\n            do {\n              piVar17[1] = -1;\n              piVar33 = piVar17 + 2;\n              *piVar17 = -1;\n              piVar17 = piVar33;\n            } while (piStack_74 + (int)local_78 * 2 != piVar33);\n            *piStack_74 = 0;\n            piStack_74[1] = uStack_e8;\n            if (((uint)puVar23 & 0x8000000) == 0) {\n              if (*(char *)(puVar43 + 0x16) < '\0') {\n                bVar22 = 0 < (int)puVar43[0x13];\n              }\n              else {\n                bVar22 = false;\n              }\n              uStack_1e4 = FUN_0004bc00(ppuVar24,&puStack_144,local_78,piStack_74,bVar22);\n              piVar17 = piStack_e0;\n              if (uStack_1e4 != 0) goto LAB_0004dbbc;\n              puVar23 = (uint *)*piStack_74;\n            }\n            else {\nLAB_0004e838:\n              puVar23 = (uint *)0x0;\n            }\n            puVar36 = (uint *)0x0;\n            piVar17 = piStack_74;\n            while( true ) {\n              if (puVar23 != (uint *)0xffffffff) {\n                puVar32 = (uint *)piVar17[1];\n                puVar39 = puVar23;\n                puVar38 = puVar32;\n                if (cStack_f8 != '\0') {\n                  puVar39 = puStack_124;\n                  if (puStack_128 != puVar23) {\n                    puVar39 = *(uint **)(iStack_138 + (int)puVar23 * 4);\n                  }\n                  *piVar17 = (int)puVar39;\n                  puVar38 = puStack_124;\n                  if (puStack_128 != puVar32) {\n                    puVar38 = *(uint **)(iStack_138 + (int)puVar32 * 4);\n                  }\n                }\n                *piVar17 = (int)puStack_16c + (int)puVar39;\n                piVar17[1] = (int)puStack_16c + (int)puVar38;\n              }\n              puVar36 = (uint *)((int)puVar36 + 1);\n              piVar17 = piVar17 + 2;\n              if (puVar36 == local_78) break;\n              puVar23 = (uint *)*piVar17;\n            }\n            if (0 < iStack_180) {\n              piVar17 = piStack_74 + (int)local_78 * 2;\n              do {\n                *piVar17 = -1;\n                piVar33 = piVar17 + 2;\n                piVar17[1] = -1;\n                piVar17 = piVar33;\n              } while (piStack_74 + (iStack_180 + (int)local_78) * 2 != piVar33);\n            }\n            piVar33 = (int *)puVar43[0x21];\n            piVar17 = piStack_e0;\n            uStack_1e4 = uVar11;\n            if (piVar33 != (int *)0x0) {\n              iVar29 = 0;\n              piVar3 = piStack_74;\n              do {\n                pcVar45 = *(code **)(puVar46 + 0x28520);\n                if (iVar29 == (int)local_78 + -1) goto LAB_0004dbc0;\n                if (*piVar33 != iVar29) {\n                  piVar3[2] = piStack_74[(*piVar33 + 1) * 2];\n                  piVar3[3] = piStack_74[(*piVar33 + 1) * 2 + 1];\n                }\n                iVar29 = iVar29 + 1;\n                piVar33 = piVar33 + 1;\n                piVar3 = piVar3 + 2;\n              } while( true );\n            }\n            goto LAB_0004dbbc;\n          }\n          *piStack_74 = 0;\n          piStack_74[1] = uStack_e8;\n          goto LAB_0004e838;\n        }" ({ "{") (if_statement "if (uVar14 == 0xfffffffe) goto LAB_0004dbf8;" (if "if") (parenthesized_expression "(uVar14 == 0xfffffffe)" (( "(") (binary_expression "uVar14 == 0xfffffffe" (identifier "uVar14") (== "==") (number_literal "0xfffffffe")) () ")")) (goto_statement "goto LAB_0004dbf8;" (goto "goto") (statement_identifier "LAB_0004dbf8") (; ";"))) (expression_statement "uStack_e8 = uVar14;" (assignment_expression "uStack_e8 = uVar14" (identifier "uStack_e8") (= "=") (identifier "uVar14")) (; ";")) (if_statement "if (((uint)ppuVar24[7] & 0x8000000) == 0) {\n            if (!bVar1) {\n              uVar6 = puVar43[0x13];\n              goto joined_r0x0004e94c;\n            }\n            pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n            iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                     piStack_e0[uVar14] + 0xc,uVar14);\n            if ((*(char *)(puVar43 + 0x16) < '\0') || (puVar43[0x13] != 0)) goto LAB_0004e170;\n          }\n          else {\n            uVar6 = puVar43[0x13];\njoined_r0x0004e94c:\n            if (uVar6 != 0) {\n              pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n              iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                       piStack_e0[uVar14] + 0xc,uVar14);\nLAB_0004e170:\n              iVar30 = iStack_e4;\n              puVar36 = puStack_f0;\n              if (uVar14 < 0x3fffffff) {\n                uStack_1f0 = uVar14 + 1;\n                piVar17 = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                if (piVar17 == (int *)0x0) goto LAB_0004dbf8;\n                if (puVar36[0x13] == 0) {\n                  piStack_15c = (int *)0x0;\n                  uStack_150 = 0;\n                  uStack_14c = 0;\n                  uStack_148 = 0;\n                  piStack_160 = piVar17;\n                  iStack_158 = iVar30;\n                  uStack_154 = uVar14;\n                  uStack_1e4 = FUN_0004d30c(&puStack_144,&piStack_160);\n                  (**(code **)(puVar46 + 0x28520))(uStack_148);\n                  if (uStack_1e4 == 0) {\n                    if (*piVar17 == 0) {\n                      (**(code **)(puVar46 + 0x28520))(piVar17);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar46 + 0x28520))(piStack_e0);\n                    uStack_e8 = uVar14;\n                    iStack_e4 = iVar30;\n                    piStack_e0 = piVar17;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  piStack_1ec = (int *)0x0;\n                }\n                else {\n                  piStack_1ec = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                  if (piStack_1ec == (int *)0x0) {\n                    (**(code **)(puVar46 + 0x28520))(piVar17);\n                    uStack_1e4 = 0xc;\n                    piVar17 = piStack_e0;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar15 = *(int *)(puVar46 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);\n                    uStack_150 = 0;\n                    uStack_14c = 0;\n                    uStack_148 = 0;\n                    piStack_160 = piVar17;\n                    piStack_15c = piStack_1ec;\n                    iStack_158 = iVar30;\n                    uStack_154 = uVar14;\n                    uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);\n                    (**(code **)(puVar46 + 0x28520))(uStack_148);\n                    if (uStack_1e4 != 0) break;\n                    if ((*piVar17 != 0) || (*piStack_1ec != 0)) {\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    piVar33 = piStack_e0 + (uStack_1f0 - 1);\n                    uStack_1f0 = uVar14;\n                    while( true ) {\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }\n                    iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       );\n                  }\n                }\n                (**(code **)(puVar46 + 0x28520))(piVar17);\n                (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                piVar17 = piStack_e0;\n                if (uStack_1e4 == 1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }\n              uStack_1e4 = 0xc;\n              goto LAB_0004dbbc;\n            }\n          }" (if "if") (parenthesized_expression "(((uint)ppuVar24[7] & 0x8000000) == 0)" (( "(") (binary_expression "((uint)ppuVar24[7] & 0x8000000) == 0" (parenthesized_expression "((uint)ppuVar24[7] & 0x8000000)" (( "(") (binary_expression "(uint)ppuVar24[7] & 0x8000000" (cast_expression "(uint)ppuVar24[7]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "ppuVar24[7]" (identifier "ppuVar24") ([ "[") (number_literal "7") (] "]"))) (& "&") (number_literal "0x8000000")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            if (!bVar1) {\n              uVar6 = puVar43[0x13];\n              goto joined_r0x0004e94c;\n            }\n            pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n            iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                     piStack_e0[uVar14] + 0xc,uVar14);\n            if ((*(char *)(puVar43 + 0x16) < '\0') || (puVar43[0x13] != 0)) goto LAB_0004e170;\n          }" ({ "{") (if_statement "if (!bVar1) {\n              uVar6 = puVar43[0x13];\n              goto joined_r0x0004e94c;\n            }" (if "if") (parenthesized_expression "(!bVar1)" (( "(") (unary_expression "!bVar1" (! "!") (identifier "bVar1")) () ")")) (compound_statement "{\n              uVar6 = puVar43[0x13];\n              goto joined_r0x0004e94c;\n            }" ({ "{") (expression_statement "uVar6 = puVar43[0x13];" (assignment_expression "uVar6 = puVar43[0x13]" (identifier "uVar6") (= "=") (subscript_expression "puVar43[0x13]" (identifier "puVar43") ([ "[") (number_literal "0x13") (] "]"))) (; ";")) (goto_statement "goto joined_r0x0004e94c;" (goto "goto") (statement_identifier "joined_r0x0004e94c") (; ";")) (} "}"))) (expression_statement "pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);" (assignment_expression "pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c)" (identifier "pcVar45") (= "=") (cast_expression "(code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar46 + 0x28244) + 0x7d8c)" (( "(") (binary_expression "*(int *)(puVar46 + 0x28244) + 0x7d8c" (pointer_expression "*(int *)(puVar46 + 0x28244)" (* "*") (cast_expression "(int *)(puVar46 + 0x28244)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar46 + 0x28244)" (( "(") (binary_expression "puVar46 + 0x28244" (identifier "puVar46") (+ "+") (number_literal "0x28244")) () ")")))) (+ "+") (number_literal "0x7d8c")) () ")")))) (; ";")) (expression_statement "iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                     piStack_e0[uVar14] + 0xc,uVar14);" (assignment_expression "iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                     piStack_e0[uVar14] + 0xc,uVar14)" (identifier "iStack_e4") (= "=") (call_expression "FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                     piStack_e0[uVar14] + 0xc,uVar14)" (identifier "FUN_00047d8c") (argument_list "(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                     piStack_e0[uVar14] + 0xc,uVar14)" (( "(") (pointer_expression "&puStack_144" (& "&") (identifier "puStack_144")) (, ",") (pointer_expression "*(undefined4 *)(piStack_e0[uVar14] + 8)" (* "*") (cast_expression "(undefined4 *)(piStack_e0[uVar14] + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piStack_e0[uVar14] + 8)" (( "(") (binary_expression "piStack_e0[uVar14] + 8" (subscript_expression "piStack_e0[uVar14]" (identifier "piStack_e0") ([ "[") (identifier "uVar14") (] "]")) (+ "+") (number_literal "8")) () ")")))) (, ",") (binary_expression "piStack_e0[uVar14] + 0xc" (subscript_expression "piStack_e0[uVar14]" (identifier "piStack_e0") ([ "[") (identifier "uVar14") (] "]")) (+ "+") (number_literal "0xc")) (, ",") (identifier "uVar14") () ")")))) (; ";")) (if_statement "if ((*(char *)(puVar43 + 0x16) < '\0') || (puVar43[0x13] != 0)) goto LAB_0004e170;" (if "if") (parenthesized_expression "((*(char *)(puVar43 + 0x16) < '\0') || (puVar43[0x13] != 0))" (( "(") (binary_expression "(*(char *)(puVar43 + 0x16) < '\0') || (puVar43[0x13] != 0)" (parenthesized_expression "(*(char *)(puVar43 + 0x16) < '\0')" (( "(") (binary_expression "*(char *)(puVar43 + 0x16) < '\0'" (pointer_expression "*(char *)(puVar43 + 0x16)" (* "*") (cast_expression "(char *)(puVar43 + 0x16)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar43 + 0x16)" (( "(") (binary_expression "puVar43 + 0x16" (identifier "puVar43") (+ "+") (number_literal "0x16")) () ")")))) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(puVar43[0x13] != 0)" (( "(") (binary_expression "puVar43[0x13] != 0" (subscript_expression "puVar43[0x13]" (identifier "puVar43") ([ "[") (number_literal "0x13") (] "]")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_0004e170;" (goto "goto") (statement_identifier "LAB_0004e170") (; ";"))) (} "}")) (else_clause "else {\n            uVar6 = puVar43[0x13];\njoined_r0x0004e94c:\n            if (uVar6 != 0) {\n              pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n              iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                       piStack_e0[uVar14] + 0xc,uVar14);\nLAB_0004e170:\n              iVar30 = iStack_e4;\n              puVar36 = puStack_f0;\n              if (uVar14 < 0x3fffffff) {\n                uStack_1f0 = uVar14 + 1;\n                piVar17 = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                if (piVar17 == (int *)0x0) goto LAB_0004dbf8;\n                if (puVar36[0x13] == 0) {\n                  piStack_15c = (int *)0x0;\n                  uStack_150 = 0;\n                  uStack_14c = 0;\n                  uStack_148 = 0;\n                  piStack_160 = piVar17;\n                  iStack_158 = iVar30;\n                  uStack_154 = uVar14;\n                  uStack_1e4 = FUN_0004d30c(&puStack_144,&piStack_160);\n                  (**(code **)(puVar46 + 0x28520))(uStack_148);\n                  if (uStack_1e4 == 0) {\n                    if (*piVar17 == 0) {\n                      (**(code **)(puVar46 + 0x28520))(piVar17);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar46 + 0x28520))(piStack_e0);\n                    uStack_e8 = uVar14;\n                    iStack_e4 = iVar30;\n                    piStack_e0 = piVar17;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  piStack_1ec = (int *)0x0;\n                }\n                else {\n                  piStack_1ec = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                  if (piStack_1ec == (int *)0x0) {\n                    (**(code **)(puVar46 + 0x28520))(piVar17);\n                    uStack_1e4 = 0xc;\n                    piVar17 = piStack_e0;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar15 = *(int *)(puVar46 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);\n                    uStack_150 = 0;\n                    uStack_14c = 0;\n                    uStack_148 = 0;\n                    piStack_160 = piVar17;\n                    piStack_15c = piStack_1ec;\n                    iStack_158 = iVar30;\n                    uStack_154 = uVar14;\n                    uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);\n                    (**(code **)(puVar46 + 0x28520))(uStack_148);\n                    if (uStack_1e4 != 0) break;\n                    if ((*piVar17 != 0) || (*piStack_1ec != 0)) {\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    piVar33 = piStack_e0 + (uStack_1f0 - 1);\n                    uStack_1f0 = uVar14;\n                    while( true ) {\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }\n                    iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       );\n                  }\n                }\n                (**(code **)(puVar46 + 0x28520))(piVar17);\n                (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                piVar17 = piStack_e0;\n                if (uStack_1e4 == 1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }\n              uStack_1e4 = 0xc;\n              goto LAB_0004dbbc;\n            }\n          }" (else "else") (compound_statement "{\n            uVar6 = puVar43[0x13];\njoined_r0x0004e94c:\n            if (uVar6 != 0) {\n              pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n              iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                       piStack_e0[uVar14] + 0xc,uVar14);\nLAB_0004e170:\n              iVar30 = iStack_e4;\n              puVar36 = puStack_f0;\n              if (uVar14 < 0x3fffffff) {\n                uStack_1f0 = uVar14 + 1;\n                piVar17 = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                if (piVar17 == (int *)0x0) goto LAB_0004dbf8;\n                if (puVar36[0x13] == 0) {\n                  piStack_15c = (int *)0x0;\n                  uStack_150 = 0;\n                  uStack_14c = 0;\n                  uStack_148 = 0;\n                  piStack_160 = piVar17;\n                  iStack_158 = iVar30;\n                  uStack_154 = uVar14;\n                  uStack_1e4 = FUN_0004d30c(&puStack_144,&piStack_160);\n                  (**(code **)(puVar46 + 0x28520))(uStack_148);\n                  if (uStack_1e4 == 0) {\n                    if (*piVar17 == 0) {\n                      (**(code **)(puVar46 + 0x28520))(piVar17);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar46 + 0x28520))(piStack_e0);\n                    uStack_e8 = uVar14;\n                    iStack_e4 = iVar30;\n                    piStack_e0 = piVar17;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  piStack_1ec = (int *)0x0;\n                }\n                else {\n                  piStack_1ec = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                  if (piStack_1ec == (int *)0x0) {\n                    (**(code **)(puVar46 + 0x28520))(piVar17);\n                    uStack_1e4 = 0xc;\n                    piVar17 = piStack_e0;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar15 = *(int *)(puVar46 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);\n                    uStack_150 = 0;\n                    uStack_14c = 0;\n                    uStack_148 = 0;\n                    piStack_160 = piVar17;\n                    piStack_15c = piStack_1ec;\n                    iStack_158 = iVar30;\n                    uStack_154 = uVar14;\n                    uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);\n                    (**(code **)(puVar46 + 0x28520))(uStack_148);\n                    if (uStack_1e4 != 0) break;\n                    if ((*piVar17 != 0) || (*piStack_1ec != 0)) {\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    piVar33 = piStack_e0 + (uStack_1f0 - 1);\n                    uStack_1f0 = uVar14;\n                    while( true ) {\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }\n                    iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       );\n                  }\n                }\n                (**(code **)(puVar46 + 0x28520))(piVar17);\n                (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                piVar17 = piStack_e0;\n                if (uStack_1e4 == 1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }\n              uStack_1e4 = 0xc;\n              goto LAB_0004dbbc;\n            }\n          }" ({ "{") (expression_statement "uVar6 = puVar43[0x13];" (assignment_expression "uVar6 = puVar43[0x13]" (identifier "uVar6") (= "=") (subscript_expression "puVar43[0x13]" (identifier "puVar43") ([ "[") (number_literal "0x13") (] "]"))) (; ";")) (labeled_statement "joined_r0x0004e94c:\n            if (uVar6 != 0) {\n              pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n              iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                       piStack_e0[uVar14] + 0xc,uVar14);\nLAB_0004e170:\n              iVar30 = iStack_e4;\n              puVar36 = puStack_f0;\n              if (uVar14 < 0x3fffffff) {\n                uStack_1f0 = uVar14 + 1;\n                piVar17 = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                if (piVar17 == (int *)0x0) goto LAB_0004dbf8;\n                if (puVar36[0x13] == 0) {\n                  piStack_15c = (int *)0x0;\n                  uStack_150 = 0;\n                  uStack_14c = 0;\n                  uStack_148 = 0;\n                  piStack_160 = piVar17;\n                  iStack_158 = iVar30;\n                  uStack_154 = uVar14;\n                  uStack_1e4 = FUN_0004d30c(&puStack_144,&piStack_160);\n                  (**(code **)(puVar46 + 0x28520))(uStack_148);\n                  if (uStack_1e4 == 0) {\n                    if (*piVar17 == 0) {\n                      (**(code **)(puVar46 + 0x28520))(piVar17);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar46 + 0x28520))(piStack_e0);\n                    uStack_e8 = uVar14;\n                    iStack_e4 = iVar30;\n                    piStack_e0 = piVar17;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  piStack_1ec = (int *)0x0;\n                }\n                else {\n                  piStack_1ec = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                  if (piStack_1ec == (int *)0x0) {\n                    (**(code **)(puVar46 + 0x28520))(piVar17);\n                    uStack_1e4 = 0xc;\n                    piVar17 = piStack_e0;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar15 = *(int *)(puVar46 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);\n                    uStack_150 = 0;\n                    uStack_14c = 0;\n                    uStack_148 = 0;\n                    piStack_160 = piVar17;\n                    piStack_15c = piStack_1ec;\n                    iStack_158 = iVar30;\n                    uStack_154 = uVar14;\n                    uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);\n                    (**(code **)(puVar46 + 0x28520))(uStack_148);\n                    if (uStack_1e4 != 0) break;\n                    if ((*piVar17 != 0) || (*piStack_1ec != 0)) {\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    piVar33 = piStack_e0 + (uStack_1f0 - 1);\n                    uStack_1f0 = uVar14;\n                    while( true ) {\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }\n                    iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       );\n                  }\n                }\n                (**(code **)(puVar46 + 0x28520))(piVar17);\n                (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                piVar17 = piStack_e0;\n                if (uStack_1e4 == 1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }\n              uStack_1e4 = 0xc;\n              goto LAB_0004dbbc;\n            }" (statement_identifier "joined_r0x0004e94c") (: ":") (if_statement "if (uVar6 != 0) {\n              pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n              iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                       piStack_e0[uVar14] + 0xc,uVar14);\nLAB_0004e170:\n              iVar30 = iStack_e4;\n              puVar36 = puStack_f0;\n              if (uVar14 < 0x3fffffff) {\n                uStack_1f0 = uVar14 + 1;\n                piVar17 = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                if (piVar17 == (int *)0x0) goto LAB_0004dbf8;\n                if (puVar36[0x13] == 0) {\n                  piStack_15c = (int *)0x0;\n                  uStack_150 = 0;\n                  uStack_14c = 0;\n                  uStack_148 = 0;\n                  piStack_160 = piVar17;\n                  iStack_158 = iVar30;\n                  uStack_154 = uVar14;\n                  uStack_1e4 = FUN_0004d30c(&puStack_144,&piStack_160);\n                  (**(code **)(puVar46 + 0x28520))(uStack_148);\n                  if (uStack_1e4 == 0) {\n                    if (*piVar17 == 0) {\n                      (**(code **)(puVar46 + 0x28520))(piVar17);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar46 + 0x28520))(piStack_e0);\n                    uStack_e8 = uVar14;\n                    iStack_e4 = iVar30;\n                    piStack_e0 = piVar17;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  piStack_1ec = (int *)0x0;\n                }\n                else {\n                  piStack_1ec = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                  if (piStack_1ec == (int *)0x0) {\n                    (**(code **)(puVar46 + 0x28520))(piVar17);\n                    uStack_1e4 = 0xc;\n                    piVar17 = piStack_e0;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar15 = *(int *)(puVar46 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);\n                    uStack_150 = 0;\n                    uStack_14c = 0;\n                    uStack_148 = 0;\n                    piStack_160 = piVar17;\n                    piStack_15c = piStack_1ec;\n                    iStack_158 = iVar30;\n                    uStack_154 = uVar14;\n                    uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);\n                    (**(code **)(puVar46 + 0x28520))(uStack_148);\n                    if (uStack_1e4 != 0) break;\n                    if ((*piVar17 != 0) || (*piStack_1ec != 0)) {\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    piVar33 = piStack_e0 + (uStack_1f0 - 1);\n                    uStack_1f0 = uVar14;\n                    while( true ) {\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }\n                    iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       );\n                  }\n                }\n                (**(code **)(puVar46 + 0x28520))(piVar17);\n                (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                piVar17 = piStack_e0;\n                if (uStack_1e4 == 1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }\n              uStack_1e4 = 0xc;\n              goto LAB_0004dbbc;\n            }" (if "if") (parenthesized_expression "(uVar6 != 0)" (( "(") (binary_expression "uVar6 != 0" (identifier "uVar6") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);\n              iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                       piStack_e0[uVar14] + 0xc,uVar14);\nLAB_0004e170:\n              iVar30 = iStack_e4;\n              puVar36 = puStack_f0;\n              if (uVar14 < 0x3fffffff) {\n                uStack_1f0 = uVar14 + 1;\n                piVar17 = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                if (piVar17 == (int *)0x0) goto LAB_0004dbf8;\n                if (puVar36[0x13] == 0) {\n                  piStack_15c = (int *)0x0;\n                  uStack_150 = 0;\n                  uStack_14c = 0;\n                  uStack_148 = 0;\n                  piStack_160 = piVar17;\n                  iStack_158 = iVar30;\n                  uStack_154 = uVar14;\n                  uStack_1e4 = FUN_0004d30c(&puStack_144,&piStack_160);\n                  (**(code **)(puVar46 + 0x28520))(uStack_148);\n                  if (uStack_1e4 == 0) {\n                    if (*piVar17 == 0) {\n                      (**(code **)(puVar46 + 0x28520))(piVar17);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar46 + 0x28520))(piStack_e0);\n                    uStack_e8 = uVar14;\n                    iStack_e4 = iVar30;\n                    piStack_e0 = piVar17;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  piStack_1ec = (int *)0x0;\n                }\n                else {\n                  piStack_1ec = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                  if (piStack_1ec == (int *)0x0) {\n                    (**(code **)(puVar46 + 0x28520))(piVar17);\n                    uStack_1e4 = 0xc;\n                    piVar17 = piStack_e0;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar15 = *(int *)(puVar46 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);\n                    uStack_150 = 0;\n                    uStack_14c = 0;\n                    uStack_148 = 0;\n                    piStack_160 = piVar17;\n                    piStack_15c = piStack_1ec;\n                    iStack_158 = iVar30;\n                    uStack_154 = uVar14;\n                    uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);\n                    (**(code **)(puVar46 + 0x28520))(uStack_148);\n                    if (uStack_1e4 != 0) break;\n                    if ((*piVar17 != 0) || (*piStack_1ec != 0)) {\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    piVar33 = piStack_e0 + (uStack_1f0 - 1);\n                    uStack_1f0 = uVar14;\n                    while( true ) {\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }\n                    iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       );\n                  }\n                }\n                (**(code **)(puVar46 + 0x28520))(piVar17);\n                (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                piVar17 = piStack_e0;\n                if (uStack_1e4 == 1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }\n              uStack_1e4 = 0xc;\n              goto LAB_0004dbbc;\n            }" ({ "{") (expression_statement "pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);" (assignment_expression "pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c)" (identifier "pcVar45") (= "=") (cast_expression "(code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar46 + 0x28244) + 0x7d8c)" (( "(") (binary_expression "*(int *)(puVar46 + 0x28244) + 0x7d8c" (pointer_expression "*(int *)(puVar46 + 0x28244)" (* "*") (cast_expression "(int *)(puVar46 + 0x28244)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar46 + 0x28244)" (( "(") (binary_expression "puVar46 + 0x28244" (identifier "puVar46") (+ "+") (number_literal "0x28244")) () ")")))) (+ "+") (number_literal "0x7d8c")) () ")")))) (; ";")) (expression_statement "iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                       piStack_e0[uVar14] + 0xc,uVar14);" (assignment_expression "iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                       piStack_e0[uVar14] + 0xc,uVar14)" (identifier "iStack_e4") (= "=") (call_expression "FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                       piStack_e0[uVar14] + 0xc,uVar14)" (identifier "FUN_00047d8c") (argument_list "(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),\n                                       piStack_e0[uVar14] + 0xc,uVar14)" (( "(") (pointer_expression "&puStack_144" (& "&") (identifier "puStack_144")) (, ",") (pointer_expression "*(undefined4 *)(piStack_e0[uVar14] + 8)" (* "*") (cast_expression "(undefined4 *)(piStack_e0[uVar14] + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piStack_e0[uVar14] + 8)" (( "(") (binary_expression "piStack_e0[uVar14] + 8" (subscript_expression "piStack_e0[uVar14]" (identifier "piStack_e0") ([ "[") (identifier "uVar14") (] "]")) (+ "+") (number_literal "8")) () ")")))) (, ",") (binary_expression "piStack_e0[uVar14] + 0xc" (subscript_expression "piStack_e0[uVar14]" (identifier "piStack_e0") ([ "[") (identifier "uVar14") (] "]")) (+ "+") (number_literal "0xc")) (, ",") (identifier "uVar14") () ")")))) (; ";")) (labeled_statement "LAB_0004e170:\n              iVar30 = iStack_e4;" (statement_identifier "LAB_0004e170") (: ":") (expression_statement "iVar30 = iStack_e4;" (assignment_expression "iVar30 = iStack_e4" (identifier "iVar30") (= "=") (identifier "iStack_e4")) (; ";"))) (expression_statement "puVar36 = puStack_f0;" (assignment_expression "puVar36 = puStack_f0" (identifier "puVar36") (= "=") (identifier "puStack_f0")) (; ";")) (if_statement "if (uVar14 < 0x3fffffff) {\n                uStack_1f0 = uVar14 + 1;\n                piVar17 = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                if (piVar17 == (int *)0x0) goto LAB_0004dbf8;\n                if (puVar36[0x13] == 0) {\n                  piStack_15c = (int *)0x0;\n                  uStack_150 = 0;\n                  uStack_14c = 0;\n                  uStack_148 = 0;\n                  piStack_160 = piVar17;\n                  iStack_158 = iVar30;\n                  uStack_154 = uVar14;\n                  uStack_1e4 = FUN_0004d30c(&puStack_144,&piStack_160);\n                  (**(code **)(puVar46 + 0x28520))(uStack_148);\n                  if (uStack_1e4 == 0) {\n                    if (*piVar17 == 0) {\n                      (**(code **)(puVar46 + 0x28520))(piVar17);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar46 + 0x28520))(piStack_e0);\n                    uStack_e8 = uVar14;\n                    iStack_e4 = iVar30;\n                    piStack_e0 = piVar17;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  piStack_1ec = (int *)0x0;\n                }\n                else {\n                  piStack_1ec = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                  if (piStack_1ec == (int *)0x0) {\n                    (**(code **)(puVar46 + 0x28520))(piVar17);\n                    uStack_1e4 = 0xc;\n                    piVar17 = piStack_e0;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar15 = *(int *)(puVar46 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);\n                    uStack_150 = 0;\n                    uStack_14c = 0;\n                    uStack_148 = 0;\n                    piStack_160 = piVar17;\n                    piStack_15c = piStack_1ec;\n                    iStack_158 = iVar30;\n                    uStack_154 = uVar14;\n                    uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);\n                    (**(code **)(puVar46 + 0x28520))(uStack_148);\n                    if (uStack_1e4 != 0) break;\n                    if ((*piVar17 != 0) || (*piStack_1ec != 0)) {\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    piVar33 = piStack_e0 + (uStack_1f0 - 1);\n                    uStack_1f0 = uVar14;\n                    while( true ) {\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }\n                    iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       );\n                  }\n                }\n                (**(code **)(puVar46 + 0x28520))(piVar17);\n                (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                piVar17 = piStack_e0;\n                if (uStack_1e4 == 1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }" (if "if") (parenthesized_expression "(uVar14 < 0x3fffffff)" (( "(") (binary_expression "uVar14 < 0x3fffffff" (identifier "uVar14") (< "<") (number_literal "0x3fffffff")) () ")")) (compound_statement "{\n                uStack_1f0 = uVar14 + 1;\n                piVar17 = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                if (piVar17 == (int *)0x0) goto LAB_0004dbf8;\n                if (puVar36[0x13] == 0) {\n                  piStack_15c = (int *)0x0;\n                  uStack_150 = 0;\n                  uStack_14c = 0;\n                  uStack_148 = 0;\n                  piStack_160 = piVar17;\n                  iStack_158 = iVar30;\n                  uStack_154 = uVar14;\n                  uStack_1e4 = FUN_0004d30c(&puStack_144,&piStack_160);\n                  (**(code **)(puVar46 + 0x28520))(uStack_148);\n                  if (uStack_1e4 == 0) {\n                    if (*piVar17 == 0) {\n                      (**(code **)(puVar46 + 0x28520))(piVar17);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar46 + 0x28520))(piStack_e0);\n                    uStack_e8 = uVar14;\n                    iStack_e4 = iVar30;\n                    piStack_e0 = piVar17;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  piStack_1ec = (int *)0x0;\n                }\n                else {\n                  piStack_1ec = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                  if (piStack_1ec == (int *)0x0) {\n                    (**(code **)(puVar46 + 0x28520))(piVar17);\n                    uStack_1e4 = 0xc;\n                    piVar17 = piStack_e0;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar15 = *(int *)(puVar46 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);\n                    uStack_150 = 0;\n                    uStack_14c = 0;\n                    uStack_148 = 0;\n                    piStack_160 = piVar17;\n                    piStack_15c = piStack_1ec;\n                    iStack_158 = iVar30;\n                    uStack_154 = uVar14;\n                    uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);\n                    (**(code **)(puVar46 + 0x28520))(uStack_148);\n                    if (uStack_1e4 != 0) break;\n                    if ((*piVar17 != 0) || (*piStack_1ec != 0)) {\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    piVar33 = piStack_e0 + (uStack_1f0 - 1);\n                    uStack_1f0 = uVar14;\n                    while( true ) {\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }\n                    iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       );\n                  }\n                }\n                (**(code **)(puVar46 + 0x28520))(piVar17);\n                (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                piVar17 = piStack_e0;\n                if (uStack_1e4 == 1) goto LAB_0004e2d4;\n                goto LAB_0004dbbc;\n              }" ({ "{") (expression_statement "uStack_1f0 = uVar14 + 1;" (assignment_expression "uStack_1f0 = uVar14 + 1" (identifier "uStack_1f0") (= "=") (binary_expression "uVar14 + 1" (identifier "uVar14") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar17 = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);" (assignment_expression "piVar17 = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4)" (identifier "piVar17") (= "=") (cast_expression "(int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4)" (parenthesized_expression "(**(code **)(puVar46 + 0x28450))" (( "(") (pointer_expression "**(code **)(puVar46 + 0x28450)" (* "*") (pointer_expression "*(code **)(puVar46 + 0x28450)" (* "*") (cast_expression "(code **)(puVar46 + 0x28450)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar46 + 0x28450)" (( "(") (binary_expression "puVar46 + 0x28450" (identifier "puVar46") (+ "+") (number_literal "0x28450")) () ")"))))) () ")")) (argument_list "(uStack_1f0 * 4)" (( "(") (binary_expression "uStack_1f0 * 4" (identifier "uStack_1f0") (* "*") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (piVar17 == (int *)0x0) goto LAB_0004dbf8;" (if "if") (parenthesized_expression "(piVar17 == (int *)0x0)" (( "(") (binary_expression "piVar17 == (int *)0x0" (identifier "piVar17") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0004dbf8;" (goto "goto") (statement_identifier "LAB_0004dbf8") (; ";"))) (if_statement "if (puVar36[0x13] == 0) {\n                  piStack_15c = (int *)0x0;\n                  uStack_150 = 0;\n                  uStack_14c = 0;\n                  uStack_148 = 0;\n                  piStack_160 = piVar17;\n                  iStack_158 = iVar30;\n                  uStack_154 = uVar14;\n                  uStack_1e4 = FUN_0004d30c(&puStack_144,&piStack_160);\n                  (**(code **)(puVar46 + 0x28520))(uStack_148);\n                  if (uStack_1e4 == 0) {\n                    if (*piVar17 == 0) {\n                      (**(code **)(puVar46 + 0x28520))(piVar17);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar46 + 0x28520))(piStack_e0);\n                    uStack_e8 = uVar14;\n                    iStack_e4 = iVar30;\n                    piStack_e0 = piVar17;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  piStack_1ec = (int *)0x0;\n                }\n                else {\n                  piStack_1ec = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                  if (piStack_1ec == (int *)0x0) {\n                    (**(code **)(puVar46 + 0x28520))(piVar17);\n                    uStack_1e4 = 0xc;\n                    piVar17 = piStack_e0;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar15 = *(int *)(puVar46 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);\n                    uStack_150 = 0;\n                    uStack_14c = 0;\n                    uStack_148 = 0;\n                    piStack_160 = piVar17;\n                    piStack_15c = piStack_1ec;\n                    iStack_158 = iVar30;\n                    uStack_154 = uVar14;\n                    uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);\n                    (**(code **)(puVar46 + 0x28520))(uStack_148);\n                    if (uStack_1e4 != 0) break;\n                    if ((*piVar17 != 0) || (*piStack_1ec != 0)) {\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    piVar33 = piStack_e0 + (uStack_1f0 - 1);\n                    uStack_1f0 = uVar14;\n                    while( true ) {\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }\n                    iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       );\n                  }\n                }" (if "if") (parenthesized_expression "(puVar36[0x13] == 0)" (( "(") (binary_expression "puVar36[0x13] == 0" (subscript_expression "puVar36[0x13]" (identifier "puVar36") ([ "[") (number_literal "0x13") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  piStack_15c = (int *)0x0;\n                  uStack_150 = 0;\n                  uStack_14c = 0;\n                  uStack_148 = 0;\n                  piStack_160 = piVar17;\n                  iStack_158 = iVar30;\n                  uStack_154 = uVar14;\n                  uStack_1e4 = FUN_0004d30c(&puStack_144,&piStack_160);\n                  (**(code **)(puVar46 + 0x28520))(uStack_148);\n                  if (uStack_1e4 == 0) {\n                    if (*piVar17 == 0) {\n                      (**(code **)(puVar46 + 0x28520))(piVar17);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar46 + 0x28520))(piStack_e0);\n                    uStack_e8 = uVar14;\n                    iStack_e4 = iVar30;\n                    piStack_e0 = piVar17;\n                    goto LAB_0004e7e0;\n                  }\nLAB_0004ed18:\n                  piStack_1ec = (int *)0x0;\n                }" ({ "{") (expression_statement "piStack_15c = (int *)0x0;" (assignment_expression "piStack_15c = (int *)0x0" (identifier "piStack_15c") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "uStack_150 = 0;" (assignment_expression "uStack_150 = 0" (identifier "uStack_150") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_14c = 0;" (assignment_expression "uStack_14c = 0" (identifier "uStack_14c") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_148 = 0;" (assignment_expression "uStack_148 = 0" (identifier "uStack_148") (= "=") (number_literal "0")) (; ";")) (expression_statement "piStack_160 = piVar17;" (assignment_expression "piStack_160 = piVar17" (identifier "piStack_160") (= "=") (identifier "piVar17")) (; ";")) (expression_statement "iStack_158 = iVar30;" (assignment_expression "iStack_158 = iVar30" (identifier "iStack_158") (= "=") (identifier "iVar30")) (; ";")) (expression_statement "uStack_154 = uVar14;" (assignment_expression "uStack_154 = uVar14" (identifier "uStack_154") (= "=") (identifier "uVar14")) (; ";")) (expression_statement "uStack_1e4 = FUN_0004d30c(&puStack_144,&piStack_160);" (assignment_expression "uStack_1e4 = FUN_0004d30c(&puStack_144,&piStack_160)" (identifier "uStack_1e4") (= "=") (call_expression "FUN_0004d30c(&puStack_144,&piStack_160)" (identifier "FUN_0004d30c") (argument_list "(&puStack_144,&piStack_160)" (( "(") (pointer_expression "&puStack_144" (& "&") (identifier "puStack_144")) (, ",") (pointer_expression "&piStack_160" (& "&") (identifier "piStack_160")) () ")")))) (; ";")) (expression_statement "(**(code **)(puVar46 + 0x28520))(uStack_148);" (call_expression "(**(code **)(puVar46 + 0x28520))(uStack_148)" (parenthesized_expression "(**(code **)(puVar46 + 0x28520))" (( "(") (pointer_expression "**(code **)(puVar46 + 0x28520)" (* "*") (pointer_expression "*(code **)(puVar46 + 0x28520)" (* "*") (cast_expression "(code **)(puVar46 + 0x28520)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar46 + 0x28520)" (( "(") (binary_expression "puVar46 + 0x28520" (identifier "puVar46") (+ "+") (number_literal "0x28520")) () ")"))))) () ")")) (argument_list "(uStack_148)" (( "(") (identifier "uStack_148") () ")"))) (; ";")) (if_statement "if (uStack_1e4 == 0) {\n                    if (*piVar17 == 0) {\n                      (**(code **)(puVar46 + 0x28520))(piVar17);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar46 + 0x28520))(piStack_e0);\n                    uStack_e8 = uVar14;\n                    iStack_e4 = iVar30;\n                    piStack_e0 = piVar17;\n                    goto LAB_0004e7e0;\n                  }" (if "if") (parenthesized_expression "(uStack_1e4 == 0)" (( "(") (binary_expression "uStack_1e4 == 0" (identifier "uStack_1e4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    if (*piVar17 == 0) {\n                      (**(code **)(puVar46 + 0x28520))(piVar17);\n                      goto LAB_0004e2d4;\n                    }\nLAB_0004e9f8:\n                    (**(code **)(puVar46 + 0x28520))(piStack_e0);\n                    uStack_e8 = uVar14;\n                    iStack_e4 = iVar30;\n                    piStack_e0 = piVar17;\n                    goto LAB_0004e7e0;\n                  }" ({ "{") (if_statement "if (*piVar17 == 0) {\n                      (**(code **)(puVar46 + 0x28520))(piVar17);\n                      goto LAB_0004e2d4;\n                    }" (if "if") (parenthesized_expression "(*piVar17 == 0)" (( "(") (binary_expression "*piVar17 == 0" (pointer_expression "*piVar17" (* "*") (identifier "piVar17")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                      (**(code **)(puVar46 + 0x28520))(piVar17);\n                      goto LAB_0004e2d4;\n                    }" ({ "{") (expression_statement "(**(code **)(puVar46 + 0x28520))(piVar17);" (call_expression "(**(code **)(puVar46 + 0x28520))(piVar17)" (parenthesized_expression "(**(code **)(puVar46 + 0x28520))" (( "(") (pointer_expression "**(code **)(puVar46 + 0x28520)" (* "*") (pointer_expression "*(code **)(puVar46 + 0x28520)" (* "*") (cast_expression "(code **)(puVar46 + 0x28520)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar46 + 0x28520)" (( "(") (binary_expression "puVar46 + 0x28520" (identifier "puVar46") (+ "+") (number_literal "0x28520")) () ")"))))) () ")")) (argument_list "(piVar17)" (( "(") (identifier "piVar17") () ")"))) (; ";")) (goto_statement "goto LAB_0004e2d4;" (goto "goto") (statement_identifier "LAB_0004e2d4") (; ";")) (} "}"))) (labeled_statement "LAB_0004e9f8:\n                    (**(code **)(puVar46 + 0x28520))(piStack_e0);" (statement_identifier "LAB_0004e9f8") (: ":") (expression_statement "(**(code **)(puVar46 + 0x28520))(piStack_e0);" (call_expression "(**(code **)(puVar46 + 0x28520))(piStack_e0)" (parenthesized_expression "(**(code **)(puVar46 + 0x28520))" (( "(") (pointer_expression "**(code **)(puVar46 + 0x28520)" (* "*") (pointer_expression "*(code **)(puVar46 + 0x28520)" (* "*") (cast_expression "(code **)(puVar46 + 0x28520)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar46 + 0x28520)" (( "(") (binary_expression "puVar46 + 0x28520" (identifier "puVar46") (+ "+") (number_literal "0x28520")) () ")"))))) () ")")) (argument_list "(piStack_e0)" (( "(") (identifier "piStack_e0") () ")"))) (; ";"))) (expression_statement "uStack_e8 = uVar14;" (assignment_expression "uStack_e8 = uVar14" (identifier "uStack_e8") (= "=") (identifier "uVar14")) (; ";")) (expression_statement "iStack_e4 = iVar30;" (assignment_expression "iStack_e4 = iVar30" (identifier "iStack_e4") (= "=") (identifier "iVar30")) (; ";")) (expression_statement "piStack_e0 = piVar17;" (assignment_expression "piStack_e0 = piVar17" (identifier "piStack_e0") (= "=") (identifier "piVar17")) (; ";")) (goto_statement "goto LAB_0004e7e0;" (goto "goto") (statement_identifier "LAB_0004e7e0") (; ";")) (} "}"))) (labeled_statement "LAB_0004ed18:\n                  piStack_1ec = (int *)0x0;" (statement_identifier "LAB_0004ed18") (: ":") (expression_statement "piStack_1ec = (int *)0x0;" (assignment_expression "piStack_1ec = (int *)0x0" (identifier "piStack_1ec") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";"))) (} "}")) (else_clause "else {\n                  piStack_1ec = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                  if (piStack_1ec == (int *)0x0) {\n                    (**(code **)(puVar46 + 0x28520))(piVar17);\n                    uStack_1e4 = 0xc;\n                    piVar17 = piStack_e0;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar15 = *(int *)(puVar46 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);\n                    uStack_150 = 0;\n                    uStack_14c = 0;\n                    uStack_148 = 0;\n                    piStack_160 = piVar17;\n                    piStack_15c = piStack_1ec;\n                    iStack_158 = iVar30;\n                    uStack_154 = uVar14;\n                    uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);\n                    (**(code **)(puVar46 + 0x28520))(uStack_148);\n                    if (uStack_1e4 != 0) break;\n                    if ((*piVar17 != 0) || (*piStack_1ec != 0)) {\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    piVar33 = piStack_e0 + (uStack_1f0 - 1);\n                    uStack_1f0 = uVar14;\n                    while( true ) {\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }\n                    iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       );\n                  }\n                }" (else "else") (compound_statement "{\n                  piStack_1ec = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);\n                  if (piStack_1ec == (int *)0x0) {\n                    (**(code **)(puVar46 + 0x28520))(piVar17);\n                    uStack_1e4 = 0xc;\n                    piVar17 = piStack_e0;\n                    goto LAB_0004dbbc;\n                  }\n                  iVar15 = *(int *)(puVar46 + 0x2829c);\n                  while( true ) {\n                    (**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);\n                    uStack_150 = 0;\n                    uStack_14c = 0;\n                    uStack_148 = 0;\n                    piStack_160 = piVar17;\n                    piStack_15c = piStack_1ec;\n                    iStack_158 = iVar30;\n                    uStack_154 = uVar14;\n                    uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);\n                    (**(code **)(puVar46 + 0x28520))(uStack_148);\n                    if (uStack_1e4 != 0) break;\n                    if ((*piVar17 != 0) || (*piStack_1ec != 0)) {\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    piVar33 = piStack_e0 + (uStack_1f0 - 1);\n                    uStack_1f0 = uVar14;\n                    while( true ) {\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }\n                    iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       );\n                  }\n                }" ({ "{") (expression_statement "piStack_1ec = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);" (assignment_expression "piStack_1ec = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4)" (identifier "piStack_1ec") (= "=") (cast_expression "(int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4)" (parenthesized_expression "(**(code **)(puVar46 + 0x28450))" (( "(") (pointer_expression "**(code **)(puVar46 + 0x28450)" (* "*") (pointer_expression "*(code **)(puVar46 + 0x28450)" (* "*") (cast_expression "(code **)(puVar46 + 0x28450)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar46 + 0x28450)" (( "(") (binary_expression "puVar46 + 0x28450" (identifier "puVar46") (+ "+") (number_literal "0x28450")) () ")"))))) () ")")) (argument_list "(uStack_1f0 * 4)" (( "(") (binary_expression "uStack_1f0 * 4" (identifier "uStack_1f0") (* "*") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (piStack_1ec == (int *)0x0) {\n                    (**(code **)(puVar46 + 0x28520))(piVar17);\n                    uStack_1e4 = 0xc;\n                    piVar17 = piStack_e0;\n                    goto LAB_0004dbbc;\n                  }" (if "if") (parenthesized_expression "(piStack_1ec == (int *)0x0)" (( "(") (binary_expression "piStack_1ec == (int *)0x0" (identifier "piStack_1ec") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    (**(code **)(puVar46 + 0x28520))(piVar17);\n                    uStack_1e4 = 0xc;\n                    piVar17 = piStack_e0;\n                    goto LAB_0004dbbc;\n                  }" ({ "{") (expression_statement "(**(code **)(puVar46 + 0x28520))(piVar17);" (call_expression "(**(code **)(puVar46 + 0x28520))(piVar17)" (parenthesized_expression "(**(code **)(puVar46 + 0x28520))" (( "(") (pointer_expression "**(code **)(puVar46 + 0x28520)" (* "*") (pointer_expression "*(code **)(puVar46 + 0x28520)" (* "*") (cast_expression "(code **)(puVar46 + 0x28520)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar46 + 0x28520)" (( "(") (binary_expression "puVar46 + 0x28520" (identifier "puVar46") (+ "+") (number_literal "0x28520")) () ")"))))) () ")")) (argument_list "(piVar17)" (( "(") (identifier "piVar17") () ")"))) (; ";")) (expression_statement "uStack_1e4 = 0xc;" (assignment_expression "uStack_1e4 = 0xc" (identifier "uStack_1e4") (= "=") (number_literal "0xc")) (; ";")) (expression_statement "piVar17 = piStack_e0;" (assignment_expression "piVar17 = piStack_e0" (identifier "piVar17") (= "=") (identifier "piStack_e0")) (; ";")) (goto_statement "goto LAB_0004dbbc;" (goto "goto") (statement_identifier "LAB_0004dbbc") (; ";")) (} "}"))) (expression_statement "iVar15 = *(int *)(puVar46 + 0x2829c);" (assignment_expression "iVar15 = *(int *)(puVar46 + 0x2829c)" (identifier "iVar15") (= "=") (pointer_expression "*(int *)(puVar46 + 0x2829c)" (* "*") (cast_expression "(int *)(puVar46 + 0x2829c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar46 + 0x2829c)" (( "(") (binary_expression "puVar46 + 0x2829c" (identifier "puVar46") (+ "+") (number_literal "0x2829c")) () ")"))))) (; ";")) (while_statement "while( true ) {\n                    (**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);\n                    uStack_150 = 0;\n                    uStack_14c = 0;\n                    uStack_148 = 0;\n                    piStack_160 = piVar17;\n                    piStack_15c = piStack_1ec;\n                    iStack_158 = iVar30;\n                    uStack_154 = uVar14;\n                    uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);\n                    (**(code **)(puVar46 + 0x28520))(uStack_148);\n                    if (uStack_1e4 != 0) break;\n                    if ((*piVar17 != 0) || (*piStack_1ec != 0)) {\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    piVar33 = piStack_e0 + (uStack_1f0 - 1);\n                    uStack_1f0 = uVar14;\n                    while( true ) {\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }\n                    iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       );\n                  }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n                    (**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);\n                    uStack_150 = 0;\n                    uStack_14c = 0;\n                    uStack_148 = 0;\n                    piStack_160 = piVar17;\n                    piStack_15c = piStack_1ec;\n                    iStack_158 = iVar30;\n                    uStack_154 = uVar14;\n                    uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);\n                    (**(code **)(puVar46 + 0x28520))(uStack_148);\n                    if (uStack_1e4 != 0) break;\n                    if ((*piVar17 != 0) || (*piStack_1ec != 0)) {\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }\n                    piVar33 = piStack_e0 + (uStack_1f0 - 1);\n                    uStack_1f0 = uVar14;\n                    while( true ) {\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }\n                    iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       );\n                  }" ({ "{") (expression_statement "(**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);" (call_expression "(**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4)" (parenthesized_expression "(**(code **)(puVar46 + 0x283f8))" (( "(") (pointer_expression "**(code **)(puVar46 + 0x283f8)" (* "*") (pointer_expression "*(code **)(puVar46 + 0x283f8)" (* "*") (cast_expression "(code **)(puVar46 + 0x283f8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar46 + 0x283f8)" (( "(") (binary_expression "puVar46 + 0x283f8" (identifier "puVar46") (+ "+") (number_literal "0x283f8")) () ")"))))) () ")")) (argument_list "(piStack_1ec,0,uStack_1f0 * 4)" (( "(") (identifier "piStack_1ec") (, ",") (number_literal "0") (, ",") (binary_expression "uStack_1f0 * 4" (identifier "uStack_1f0") (* "*") (number_literal "4")) () ")"))) (; ";")) (expression_statement "uStack_150 = 0;" (assignment_expression "uStack_150 = 0" (identifier "uStack_150") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_14c = 0;" (assignment_expression "uStack_14c = 0" (identifier "uStack_14c") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_148 = 0;" (assignment_expression "uStack_148 = 0" (identifier "uStack_148") (= "=") (number_literal "0")) (; ";")) (expression_statement "piStack_160 = piVar17;" (assignment_expression "piStack_160 = piVar17" (identifier "piStack_160") (= "=") (identifier "piVar17")) (; ";")) (expression_statement "piStack_15c = piStack_1ec;" (assignment_expression "piStack_15c = piStack_1ec" (identifier "piStack_15c") (= "=") (identifier "piStack_1ec")) (; ";")) (expression_statement "iStack_158 = iVar30;" (assignment_expression "iStack_158 = iVar30" (identifier "iStack_158") (= "=") (identifier "iVar30")) (; ";")) (expression_statement "uStack_154 = uVar14;" (assignment_expression "uStack_154 = uVar14" (identifier "uStack_154") (= "=") (identifier "uVar14")) (; ";")) (expression_statement "uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);" (assignment_expression "uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160)" (identifier "uStack_1e4") (= "=") (call_expression "(*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160)" (parenthesized_expression "(*(code *)(iVar15 + -0x2cf4))" (( "(") (pointer_expression "*(code *)(iVar15 + -0x2cf4)" (* "*") (cast_expression "(code *)(iVar15 + -0x2cf4)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + -0x2cf4)" (( "(") (binary_expression "iVar15 + -0x2cf4" (identifier "iVar15") (+ "+") (number_literal "-0x2cf4")) () ")")))) () ")")) (argument_list "(&puStack_144,&piStack_160)" (( "(") (pointer_expression "&puStack_144" (& "&") (identifier "puStack_144")) (, ",") (pointer_expression "&piStack_160" (& "&") (identifier "piStack_160")) () ")")))) (; ";")) (expression_statement "(**(code **)(puVar46 + 0x28520))(uStack_148);" (call_expression "(**(code **)(puVar46 + 0x28520))(uStack_148)" (parenthesized_expression "(**(code **)(puVar46 + 0x28520))" (( "(") (pointer_expression "**(code **)(puVar46 + 0x28520)" (* "*") (pointer_expression "*(code **)(puVar46 + 0x28520)" (* "*") (cast_expression "(code **)(puVar46 + 0x28520)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar46 + 0x28520)" (( "(") (binary_expression "puVar46 + 0x28520" (identifier "puVar46") (+ "+") (number_literal "0x28520")) () ")"))))) () ")")) (argument_list "(uStack_148)" (( "(") (identifier "uStack_148") () ")"))) (; ";")) (if_statement "if (uStack_1e4 != 0) break;" (if "if") (parenthesized_expression "(uStack_1e4 != 0)" (( "(") (binary_expression "uStack_1e4 != 0" (identifier "uStack_1e4") (!= "!=") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if ((*piVar17 != 0) || (*piStack_1ec != 0)) {\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }" (if "if") (parenthesized_expression "((*piVar17 != 0) || (*piStack_1ec != 0))" (( "(") (binary_expression "(*piVar17 != 0) || (*piStack_1ec != 0)" (parenthesized_expression "(*piVar17 != 0)" (( "(") (binary_expression "*piVar17 != 0" (pointer_expression "*piVar17" (* "*") (identifier "piVar17")) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(*piStack_1ec != 0)" (( "(") (binary_expression "*piStack_1ec != 0" (pointer_expression "*piStack_1ec" (* "*") (identifier "piStack_1ec")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);\n                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                      if (uStack_1e4 != 0) goto LAB_0004ed18;\n                      goto LAB_0004e9f8;\n                    }" ({ "{") (expression_statement "uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);" (assignment_expression "uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0)" (identifier "uStack_1e4") (= "=") (call_expression "FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0)" (identifier "FUN_00047390") (argument_list "(puVar36,piVar17,piStack_1ec,uStack_1f0)" (( "(") (identifier "puVar36") (, ",") (identifier "piVar17") (, ",") (identifier "piStack_1ec") (, ",") (identifier "uStack_1f0") () ")")))) (; ";")) (expression_statement "(**(code **)(puVar46 + 0x28520))(piStack_1ec);" (call_expression "(**(code **)(puVar46 + 0x28520))(piStack_1ec)" (parenthesized_expression "(**(code **)(puVar46 + 0x28520))" (( "(") (pointer_expression "**(code **)(puVar46 + 0x28520)" (* "*") (pointer_expression "*(code **)(puVar46 + 0x28520)" (* "*") (cast_expression "(code **)(puVar46 + 0x28520)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar46 + 0x28520)" (( "(") (binary_expression "puVar46 + 0x28520" (identifier "puVar46") (+ "+") (number_literal "0x28520")) () ")"))))) () ")")) (argument_list "(piStack_1ec)" (( "(") (identifier "piStack_1ec") () ")"))) (; ";")) (if_statement "if (uStack_1e4 != 0) goto LAB_0004ed18;" (if "if") (parenthesized_expression "(uStack_1e4 != 0)" (( "(") (binary_expression "uStack_1e4 != 0" (identifier "uStack_1e4") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0004ed18;" (goto "goto") (statement_identifier "LAB_0004ed18") (; ";"))) (goto_statement "goto LAB_0004e9f8;" (goto "goto") (statement_identifier "LAB_0004e9f8") (; ";")) (} "}"))) (expression_statement "piVar33 = piStack_e0 + (uStack_1f0 - 1);" (assignment_expression "piVar33 = piStack_e0 + (uStack_1f0 - 1)" (identifier "piVar33") (= "=") (binary_expression "piStack_e0 + (uStack_1f0 - 1)" (identifier "piStack_e0") (+ "+") (parenthesized_expression "(uStack_1f0 - 1)" (( "(") (binary_expression "uStack_1f0 - 1" (identifier "uStack_1f0") (- "-") (number_literal "1")) () ")")))) (; ";")) (expression_statement "uStack_1f0 = uVar14;" (assignment_expression "uStack_1f0 = uVar14" (identifier "uStack_1f0") (= "=") (identifier "uVar14")) (; ";")) (while_statement "while( true ) {\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n                      uVar14 = uStack_1f0 - 1;\n                      if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }\n                      iVar30 = piVar33[-1];\n                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;\n                      piVar33 = piVar33 + -1;\n                      uStack_1f0 = uVar14;\n                    }" ({ "{") (expression_statement "uVar14 = uStack_1f0 - 1;" (assignment_expression "uVar14 = uStack_1f0 - 1" (identifier "uVar14") (= "=") (binary_expression "uStack_1f0 - 1" (identifier "uStack_1f0") (- "-") (number_literal "1"))) (; ";")) (if_statement "if (uVar14 == 0xffffffff) {\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }" (if "if") (parenthesized_expression "(uVar14 == 0xffffffff)" (( "(") (binary_expression "uVar14 == 0xffffffff" (identifier "uVar14") (== "==") (number_literal "0xffffffff")) () ")")) (compound_statement "{\n                        (**(code **)(puVar46 + 0x28520))(piVar17);\n                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);\n                        goto LAB_0004e2d4;\n                      }" ({ "{") (expression_statement "(**(code **)(puVar46 + 0x28520))(piVar17);" (call_expression "(**(code **)(puVar46 + 0x28520))(piVar17)" (parenthesized_expression "(**(code **)(puVar46 + 0x28520))" (( "(") (pointer_expression "**(code **)(puVar46 + 0x28520)" (* "*") (pointer_expression "*(code **)(puVar46 + 0x28520)" (* "*") (cast_expression "(code **)(puVar46 + 0x28520)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar46 + 0x28520)" (( "(") (binary_expression "puVar46 + 0x28520" (identifier "puVar46") (+ "+") (number_literal "0x28520")) () ")"))))) () ")")) (argument_list "(piVar17)" (( "(") (identifier "piVar17") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar46 + 0x28520))(piStack_1ec);" (call_expression "(**(code **)(puVar46 + 0x28520))(piStack_1ec)" (parenthesized_expression "(**(code **)(puVar46 + 0x28520))" (( "(") (pointer_expression "**(code **)(puVar46 + 0x28520)" (* "*") (pointer_expression "*(code **)(puVar46 + 0x28520)" (* "*") (cast_expression "(code **)(puVar46 + 0x28520)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar46 + 0x28520)" (( "(") (binary_expression "puVar46 + 0x28520" (identifier "puVar46") (+ "+") (number_literal "0x28520")) () ")"))))) () ")")) (argument_list "(piStack_1ec)" (( "(") (identifier "piStack_1ec") () ")"))) (; ";")) (goto_statement "goto LAB_0004e2d4;" (goto "goto") (statement_identifier "LAB_0004e2d4") (; ";")) (} "}"))) (expression_statement "iVar30 = piVar33[-1];" (assignment_expression "iVar30 = piVar33[-1]" (identifier "iVar30") (= "=") (subscript_expression "piVar33[-1]" (identifier "piVar33") ([ "[") (number_literal "-1") (] "]"))) (; ";")) (if_statement "if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;" (if "if") (parenthesized_expression "((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0))" (( "(") (binary_expression "(iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)" (parenthesized_expression "(iVar30 != 0)" (( "(") (binary_expression "iVar30 != 0" (identifier "iVar30") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((*(byte *)(iVar30 + 0x34) & 8) != 0)" (( "(") (binary_expression "(*(byte *)(iVar30 + 0x34) & 8) != 0" (parenthesized_expression "(*(byte *)(iVar30 + 0x34) & 8)" (( "(") (binary_expression "*(byte *)(iVar30 + 0x34) & 8" (pointer_expression "*(byte *)(iVar30 + 0x34)" (* "*") (cast_expression "(byte *)(iVar30 + 0x34)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar30 + 0x34)" (( "(") (binary_expression "iVar30 + 0x34" (identifier "iVar30") (+ "+") (number_literal "0x34")) () ")")))) (& "&") (number_literal "8")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "piVar33 = piVar33 + -1;" (assignment_expression "piVar33 = piVar33 + -1" (identifier "piVar33") (= "=") (binary_expression "piVar33 + -1" (identifier "piVar33") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uStack_1f0 = uVar14;" (assignment_expression "uStack_1f0 = uVar14" (identifier "uStack_1f0") (= "=") (identifier "uVar14")) (; ";")) (} "}"))) (expression_statement "iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       );" (assignment_expression "iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       )" (identifier "iVar30") (= "=") (call_expression "(*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       )" (parenthesized_expression "(*pcVar45)" (( "(") (pointer_expression "*pcVar45" (* "*") (identifier "pcVar45")) () ")")) (argument_list "(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14\n                                       )" (( "(") (pointer_expression "&puStack_144" (& "&") (identifier "puStack_144")) (, ",") (pointer_expression "*(undefined4 *)(iVar30 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar30 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar30 + 8)" (( "(") (binary_expression "iVar30 + 8" (identifier "iVar30") (+ "+") (number_literal "8")) () ")")))) (, ",") (binary_expression "iVar30 + 0xc" (identifier "iVar30") (+ "+") (number_literal "0xc")) (, ",") (identifier "uVar14") () ")")))) (; ";")) (} "}"))) (} "}")))) (expression_statement "(**(code **)(puVar46 + 0x28520))(piVar17);" (call_expression "(**(code **)(puVar46 + 0x28520))(piVar17)" (parenthesized_expression "(**(code **)(puVar46 + 0x28520))" (( "(") (pointer_expression "**(code **)(puVar46 + 0x28520)" (* "*") (pointer_expression "*(code **)(puVar46 + 0x28520)" (* "*") (cast_expression "(code **)(puVar46 + 0x28520)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar46 + 0x28520)" (( "(") (binary_expression "puVar46 + 0x28520" (identifier "puVar46") (+ "+") (number_literal "0x28520")) () ")"))))) () ")")) (argument_list "(piVar17)" (( "(") (identifier "piVar17") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar46 + 0x28520))(piStack_1ec);" (call_expression "(**(code **)(puVar46 + 0x28520))(piStack_1ec)" (parenthesized_expression "(**(code **)(puVar46 + 0x28520))" (( "(") (pointer_expression "**(code **)(puVar46 + 0x28520)" (* "*") (pointer_expression "*(code **)(puVar46 + 0x28520)" (* "*") (cast_expression "(code **)(puVar46 + 0x28520)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar46 + 0x28520)" (( "(") (binary_expression "puVar46 + 0x28520" (identifier "puVar46") (+ "+") (number_literal "0x28520")) () ")"))))) () ")")) (argument_list "(piStack_1ec)" (( "(") (identifier "piStack_1ec") () ")"))) (; ";")) (expression_statement "piVar17 = piStack_e0;" (assignment_expression "piVar17 = piStack_e0" (identifier "piVar17") (= "=") (identifier "piStack_e0")) (; ";")) (if_statement "if (uStack_1e4 == 1) goto LAB_0004e2d4;" (if "if") (parenthesized_expression "(uStack_1e4 == 1)" (( "(") (binary_expression "uStack_1e4 == 1" (identifier "uStack_1e4") (== "==") (number_literal "1")) () ")")) (goto_statement "goto LAB_0004e2d4;" (goto "goto") (statement_identifier "LAB_0004e2d4") (; ";"))) (goto_statement "goto LAB_0004dbbc;" (goto "goto") (statement_identifier "LAB_0004dbbc") (; ";")) (} "}"))) (expression_statement "uStack_1e4 = 0xc;" (assignment_expression "uStack_1e4 = 0xc" (identifier "uStack_1e4") (= "=") (number_literal "0xc")) (; ";")) (goto_statement "goto LAB_0004dbbc;" (goto "goto") (statement_identifier "LAB_0004dbbc") (; ";")) (} "}")))) (} "}")))) (labeled_statement "LAB_0004e7e0:\n          piVar17 = piStack_e0;" (statement_identifier "LAB_0004e7e0") (: ":") (expression_statement "piVar17 = piStack_e0;" (assignment_expression "piVar17 = piStack_e0" (identifier "piVar17") (= "=") (identifier "piStack_e0")) (; ";"))) (expression_statement "uStack_1e4 = uVar11;" (assignment_expression "uStack_1e4 = uVar11" (identifier "uStack_1e4") (= "=") (identifier "uVar11")) (; ";")) (if_statement "if (local_78 == (uint *)0x0) goto LAB_0004dbbc;" (if "if") (parenthesized_expression "(local_78 == (uint *)0x0)" (( "(") (binary_expression "local_78 == (uint *)0x0" (identifier "local_78") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0004dbbc;" (goto "goto") (statement_identifier "LAB_0004dbbc") (; ";"))) (expression_statement "puVar23 = ppuVar24[7];" (assignment_expression "puVar23 = ppuVar24[7]" (identifier "puVar23") (= "=") (subscript_expression "ppuVar24[7]" (identifier "ppuVar24") ([ "[") (number_literal "7") (] "]"))) (; ";")) (if_statement "if (bVar1) {\n            piVar17 = piStack_74 + 2;\n            do {\n              piVar17[1] = -1;\n              piVar33 = piVar17 + 2;\n              *piVar17 = -1;\n              piVar17 = piVar33;\n            } while (piStack_74 + (int)local_78 * 2 != piVar33);\n            *piStack_74 = 0;\n            piStack_74[1] = uStack_e8;\n            if (((uint)puVar23 & 0x8000000) == 0) {\n              if (*(char *)(puVar43 + 0x16) < '\0') {\n                bVar22 = 0 < (int)puVar43[0x13];\n              }\n              else {\n                bVar22 = false;\n              }\n              uStack_1e4 = FUN_0004bc00(ppuVar24,&puStack_144,local_78,piStack_74,bVar22);\n              piVar17 = piStack_e0;\n              if (uStack_1e4 != 0) goto LAB_0004dbbc;\n              puVar23 = (uint *)*piStack_74;\n            }\n            else {\nLAB_0004e838:\n              puVar23 = (uint *)0x0;\n            }\n            puVar36 = (uint *)0x0;\n            piVar17 = piStack_74;\n            while( true ) {\n              if (puVar23 != (uint *)0xffffffff) {\n                puVar32 = (uint *)piVar17[1];\n                puVar39 = puVar23;\n                puVar38 = puVar32;\n                if (cStack_f8 != '\0') {\n                  puVar39 = puStack_124;\n                  if (puStack_128 != puVar23) {\n                    puVar39 = *(uint **)(iStack_138 + (int)puVar23 * 4);\n                  }\n                  *piVar17 = (int)puVar39;\n                  puVar38 = puStack_124;\n                  if (puStack_128 != puVar32) {\n                    puVar38 = *(uint **)(iStack_138 + (int)puVar32 * 4);\n                  }\n                }\n                *piVar17 = (int)puStack_16c + (int)puVar39;\n                piVar17[1] = (int)puStack_16c + (int)puVar38;\n              }\n              puVar36 = (uint *)((int)puVar36 + 1);\n              piVar17 = piVar17 + 2;\n              if (puVar36 == local_78) break;\n              puVar23 = (uint *)*piVar17;\n            }\n            if (0 < iStack_180) {\n              piVar17 = piStack_74 + (int)local_78 * 2;\n              do {\n                *piVar17 = -1;\n                piVar33 = piVar17 + 2;\n                piVar17[1] = -1;\n                piVar17 = piVar33;\n              } while (piStack_74 + (iStack_180 + (int)local_78) * 2 != piVar33);\n            }\n            piVar33 = (int *)puVar43[0x21];\n            piVar17 = piStack_e0;\n            uStack_1e4 = uVar11;\n            if (piVar33 != (int *)0x0) {\n              iVar29 = 0;\n              piVar3 = piStack_74;\n              do {\n                pcVar45 = *(code **)(puVar46 + 0x28520);\n                if (iVar29 == (int)local_78 + -1) goto LAB_0004dbc0;\n                if (*piVar33 != iVar29) {\n                  piVar3[2] = piStack_74[(*piVar33 + 1) * 2];\n                  piVar3[3] = piStack_74[(*piVar33 + 1) * 2 + 1];\n                }\n                iVar29 = iVar29 + 1;\n                piVar33 = piVar33 + 1;\n                piVar3 = piVar3 + 2;\n              } while( true );\n            }\n            goto LAB_0004dbbc;\n          }" (if "if") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (compound_statement "{\n            piVar17 = piStack_74 + 2;\n            do {\n              piVar17[1] = -1;\n              piVar33 = piVar17 + 2;\n              *piVar17 = -1;\n              piVar17 = piVar33;\n            } while (piStack_74 + (int)local_78 * 2 != piVar33);\n            *piStack_74 = 0;\n            piStack_74[1] = uStack_e8;\n            if (((uint)puVar23 & 0x8000000) == 0) {\n              if (*(char *)(puVar43 + 0x16) < '\0') {\n                bVar22 = 0 < (int)puVar43[0x13];\n              }\n              else {\n                bVar22 = false;\n              }\n              uStack_1e4 = FUN_0004bc00(ppuVar24,&puStack_144,local_78,piStack_74,bVar22);\n              piVar17 = piStack_e0;\n              if (uStack_1e4 != 0) goto LAB_0004dbbc;\n              puVar23 = (uint *)*piStack_74;\n            }\n            else {\nLAB_0004e838:\n              puVar23 = (uint *)0x0;\n            }\n            puVar36 = (uint *)0x0;\n            piVar17 = piStack_74;\n            while( true ) {\n              if (puVar23 != (uint *)0xffffffff) {\n                puVar32 = (uint *)piVar17[1];\n                puVar39 = puVar23;\n                puVar38 = puVar32;\n                if (cStack_f8 != '\0') {\n                  puVar39 = puStack_124;\n                  if (puStack_128 != puVar23) {\n                    puVar39 = *(uint **)(iStack_138 + (int)puVar23 * 4);\n                  }\n                  *piVar17 = (int)puVar39;\n                  puVar38 = puStack_124;\n                  if (puStack_128 != puVar32) {\n                    puVar38 = *(uint **)(iStack_138 + (int)puVar32 * 4);\n                  }\n                }\n                *piVar17 = (int)puStack_16c + (int)puVar39;\n                piVar17[1] = (int)puStack_16c + (int)puVar38;\n              }\n              puVar36 = (uint *)((int)puVar36 + 1);\n              piVar17 = piVar17 + 2;\n              if (puVar36 == local_78) break;\n              puVar23 = (uint *)*piVar17;\n            }\n            if (0 < iStack_180) {\n              piVar17 = piStack_74 + (int)local_78 * 2;\n              do {\n                *piVar17 = -1;\n                piVar33 = piVar17 + 2;\n                piVar17[1] = -1;\n                piVar17 = piVar33;\n              } while (piStack_74 + (iStack_180 + (int)local_78) * 2 != piVar33);\n            }\n            piVar33 = (int *)puVar43[0x21];\n            piVar17 = piStack_e0;\n            uStack_1e4 = uVar11;\n            if (piVar33 != (int *)0x0) {\n              iVar29 = 0;\n              piVar3 = piStack_74;\n              do {\n                pcVar45 = *(code **)(puVar46 + 0x28520);\n                if (iVar29 == (int)local_78 + -1) goto LAB_0004dbc0;\n                if (*piVar33 != iVar29) {\n                  piVar3[2] = piStack_74[(*piVar33 + 1) * 2];\n                  piVar3[3] = piStack_74[(*piVar33 + 1) * 2 + 1];\n                }\n                iVar29 = iVar29 + 1;\n                piVar33 = piVar33 + 1;\n                piVar3 = piVar3 + 2;\n              } while( true );\n            }\n            goto LAB_0004dbbc;\n          }" ({ "{") (expression_statement "piVar17 = piStack_74 + 2;" (assignment_expression "piVar17 = piStack_74 + 2" (identifier "piVar17") (= "=") (binary_expression "piStack_74 + 2" (identifier "piStack_74") (+ "+") (number_literal "2"))) (; ";")) (do_statement "do {\n              piVar17[1] = -1;\n              piVar33 = piVar17 + 2;\n              *piVar17 = -1;\n              piVar17 = piVar33;\n            } while (piStack_74 + (int)local_78 * 2 != piVar33);" (do "do") (compound_statement "{\n              piVar17[1] = -1;\n              piVar33 = piVar17 + 2;\n              *piVar17 = -1;\n              piVar17 = piVar33;\n            }" ({ "{") (expression_statement "piVar17[1] = -1;" (assignment_expression "piVar17[1] = -1" (subscript_expression "piVar17[1]" (identifier "piVar17") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "-1")) (; ";")) (expression_statement "piVar33 = piVar17 + 2;" (assignment_expression "piVar33 = piVar17 + 2" (identifier "piVar33") (= "=") (binary_expression "piVar17 + 2" (identifier "piVar17") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "*piVar17 = -1;" (assignment_expression "*piVar17 = -1" (pointer_expression "*piVar17" (* "*") (identifier "piVar17")) (= "=") (number_literal "-1")) (; ";")) (expression_statement "piVar17 = piVar33;" (assignment_expression "piVar17 = piVar33" (identifier "piVar17") (= "=") (identifier "piVar33")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piStack_74 + (int)local_78 * 2 != piVar33)" (( "(") (binary_expression "piStack_74 + (int)local_78 * 2 != piVar33" (binary_expression "piStack_74 + (int)local_78 * 2" (identifier "piStack_74") (+ "+") (binary_expression "(int)local_78 * 2" (cast_expression "(int)local_78" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_78")) (* "*") (number_literal "2"))) (!= "!=") (identifier "piVar33")) () ")")) (; ";")) (expression_statement "*piStack_74 = 0;" (assignment_expression "*piStack_74 = 0" (pointer_expression "*piStack_74" (* "*") (identifier "piStack_74")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piStack_74[1] = uStack_e8;" (assignment_expression "piStack_74[1] = uStack_e8" (subscript_expression "piStack_74[1]" (identifier "piStack_74") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uStack_e8")) (; ";")) (if_statement "if (((uint)puVar23 & 0x8000000) == 0) {\n              if (*(char *)(puVar43 + 0x16) < '\0') {\n                bVar22 = 0 < (int)puVar43[0x13];\n              }\n              else {\n                bVar22 = false;\n              }\n              uStack_1e4 = FUN_0004bc00(ppuVar24,&puStack_144,local_78,piStack_74,bVar22);\n              piVar17 = piStack_e0;\n              if (uStack_1e4 != 0) goto LAB_0004dbbc;\n              puVar23 = (uint *)*piStack_74;\n            }\n            else {\nLAB_0004e838:\n              puVar23 = (uint *)0x0;\n            }" (if "if") (parenthesized_expression "(((uint)puVar23 & 0x8000000) == 0)" (( "(") (binary_expression "((uint)puVar23 & 0x8000000) == 0" (parenthesized_expression "((uint)puVar23 & 0x8000000)" (( "(") (binary_expression "(uint)puVar23 & 0x8000000" (cast_expression "(uint)puVar23" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar23")) (& "&") (number_literal "0x8000000")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              if (*(char *)(puVar43 + 0x16) < '\0') {\n                bVar22 = 0 < (int)puVar43[0x13];\n              }\n              else {\n                bVar22 = false;\n              }\n              uStack_1e4 = FUN_0004bc00(ppuVar24,&puStack_144,local_78,piStack_74,bVar22);\n              piVar17 = piStack_e0;\n              if (uStack_1e4 != 0) goto LAB_0004dbbc;\n              puVar23 = (uint *)*piStack_74;\n            }" ({ "{") (if_statement "if (*(char *)(puVar43 + 0x16) < '\0') {\n                bVar22 = 0 < (int)puVar43[0x13];\n              }\n              else {\n                bVar22 = false;\n              }" (if "if") (parenthesized_expression "(*(char *)(puVar43 + 0x16) < '\0')" (( "(") (binary_expression "*(char *)(puVar43 + 0x16) < '\0'" (pointer_expression "*(char *)(puVar43 + 0x16)" (* "*") (cast_expression "(char *)(puVar43 + 0x16)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar43 + 0x16)" (( "(") (binary_expression "puVar43 + 0x16" (identifier "puVar43") (+ "+") (number_literal "0x16")) () ")")))) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                bVar22 = 0 < (int)puVar43[0x13];\n              }" ({ "{") (expression_statement "bVar22 = 0 < (int)puVar43[0x13];" (assignment_expression "bVar22 = 0 < (int)puVar43[0x13]" (identifier "bVar22") (= "=") (binary_expression "0 < (int)puVar43[0x13]" (number_literal "0") (< "<") (cast_expression "(int)puVar43[0x13]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "puVar43[0x13]" (identifier "puVar43") ([ "[") (number_literal "0x13") (] "]"))))) (; ";")) (} "}")) (else_clause "else {\n                bVar22 = false;\n              }" (else "else") (compound_statement "{\n                bVar22 = false;\n              }" ({ "{") (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" (identifier "bVar22") (= "=") (false "false")) (; ";")) (} "}")))) (expression_statement "uStack_1e4 = FUN_0004bc00(ppuVar24,&puStack_144,local_78,piStack_74,bVar22);" (assignment_expression "uStack_1e4 = FUN_0004bc00(ppuVar24,&puStack_144,local_78,piStack_74,bVar22)" (identifier "uStack_1e4") (= "=") (call_expression "FUN_0004bc00(ppuVar24,&puStack_144,local_78,piStack_74,bVar22)" (identifier "FUN_0004bc00") (argument_list "(ppuVar24,&puStack_144,local_78,piStack_74,bVar22)" (( "(") (identifier "ppuVar24") (, ",") (pointer_expression "&puStack_144" (& "&") (identifier "puStack_144")) (, ",") (identifier "local_78") (, ",") (identifier "piStack_74") (, ",") (identifier "bVar22") () ")")))) (; ";")) (expression_statement "piVar17 = piStack_e0;" (assignment_expression "piVar17 = piStack_e0" (identifier "piVar17") (= "=") (identifier "piStack_e0")) (; ";")) (if_statement "if (uStack_1e4 != 0) goto LAB_0004dbbc;" (if "if") (parenthesized_expression "(uStack_1e4 != 0)" (( "(") (binary_expression "uStack_1e4 != 0" (identifier "uStack_1e4") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0004dbbc;" (goto "goto") (statement_identifier "LAB_0004dbbc") (; ";"))) (expression_statement "puVar23 = (uint *)*piStack_74;" (assignment_expression "puVar23 = (uint *)*piStack_74" (identifier "puVar23") (= "=") (cast_expression "(uint *)*piStack_74" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piStack_74" (* "*") (identifier "piStack_74")))) (; ";")) (} "}")) (else_clause "else {\nLAB_0004e838:\n              puVar23 = (uint *)0x0;\n            }" (else "else") (compound_statement "{\nLAB_0004e838:\n              puVar23 = (uint *)0x0;\n            }" ({ "{") (labeled_statement "LAB_0004e838:\n              puVar23 = (uint *)0x0;" (statement_identifier "LAB_0004e838") (: ":") (expression_statement "puVar23 = (uint *)0x0;" (assignment_expression "puVar23 = (uint *)0x0" (identifier "puVar23") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";"))) (} "}")))) (expression_statement "puVar36 = (uint *)0x0;" (assignment_expression "puVar36 = (uint *)0x0" (identifier "puVar36") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "piVar17 = piStack_74;" (assignment_expression "piVar17 = piStack_74" (identifier "piVar17") (= "=") (identifier "piStack_74")) (; ";")) (while_statement "while( true ) {\n              if (puVar23 != (uint *)0xffffffff) {\n                puVar32 = (uint *)piVar17[1];\n                puVar39 = puVar23;\n                puVar38 = puVar32;\n                if (cStack_f8 != '\0') {\n                  puVar39 = puStack_124;\n                  if (puStack_128 != puVar23) {\n                    puVar39 = *(uint **)(iStack_138 + (int)puVar23 * 4);\n                  }\n                  *piVar17 = (int)puVar39;\n                  puVar38 = puStack_124;\n                  if (puStack_128 != puVar32) {\n                    puVar38 = *(uint **)(iStack_138 + (int)puVar32 * 4);\n                  }\n                }\n                *piVar17 = (int)puStack_16c + (int)puVar39;\n                piVar17[1] = (int)puStack_16c + (int)puVar38;\n              }\n              puVar36 = (uint *)((int)puVar36 + 1);\n              piVar17 = piVar17 + 2;\n              if (puVar36 == local_78) break;\n              puVar23 = (uint *)*piVar17;\n            }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n              if (puVar23 != (uint *)0xffffffff) {\n                puVar32 = (uint *)piVar17[1];\n                puVar39 = puVar23;\n                puVar38 = puVar32;\n                if (cStack_f8 != '\0') {\n                  puVar39 = puStack_124;\n                  if (puStack_128 != puVar23) {\n                    puVar39 = *(uint **)(iStack_138 + (int)puVar23 * 4);\n                  }\n                  *piVar17 = (int)puVar39;\n                  puVar38 = puStack_124;\n                  if (puStack_128 != puVar32) {\n                    puVar38 = *(uint **)(iStack_138 + (int)puVar32 * 4);\n                  }\n                }\n                *piVar17 = (int)puStack_16c + (int)puVar39;\n                piVar17[1] = (int)puStack_16c + (int)puVar38;\n              }\n              puVar36 = (uint *)((int)puVar36 + 1);\n              piVar17 = piVar17 + 2;\n              if (puVar36 == local_78) break;\n              puVar23 = (uint *)*piVar17;\n            }" ({ "{") (if_statement "if (puVar23 != (uint *)0xffffffff) {\n                puVar32 = (uint *)piVar17[1];\n                puVar39 = puVar23;\n                puVar38 = puVar32;\n                if (cStack_f8 != '\0') {\n                  puVar39 = puStack_124;\n                  if (puStack_128 != puVar23) {\n                    puVar39 = *(uint **)(iStack_138 + (int)puVar23 * 4);\n                  }\n                  *piVar17 = (int)puVar39;\n                  puVar38 = puStack_124;\n                  if (puStack_128 != puVar32) {\n                    puVar38 = *(uint **)(iStack_138 + (int)puVar32 * 4);\n                  }\n                }\n                *piVar17 = (int)puStack_16c + (int)puVar39;\n                piVar17[1] = (int)puStack_16c + (int)puVar38;\n              }" (if "if") (parenthesized_expression "(puVar23 != (uint *)0xffffffff)" (( "(") (binary_expression "puVar23 != (uint *)0xffffffff" (identifier "puVar23") (!= "!=") (cast_expression "(uint *)0xffffffff" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) () ")")) (compound_statement "{\n                puVar32 = (uint *)piVar17[1];\n                puVar39 = puVar23;\n                puVar38 = puVar32;\n                if (cStack_f8 != '\0') {\n                  puVar39 = puStack_124;\n                  if (puStack_128 != puVar23) {\n                    puVar39 = *(uint **)(iStack_138 + (int)puVar23 * 4);\n                  }\n                  *piVar17 = (int)puVar39;\n                  puVar38 = puStack_124;\n                  if (puStack_128 != puVar32) {\n                    puVar38 = *(uint **)(iStack_138 + (int)puVar32 * 4);\n                  }\n                }\n                *piVar17 = (int)puStack_16c + (int)puVar39;\n                piVar17[1] = (int)puStack_16c + (int)puVar38;\n              }" ({ "{") (expression_statement "puVar32 = (uint *)piVar17[1];" (assignment_expression "puVar32 = (uint *)piVar17[1]" (identifier "puVar32") (= "=") (cast_expression "(uint *)piVar17[1]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar17[1]" (identifier "piVar17") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "puVar39 = puVar23;" (assignment_expression "puVar39 = puVar23" (identifier "puVar39") (= "=") (identifier "puVar23")) (; ";")) (expression_statement "puVar38 = puVar32;" (assignment_expression "puVar38 = puVar32" (identifier "puVar38") (= "=") (identifier "puVar32")) (; ";")) (if_statement "if (cStack_f8 != '\0') {\n                  puVar39 = puStack_124;\n                  if (puStack_128 != puVar23) {\n                    puVar39 = *(uint **)(iStack_138 + (int)puVar23 * 4);\n                  }\n                  *piVar17 = (int)puVar39;\n                  puVar38 = puStack_124;\n                  if (puStack_128 != puVar32) {\n                    puVar38 = *(uint **)(iStack_138 + (int)puVar32 * 4);\n                  }\n                }" (if "if") (parenthesized_expression "(cStack_f8 != '\0')" (( "(") (binary_expression "cStack_f8 != '\0'" (identifier "cStack_f8") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                  puVar39 = puStack_124;\n                  if (puStack_128 != puVar23) {\n                    puVar39 = *(uint **)(iStack_138 + (int)puVar23 * 4);\n                  }\n                  *piVar17 = (int)puVar39;\n                  puVar38 = puStack_124;\n                  if (puStack_128 != puVar32) {\n                    puVar38 = *(uint **)(iStack_138 + (int)puVar32 * 4);\n                  }\n                }" ({ "{") (expression_statement "puVar39 = puStack_124;" (assignment_expression "puVar39 = puStack_124" (identifier "puVar39") (= "=") (identifier "puStack_124")) (; ";")) (if_statement "if (puStack_128 != puVar23) {\n                    puVar39 = *(uint **)(iStack_138 + (int)puVar23 * 4);\n                  }" (if "if") (parenthesized_expression "(puStack_128 != puVar23)" (( "(") (binary_expression "puStack_128 != puVar23" (identifier "puStack_128") (!= "!=") (identifier "puVar23")) () ")")) (compound_statement "{\n                    puVar39 = *(uint **)(iStack_138 + (int)puVar23 * 4);\n                  }" ({ "{") (expression_statement "puVar39 = *(uint **)(iStack_138 + (int)puVar23 * 4);" (assignment_expression "puVar39 = *(uint **)(iStack_138 + (int)puVar23 * 4)" (identifier "puVar39") (= "=") (pointer_expression "*(uint **)(iStack_138 + (int)puVar23 * 4)" (* "*") (cast_expression "(uint **)(iStack_138 + (int)puVar23 * 4)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iStack_138 + (int)puVar23 * 4)" (( "(") (binary_expression "iStack_138 + (int)puVar23 * 4" (identifier "iStack_138") (+ "+") (binary_expression "(int)puVar23 * 4" (cast_expression "(int)puVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar23")) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (} "}"))) (expression_statement "*piVar17 = (int)puVar39;" (assignment_expression "*piVar17 = (int)puVar39" (pointer_expression "*piVar17" (* "*") (identifier "piVar17")) (= "=") (cast_expression "(int)puVar39" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar39"))) (; ";")) (expression_statement "puVar38 = puStack_124;" (assignment_expression "puVar38 = puStack_124" (identifier "puVar38") (= "=") (identifier "puStack_124")) (; ";")) (if_statement "if (puStack_128 != puVar32) {\n                    puVar38 = *(uint **)(iStack_138 + (int)puVar32 * 4);\n                  }" (if "if") (parenthesized_expression "(puStack_128 != puVar32)" (( "(") (binary_expression "puStack_128 != puVar32" (identifier "puStack_128") (!= "!=") (identifier "puVar32")) () ")")) (compound_statement "{\n                    puVar38 = *(uint **)(iStack_138 + (int)puVar32 * 4);\n                  }" ({ "{") (expression_statement "puVar38 = *(uint **)(iStack_138 + (int)puVar32 * 4);" (assignment_expression "puVar38 = *(uint **)(iStack_138 + (int)puVar32 * 4)" (identifier "puVar38") (= "=") (pointer_expression "*(uint **)(iStack_138 + (int)puVar32 * 4)" (* "*") (cast_expression "(uint **)(iStack_138 + (int)puVar32 * 4)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iStack_138 + (int)puVar32 * 4)" (( "(") (binary_expression "iStack_138 + (int)puVar32 * 4" (identifier "iStack_138") (+ "+") (binary_expression "(int)puVar32 * 4" (cast_expression "(int)puVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar32")) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (} "}"))) (} "}"))) (expression_statement "*piVar17 = (int)puStack_16c + (int)puVar39;" (assignment_expression "*piVar17 = (int)puStack_16c + (int)puVar39" (pointer_expression "*piVar17" (* "*") (identifier "piVar17")) (= "=") (binary_expression "(int)puStack_16c + (int)puVar39" (cast_expression "(int)puStack_16c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puStack_16c")) (+ "+") (cast_expression "(int)puVar39" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar39")))) (; ";")) (expression_statement "piVar17[1] = (int)puStack_16c + (int)puVar38;" (assignment_expression "piVar17[1] = (int)puStack_16c + (int)puVar38" (subscript_expression "piVar17[1]" (identifier "piVar17") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "(int)puStack_16c + (int)puVar38" (cast_expression "(int)puStack_16c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puStack_16c")) (+ "+") (cast_expression "(int)puVar38" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar38")))) (; ";")) (} "}"))) (expression_statement "puVar36 = (uint *)((int)puVar36 + 1);" (assignment_expression "puVar36 = (uint *)((int)puVar36 + 1)" (identifier "puVar36") (= "=") (cast_expression "(uint *)((int)puVar36 + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar36 + 1)" (( "(") (binary_expression "(int)puVar36 + 1" (cast_expression "(int)puVar36" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar36")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "piVar17 = piVar17 + 2;" (assignment_expression "piVar17 = piVar17 + 2" (identifier "piVar17") (= "=") (binary_expression "piVar17 + 2" (identifier "piVar17") (+ "+") (number_literal "2"))) (; ";")) (if_statement "if (puVar36 == local_78) break;" (if "if") (parenthesized_expression "(puVar36 == local_78)" (( "(") (binary_expression "puVar36 == local_78" (identifier "puVar36") (== "==") (identifier "local_78")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "puVar23 = (uint *)*piVar17;" (assignment_expression "puVar23 = (uint *)*piVar17" (identifier "puVar23") (= "=") (cast_expression "(uint *)*piVar17" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar17" (* "*") (identifier "piVar17")))) (; ";")) (} "}"))) (if_statement "if (0 < iStack_180) {\n              piVar17 = piStack_74 + (int)local_78 * 2;\n              do {\n                *piVar17 = -1;\n                piVar33 = piVar17 + 2;\n                piVar17[1] = -1;\n                piVar17 = piVar33;\n              } while (piStack_74 + (iStack_180 + (int)local_78) * 2 != piVar33);\n            }" (if "if") (parenthesized_expression "(0 < iStack_180)" (( "(") (binary_expression "0 < iStack_180" (number_literal "0") (< "<") (identifier "iStack_180")) () ")")) (compound_statement "{\n              piVar17 = piStack_74 + (int)local_78 * 2;\n              do {\n                *piVar17 = -1;\n                piVar33 = piVar17 + 2;\n                piVar17[1] = -1;\n                piVar17 = piVar33;\n              } while (piStack_74 + (iStack_180 + (int)local_78) * 2 != piVar33);\n            }" ({ "{") (expression_statement "piVar17 = piStack_74 + (int)local_78 * 2;" (assignment_expression "piVar17 = piStack_74 + (int)local_78 * 2" (identifier "piVar17") (= "=") (binary_expression "piStack_74 + (int)local_78 * 2" (identifier "piStack_74") (+ "+") (binary_expression "(int)local_78 * 2" (cast_expression "(int)local_78" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_78")) (* "*") (number_literal "2")))) (; ";")) (do_statement "do {\n                *piVar17 = -1;\n                piVar33 = piVar17 + 2;\n                piVar17[1] = -1;\n                piVar17 = piVar33;\n              } while (piStack_74 + (iStack_180 + (int)local_78) * 2 != piVar33);" (do "do") (compound_statement "{\n                *piVar17 = -1;\n                piVar33 = piVar17 + 2;\n                piVar17[1] = -1;\n                piVar17 = piVar33;\n              }" ({ "{") (expression_statement "*piVar17 = -1;" (assignment_expression "*piVar17 = -1" (pointer_expression "*piVar17" (* "*") (identifier "piVar17")) (= "=") (number_literal "-1")) (; ";")) (expression_statement "piVar33 = piVar17 + 2;" (assignment_expression "piVar33 = piVar17 + 2" (identifier "piVar33") (= "=") (binary_expression "piVar17 + 2" (identifier "piVar17") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "piVar17[1] = -1;" (assignment_expression "piVar17[1] = -1" (subscript_expression "piVar17[1]" (identifier "piVar17") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "-1")) (; ";")) (expression_statement "piVar17 = piVar33;" (assignment_expression "piVar17 = piVar33" (identifier "piVar17") (= "=") (identifier "piVar33")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piStack_74 + (iStack_180 + (int)local_78) * 2 != piVar33)" (( "(") (binary_expression "piStack_74 + (iStack_180 + (int)local_78) * 2 != piVar33" (binary_expression "piStack_74 + (iStack_180 + (int)local_78) * 2" (identifier "piStack_74") (+ "+") (binary_expression "(iStack_180 + (int)local_78) * 2" (parenthesized_expression "(iStack_180 + (int)local_78)" (( "(") (binary_expression "iStack_180 + (int)local_78" (identifier "iStack_180") (+ "+") (cast_expression "(int)local_78" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_78"))) () ")")) (* "*") (number_literal "2"))) (!= "!=") (identifier "piVar33")) () ")")) (; ";")) (} "}"))) (expression_statement "piVar33 = (int *)puVar43[0x21];" (assignment_expression "piVar33 = (int *)puVar43[0x21]" (identifier "piVar33") (= "=") (cast_expression "(int *)puVar43[0x21]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar43[0x21]" (identifier "puVar43") ([ "[") (number_literal "0x21") (] "]")))) (; ";")) (expression_statement "piVar17 = piStack_e0;" (assignment_expression "piVar17 = piStack_e0" (identifier "piVar17") (= "=") (identifier "piStack_e0")) (; ";")) (expression_statement "uStack_1e4 = uVar11;" (assignment_expression "uStack_1e4 = uVar11" (identifier "uStack_1e4") (= "=") (identifier "uVar11")) (; ";")) (if_statement "if (piVar33 != (int *)0x0) {\n              iVar29 = 0;\n              piVar3 = piStack_74;\n              do {\n                pcVar45 = *(code **)(puVar46 + 0x28520);\n                if (iVar29 == (int)local_78 + -1) goto LAB_0004dbc0;\n                if (*piVar33 != iVar29) {\n                  piVar3[2] = piStack_74[(*piVar33 + 1) * 2];\n                  piVar3[3] = piStack_74[(*piVar33 + 1) * 2 + 1];\n                }\n                iVar29 = iVar29 + 1;\n                piVar33 = piVar33 + 1;\n                piVar3 = piVar3 + 2;\n              } while( true );\n            }" (if "if") (parenthesized_expression "(piVar33 != (int *)0x0)" (( "(") (binary_expression "piVar33 != (int *)0x0" (identifier "piVar33") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              iVar29 = 0;\n              piVar3 = piStack_74;\n              do {\n                pcVar45 = *(code **)(puVar46 + 0x28520);\n                if (iVar29 == (int)local_78 + -1) goto LAB_0004dbc0;\n                if (*piVar33 != iVar29) {\n                  piVar3[2] = piStack_74[(*piVar33 + 1) * 2];\n                  piVar3[3] = piStack_74[(*piVar33 + 1) * 2 + 1];\n                }\n                iVar29 = iVar29 + 1;\n                piVar33 = piVar33 + 1;\n                piVar3 = piVar3 + 2;\n              } while( true );\n            }" ({ "{") (expression_statement "iVar29 = 0;" (assignment_expression "iVar29 = 0" (identifier "iVar29") (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar3 = piStack_74;" (assignment_expression "piVar3 = piStack_74" (identifier "piVar3") (= "=") (identifier "piStack_74")) (; ";")) (do_statement "do {\n                pcVar45 = *(code **)(puVar46 + 0x28520);\n                if (iVar29 == (int)local_78 + -1) goto LAB_0004dbc0;\n                if (*piVar33 != iVar29) {\n                  piVar3[2] = piStack_74[(*piVar33 + 1) * 2];\n                  piVar3[3] = piStack_74[(*piVar33 + 1) * 2 + 1];\n                }\n                iVar29 = iVar29 + 1;\n                piVar33 = piVar33 + 1;\n                piVar3 = piVar3 + 2;\n              } while( true );" (do "do") (compound_statement "{\n                pcVar45 = *(code **)(puVar46 + 0x28520);\n                if (iVar29 == (int)local_78 + -1) goto LAB_0004dbc0;\n                if (*piVar33 != iVar29) {\n                  piVar3[2] = piStack_74[(*piVar33 + 1) * 2];\n                  piVar3[3] = piStack_74[(*piVar33 + 1) * 2 + 1];\n                }\n                iVar29 = iVar29 + 1;\n                piVar33 = piVar33 + 1;\n                piVar3 = piVar3 + 2;\n              }" ({ "{") (expression_statement "pcVar45 = *(code **)(puVar46 + 0x28520);" (assignment_expression "pcVar45 = *(code **)(puVar46 + 0x28520)" (identifier "pcVar45") (= "=") (pointer_expression "*(code **)(puVar46 + 0x28520)" (* "*") (cast_expression "(code **)(puVar46 + 0x28520)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar46 + 0x28520)" (( "(") (binary_expression "puVar46 + 0x28520" (identifier "puVar46") (+ "+") (number_literal "0x28520")) () ")"))))) (; ";")) (if_statement "if (iVar29 == (int)local_78 + -1) goto LAB_0004dbc0;" (if "if") (parenthesized_expression "(iVar29 == (int)local_78 + -1)" (( "(") (binary_expression "iVar29 == (int)local_78 + -1" (identifier "iVar29") (== "==") (binary_expression "(int)local_78 + -1" (cast_expression "(int)local_78" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_78")) (+ "+") (number_literal "-1"))) () ")")) (goto_statement "goto LAB_0004dbc0;" (goto "goto") (statement_identifier "LAB_0004dbc0") (; ";"))) (if_statement "if (*piVar33 != iVar29) {\n                  piVar3[2] = piStack_74[(*piVar33 + 1) * 2];\n                  piVar3[3] = piStack_74[(*piVar33 + 1) * 2 + 1];\n                }" (if "if") (parenthesized_expression "(*piVar33 != iVar29)" (( "(") (binary_expression "*piVar33 != iVar29" (pointer_expression "*piVar33" (* "*") (identifier "piVar33")) (!= "!=") (identifier "iVar29")) () ")")) (compound_statement "{\n                  piVar3[2] = piStack_74[(*piVar33 + 1) * 2];\n                  piVar3[3] = piStack_74[(*piVar33 + 1) * 2 + 1];\n                }" ({ "{") (expression_statement "piVar3[2] = piStack_74[(*piVar33 + 1) * 2];" (assignment_expression "piVar3[2] = piStack_74[(*piVar33 + 1) * 2]" (subscript_expression "piVar3[2]" (identifier "piVar3") ([ "[") (number_literal "2") (] "]")) (= "=") (subscript_expression "piStack_74[(*piVar33 + 1) * 2]" (identifier "piStack_74") ([ "[") (binary_expression "(*piVar33 + 1) * 2" (parenthesized_expression "(*piVar33 + 1)" (( "(") (binary_expression "*piVar33 + 1" (pointer_expression "*piVar33" (* "*") (identifier "piVar33")) (+ "+") (number_literal "1")) () ")")) (* "*") (number_literal "2")) (] "]"))) (; ";")) (expression_statement "piVar3[3] = piStack_74[(*piVar33 + 1) * 2 + 1];" (assignment_expression "piVar3[3] = piStack_74[(*piVar33 + 1) * 2 + 1]" (subscript_expression "piVar3[3]" (identifier "piVar3") ([ "[") (number_literal "3") (] "]")) (= "=") (subscript_expression "piStack_74[(*piVar33 + 1) * 2 + 1]" (identifier "piStack_74") ([ "[") (binary_expression "(*piVar33 + 1) * 2 + 1" (binary_expression "(*piVar33 + 1) * 2" (parenthesized_expression "(*piVar33 + 1)" (( "(") (binary_expression "*piVar33 + 1" (pointer_expression "*piVar33" (* "*") (identifier "piVar33")) (+ "+") (number_literal "1")) () ")")) (* "*") (number_literal "2")) (+ "+") (number_literal "1")) (] "]"))) (; ";")) (} "}"))) (expression_statement "iVar29 = iVar29 + 1;" (assignment_expression "iVar29 = iVar29 + 1" (identifier "iVar29") (= "=") (binary_expression "iVar29 + 1" (identifier "iVar29") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar33 = piVar33 + 1;" (assignment_expression "piVar33 = piVar33 + 1" (identifier "piVar33") (= "=") (binary_expression "piVar33 + 1" (identifier "piVar33") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar3 = piVar3 + 2;" (assignment_expression "piVar3 = piVar3 + 2" (identifier "piVar3") (= "=") (binary_expression "piVar3 + 2" (identifier "piVar3") (+ "+") (number_literal "2"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (goto_statement "goto LAB_0004dbbc;" (goto "goto") (statement_identifier "LAB_0004dbbc") (; ";")) (} "}"))) (expression_statement "*piStack_74 = 0;" (assignment_expression "*piStack_74 = 0" (pointer_expression "*piStack_74" (* "*") (identifier "piStack_74")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piStack_74[1] = uStack_e8;" (assignment_expression "piStack_74[1] = uStack_e8" (subscript_expression "piStack_74[1]" (identifier "piStack_74") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uStack_e8")) (; ";")) (goto_statement "goto LAB_0004e838;" (goto "goto") (statement_identifier "LAB_0004e838") (; ";")) (} "}"))) (labeled_statement "LAB_0004e2d4:\n        FUN_00044db0(&puStack_144);" (statement_identifier "LAB_0004e2d4") (: ":") (expression_statement "FUN_00044db0(&puStack_144);" (call_expression "FUN_00044db0(&puStack_144)" (identifier "FUN_00044db0") (argument_list "(&puStack_144)" (( "(") (pointer_expression "&puStack_144" (& "&") (identifier "puStack_144")) () ")"))) (; ";"))) (expression_statement "param_4 = puStack_16c;" (assignment_expression "param_4 = puStack_16c" (identifier "param_4") (= "=") (identifier "puStack_16c")) (; ";")) (} "}"))) (expression_statement "param_4 = (uint *)((int)param_4 + iVar29);" (assignment_expression "param_4 = (uint *)((int)param_4 + iVar29)" (identifier "param_4") (= "=") (cast_expression "(uint *)((int)param_4 + iVar29)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_4 + iVar29)" (( "(") (binary_expression "(int)param_4 + iVar29" (cast_expression "(int)param_4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_4")) (+ "+") (identifier "iVar29")) () ")")))) (; ";")) (expression_statement "puStack_16c = param_4;" (assignment_expression "puStack_16c = param_4" (identifier "puStack_16c") (= "=") (identifier "param_4")) (; ";")) (if_statement "if (((int)param_4 < (int)puVar23) ||\n         (iVar30 = iStack_12c, puVar36 = puStack_88, (int)puVar38 < (int)param_4)) break;" (if "if") (parenthesized_expression "(((int)param_4 < (int)puVar23) ||\n         (iVar30 = iStack_12c, puVar36 = puStack_88, (int)puVar38 < (int)param_4))" (( "(") (binary_expression "((int)param_4 < (int)puVar23) ||\n         (iVar30 = iStack_12c, puVar36 = puStack_88, (int)puVar38 < (int)param_4)" (parenthesized_expression "((int)param_4 < (int)puVar23)" (( "(") (binary_expression "(int)param_4 < (int)puVar23" (cast_expression "(int)param_4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_4")) (< "<") (cast_expression "(int)puVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar23"))) () ")")) (|| "||") (parenthesized_expression "(iVar30 = iStack_12c, puVar36 = puStack_88, (int)puVar38 < (int)param_4)" (( "(") (comma_expression "iVar30 = iStack_12c, puVar36 = puStack_88, (int)puVar38 < (int)param_4" (assignment_expression "iVar30 = iStack_12c" (identifier "iVar30") (= "=") (identifier "iStack_12c")) (, ",") (comma_expression "puVar36 = puStack_88, (int)puVar38 < (int)param_4" (assignment_expression "puVar36 = puStack_88" (identifier "puVar36") (= "=") (identifier "puStack_88")) (, ",") (binary_expression "(int)puVar38 < (int)param_4" (cast_expression "(int)puVar38" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar38")) (< "<") (cast_expression "(int)param_4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_4"))))) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}")))) (labeled_statement "LAB_0004df68:\n  uStack_1e4 = 1;" (statement_identifier "LAB_0004df68") (: ":") (expression_statement "uStack_1e4 = 1;" (assignment_expression "uStack_1e4 = 1" (identifier "uStack_1e4") (= "=") (number_literal "1")) (; ";"))) (expression_statement "piVar17 = piStack_e0;" (assignment_expression "piVar17 = piStack_e0" (identifier "piVar17") (= "=") (identifier "piStack_e0")) (; ";")) (goto_statement "goto LAB_0004dbbc;" (goto "goto") (statement_identifier "LAB_0004dbbc") (; ";")) (labeled_statement "code_r0x0004ea7c:\n  uStack_1e4 = uStack_168;" (statement_identifier "code_r0x0004ea7c") (: ":") (expression_statement "uStack_1e4 = uStack_168;" (assignment_expression "uStack_1e4 = uStack_168" (identifier "uStack_1e4") (= "=") (identifier "uStack_168")) (; ";"))) (expression_statement "piVar17 = piStack_e0;" (assignment_expression "piVar17 = piStack_e0" (identifier "piVar17") (= "=") (identifier "piStack_e0")) (; ";")) (if_statement "if (uStack_168 == 0xc) goto LAB_0004dbbc;" (if "if") (parenthesized_expression "(uStack_168 == 0xc)" (( "(") (binary_expression "uStack_168 == 0xc" (identifier "uStack_168") (== "==") (number_literal "0xc")) () ")")) (goto_statement "goto LAB_0004dbbc;" (goto "goto") (statement_identifier "LAB_0004dbbc") (; ";"))) (expression_statement "uVar20 = 0x435;" (assignment_expression "uVar20 = 0x435" (identifier "uVar20") (= "=") (number_literal "0x435")) (; ";")) (labeled_statement "LAB_0004ea9c:\n  (**(code **)(puVar46 + 0x282f4))\n            (*(int *)(puVar46 + 0x27edc) + 0x2b30,*(int *)(puVar46 + 0x27edc) + 0x2ac0,uVar20,\n             *(int *)(puVar46 + 0x27edc) + 0x3030);" (statement_identifier "LAB_0004ea9c") (: ":") (expression_statement "(**(code **)(puVar46 + 0x282f4))\n            (*(int *)(puVar46 + 0x27edc) + 0x2b30,*(int *)(puVar46 + 0x27edc) + 0x2ac0,uVar20,\n             *(int *)(puVar46 + 0x27edc) + 0x3030);" (call_expression "(**(code **)(puVar46 + 0x282f4))\n            (*(int *)(puVar46 + 0x27edc) + 0x2b30,*(int *)(puVar46 + 0x27edc) + 0x2ac0,uVar20,\n             *(int *)(puVar46 + 0x27edc) + 0x3030)" (parenthesized_expression "(**(code **)(puVar46 + 0x282f4))" (( "(") (pointer_expression "**(code **)(puVar46 + 0x282f4)" (* "*") (pointer_expression "*(code **)(puVar46 + 0x282f4)" (* "*") (cast_expression "(code **)(puVar46 + 0x282f4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar46 + 0x282f4)" (( "(") (binary_expression "puVar46 + 0x282f4" (identifier "puVar46") (+ "+") (number_literal "0x282f4")) () ")"))))) () ")")) (argument_list "(*(int *)(puVar46 + 0x27edc) + 0x2b30,*(int *)(puVar46 + 0x27edc) + 0x2ac0,uVar20,\n             *(int *)(puVar46 + 0x27edc) + 0x3030)" (( "(") (binary_expression "*(int *)(puVar46 + 0x27edc) + 0x2b30" (pointer_expression "*(int *)(puVar46 + 0x27edc)" (* "*") (cast_expression "(int *)(puVar46 + 0x27edc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar46 + 0x27edc)" (( "(") (binary_expression "puVar46 + 0x27edc" (identifier "puVar46") (+ "+") (number_literal "0x27edc")) () ")")))) (+ "+") (number_literal "0x2b30")) (, ",") (binary_expression "*(int *)(puVar46 + 0x27edc) + 0x2ac0" (pointer_expression "*(int *)(puVar46 + 0x27edc)" (* "*") (cast_expression "(int *)(puVar46 + 0x27edc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar46 + 0x27edc)" (( "(") (binary_expression "puVar46 + 0x27edc" (identifier "puVar46") (+ "+") (number_literal "0x27edc")) () ")")))) (+ "+") (number_literal "0x2ac0")) (, ",") (identifier "uVar20") (, ",") (binary_expression "*(int *)(puVar46 + 0x27edc) + 0x3030" (pointer_expression "*(int *)(puVar46 + 0x27edc)" (* "*") (cast_expression "(int *)(puVar46 + 0x27edc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar46 + 0x27edc)" (( "(") (binary_expression "puVar46 + 0x27edc" (identifier "puVar46") (+ "+") (number_literal "0x27edc")) () ")")))) (+ "+") (number_literal "0x3030")) () ")"))) (; ";"))) (expression_statement "uVar6 = extraout_v1;" (assignment_expression "uVar6 = extraout_v1" (identifier "uVar6") (= "=") (identifier "extraout_v1")) (; ";")) (expression_statement "ppuVar24 = &puStack_144;" (assignment_expression "ppuVar24 = &puStack_144" (identifier "ppuVar24") (= "=") (pointer_expression "&puStack_144" (& "&") (identifier "puStack_144"))) (; ";")) (labeled_statement "LAB_0004eabc:\n  uVar31 = 8;" (statement_identifier "LAB_0004eabc") (: ":") (expression_statement "uVar31 = 8;" (assignment_expression "uVar31 = 8" (identifier "uVar31") (= "=") (number_literal "8")) (; ";"))) (goto_statement "goto LAB_0004dab0;" (goto "goto") (statement_identifier "LAB_0004dab0") (; ";")) (} "}")))

/* WARNING: Removing unreachable block (ram,0x0004da3c) */
/* WARNING: Type propagation algorithm not settling */

type_1 function_1(type_2 *mctx,type_3 *sctx)

{
  type_4 var_21;
  bool bVar2;
  bool bVar3;
  bool bVar4;
  bool var_62;
  type_5 *prVar6;
  type_6 extraout_var;
  type_1 var_3;
  type_7 *pcVar8;
  type_7 *pcVar9;
  type_7 *pcVar10;
  type_8 _Var28;
  int var_10;
  int *piVar12;
  type_9 *var_25;
  type_10 *var_32;
  type_11 var_35;
  type_12 **var_46;
  int var_13;
  type_5 *var_41;
  int var_52;
  int var_50;
  type_13 var_49;
  type_5 **var_58;
  char var_39;
  type_13 *var_75;
  int var_53;
  type_14 aVar25;
  type_15 *var_70;
  type_15 *var_69;
  bool bVar30;
  type_2 *var_18;
  int var_11;
  type_11 var_34;
  type_11 extraout_v1;
  int var_38;
  int var_59;
  int var_47;
  type_16 pbVar36;
  type_11 var_51;
  type_5 *var_54;
  type_5 *var_14;
  type_17 *var_15;
  type_18 *new_buf_len;
  type_11 var_36;
  type_12 *var_73;
  type_12 *prVar43;
  type_12 *in_a2;
  type_19 *src2;
  type_20 var_43;
  type_12 *var_22;
  type_18 *var_55;
  type_12 *var_72;
  type_21 *var_26;
  type_12 *var_17;
  type_5 *var_61;
  type_13 **nodes_1;
  type_12 *var_37;
  type_5 *prVar51;
  type_12 *unaff_s4;
  type_5 *var_45;
  int var_16;
  type_5 *var_7;
  type_12 *prVar53;
  int iVar54;
  type_12 *unaff_s7;
  type_7 *pcVar55;
  type_22 *var_19;
  int unaff_s8;
  type_5 *prStack_1f0;
  type_5 **var_66;
  type_5 *var_28;
  char *var_20;
  type_12 **var_63;
  type_5 *prStack_1d0;
  int var_74;
  type_12 *prStack_16c;
  type_18 var_56 [8];
  type_3 rStack_160;
  type_18 auStack_144 [128];
  int iStack_c4;
  type_23 **var_33;
  int var_31;
  type_12 *prStack_b8;
  type_3 *prStack_b4;
  type_2 *prStack_b0;
  type_12 *prStack_ac;
  type_12 *prStack_a8;
  int iStack_a4;
  type_5 *prStack_a0;
  type_12 *prStack_9c;
  int iStack_98;
  type_7 *pcStack_94;
  type_12 *prStack_88;
  type_12 *var_23;
  type_12 *prStack_7c;
  type_12 *var_24;
  type_15 *var_68;
  int var_6;
  type_19 cur_dest;
  
  var_19 = PTR___stack_chk_guard_00075be8;
  cur_dest.alloc = 1;
  cur_dest.nelem = 1;
  var_18 = *(type_2 **)PTR___stack_chk_guard_00075be8;
  var_17 = (type_12 *)sctx->last_str_idx;
  var_37 = (type_12 *)sctx->last_node;
  var_72 = (type_12 *)sctx;
  cur_dest.elems = (type_13 *)(*(type_7 *)PTR_malloc_00075b2c)(4);
  if (cur_dest.elems == (type_13 *)0x0) {
    var_3 = _REG_ESPACE;
  }
  else {
    *cur_dest.elems = (type_13)var_37;
    pcVar55 = (type_7 *)(var_1 + -0x1248);
    var_72 = (type_12 *)sctx;
    in_a2 = var_17;
    var_22 = (type_12 *)&cur_dest;
    var_3 = var_2(mctx,sctx,(type_13)var_17,&cur_dest);
    if (var_3 == var_4) {
      var_6 = 0;
      if (0 < (int)var_17) {
        pcVar8 = (type_7 *)(var_5 + 0x5610);
        pcVar9 = (type_7 *)(var_5 + 0x33f8);
        pcVar10 = (type_7 *)(var_5 + 0x5230);
        do {
          unaff_s7 = (type_12 *)((int)var_17 * 4);
          if (*(int *)((int)unaff_s7->word_char + (int)(sctx->sifted_states + -0x18)) == 0) {
            var_6 = var_6 + 1;
            if (mctx->max_mb_elem_len < var_6) goto LAB_0004d6a0;
          }
          else {
            var_6 = 0;
            if (mctx->max_mb_elem_len < 0) {
LAB_0004d6a0:
              var_72 = (type_12 *)0x0;
              in_a2 = unaff_s7;
              (*(type_7 *)PTR_memset_00075ad4)();
              (*(type_7 *)PTR_free_00075bfc)(cur_dest.elems);
              var_3 = var_4;
              goto LAB_0004d644;
            }
          }
          cur_dest.nelem = 0;
          var_7 = (mctx->state_log + (int)var_17)[-1];
          var_17 = (type_12 *)(var_17[-1].lock.__size + 0x17);
          if ((var_7 != (type_5 *)0x0) &&
             (unaff_s4 = mctx->dfa, 0 < (var_7->non_eps_nodes).nelem)) {
            var_16 = 0;
            do {
              var_37 = (type_12 *)(var_7->non_eps_nodes).elems[var_16];
              unaff_s8 = (int)var_37 * 8;
              var_15 = unaff_s4->nodes + (int)var_37;
              if ((*(type_11 *)&var_15->field_0x4 & 0x800) == 0) {
LAB_0004d464:
                _Var28 = var_8(mctx,var_15,(type_13)var_17);
                if ((var_9(extraout_var,_Var28) != 0) &&
                   (var_10 = *(int *)((int)unaff_s7->word_char + (int)(sctx->sifted_states + -0x18))
                   , var_10 != 0)) {
                  in_a2 = (type_12 *)unaff_s4->nexts[(int)var_37];
                  var_11 = (*pcVar10)(*(type_20 *)(var_10 + 8),var_10 + 0xc);
                  var_10 = 1;
                  if (var_11 != 0) goto LAB_0004d4b4;
                }
              }
              else {
                var_72 = mctx->dfa;
                var_11 = sctx->last_str_idx;
                in_a2 = var_37;
                var_22 = (type_12 *)mctx;
                var_23 = var_17;
                var_10 = var_12
                                   ((type_12 *)var_72->nodes,(type_13)&var_72->syntax,
                                    (type_24 *)var_37,(type_13)mctx,var_17);
                if (var_10 < 1) {
                  if (var_10 == 0) {
                    var_15 = unaff_s4->nodes;
                    goto LAB_0004d460;
                  }
                }
                else {
                  var_13 = (int)var_17->word_char + var_10 + -0x60;
                  if (var_13 <= var_11) {
                    var_14 = sctx->sifted_states[var_13];
                    if (var_14 != (type_5 *)0x0) {
                      in_a2 = (type_12 *)var_72->nexts[(int)var_37];
                      var_11 = (*pcVar10)((var_14->nodes).nelem,&(var_14->nodes).elems);
                      if (var_11 != 0) goto LAB_0004d4b4;
                    }
                    var_15 = unaff_s4->nodes;
LAB_0004d460:
                    var_15 = var_15 + (int)var_37;
                    goto LAB_0004d464;
                  }
                }
LAB_0004d4b4:
                if ((sctx->limits).nelem != 0) {
                  var_23 = (type_12 *)((int)var_17->word_char + var_10 + -0x60);
                  in_a2 = (type_12 *)&(sctx->limits).elems;
                  var_22 = (type_12 *)unaff_s4->nexts[(int)var_37];
                  var_10 = (*pcVar8)(mctx,&(sctx->limits).nelem);
                  prStack_7c = var_37;
                  var_24 = var_17;
                  if (var_10 != 0) goto LAB_0004d510;
                }
                var_72 = var_37;
                var_10 = (*pcVar9)((type_12 *)&cur_dest);
                if (var_10 == 0) {
                  var_3 = _REG_ESPACE;
                  goto LAB_0004d62c;
                }
              }
LAB_0004d510:
              var_16 = var_16 + 1;
              var_22 = (type_12 *)&cur_dest;
            } while (var_16 < (var_7->non_eps_nodes).nelem);
          }
          var_72 = (type_12 *)sctx;
          in_a2 = var_17;
          var_22 = (type_12 *)&cur_dest;
          var_3 = (*pcVar55)(mctx);
          if (var_3 != var_4) goto LAB_0004d62c;
        } while (var_17 != (type_12 *)0x0);
      }
      var_3 = var_4;
    }
LAB_0004d62c:
    (*(type_7 *)PTR_free_00075bfc)(cur_dest.elems);
  }
LAB_0004d644:
  if (var_18 == *(type_2 **)var_19) {
    return var_3;
  }
  pcVar55 = re_search_internal;
  var_19 = PTR___stack_chk_fail_00075ba8;
  (*(type_7 *)PTR___stack_chk_fail_00075ba8)();
  piVar12 = *(int **)(var_19 + 0x2850c);
  var_31 = *piVar12;
  prVar53 = (type_12 *)(var_18->input).raw_mbs;
  prStack_b8 = var_17;
  prStack_b4 = sctx;
  prStack_b0 = mctx;
  prStack_ac = var_37;
  prStack_a8 = unaff_s4;
  iStack_a4 = var_16;
  prStack_a0 = var_7;
  prStack_9c = unaff_s7;
  iStack_98 = unaff_s8;
  pcStack_94 = pcVar55;
  prStack_88 = in_a2;
  (**(type_7 **)(var_19 + 0x283f8))((type_2 *)auStack_144,0,0x88);
  var_20 = (char *)(var_18->input).cur_state.__count;
  if (var_20 != (char *)0x0) {
    var_21 = *(type_4 *)&(var_18->input).valid_len;
    if (((var_21 & 0x10) == 0) || (var_22 == var_23)) {
      var_20 = (char *)0x0;
    }
    else if ((char)var_21 < '\0') {
      var_20 = (char *)0x0;
    }
  }
  var_17 = (type_12 *)(var_18->input).raw_mbs_idx;
  if (var_17 < var_24) {
    var_55 = (type_18 *)((int)&var_24[-1].lock + 0x17);
    var_74 = (int)var_55 - (int)var_17;
    var_24 = (type_12 *)((int)var_24 + ((int)var_17 - (int)var_55));
    var_25 = (var_18->input).wcs;
  }
  else {
    var_25 = (var_18->input).wcs;
    var_74 = 0;
  }
  auStack_144._84_4_ = prVar53;
  if ((((var_25 == (type_9 *)0x0) || (prVar53->init_state == (type_5 *)0x0)) ||
      (prVar53->init_state_word == (type_5 *)0x0)) ||
     ((prVar53->init_state_nl == (type_5 *)0x0 ||
      (prVar53->init_state_begbuf == (type_5 *)0x0)))) {
LAB_0004db54:
    var_28 = (type_5 *)0x1;
    goto LAB_0004db58;
  }
  if ((((prVar53->init_state->nodes).nelem == 0) && ((prVar53->init_state_word->nodes).nelem == 0))
     && (((prVar53->init_state_nl->nodes).nelem == 0 || (((var_18->input).valid_len & 0x1000000) == 0)
         ))) {
    if (var_22 == (type_12 *)0x0) {
      var_23 = (type_12 *)0x0;
    }
    else {
      if (var_23 != (type_12 *)0x0) goto LAB_0004db54;
      var_22 = (type_12 *)0x0;
    }
  }
  if (var_24 == (type_12 *)0x0) {
    bVar30 = prVar53->nbackref != 0;
  }
  else {
    bVar30 = true;
  }
  auStack_144._80_4_ = prVar53->mb_cur_max;
  var_55 = (type_18 *)(prVar53->nodes_len + 1);
  var_26 = (type_21 *)(var_18->input).cur_state.__value.__wch;
  if ((int)var_55 < (int)auStack_144._80_4_) {
    var_55 = (type_18 *)auStack_144._80_4_;
  }
  new_buf_len = (type_18 *)((int)&prStack_88->nodes + 1);
  auStack_144[0x48] = (type_4)((type_11)((int)(var_18->input).offsets << 9) >> 0x1f);
  auStack_144[0x4b] = 1;
  if (var_26 == (type_21 *)0x0) {
    auStack_144[0x4b] = auStack_144[0x48];
  }
  if ((int)var_55 <= (int)new_buf_len) {
    new_buf_len = var_55;
  }
  auStack_144[0x49] = (type_4)((type_11)(*(int *)&prVar53->field_0x58 << 2) >> 0x1f);
  auStack_144[0x4a] = (type_4)((type_11)(*(int *)&prVar53->field_0x58 << 3) >> 0x1f);
  auStack_144._48_4_ = prStack_88;
  auStack_144._44_4_ = prStack_88;
  auStack_144._56_4_ = prStack_88;
  auStack_144._52_4_ = prStack_88;
  auStack_144._0_4_ = var_72;
  auStack_144._64_4_ = var_26;
  var_28 = (type_5 *)
                var_27((type_24 *)auStack_144,(type_13)new_buf_len);
  var_58 = (type_5 **)auStack_144._100_4_;
  if (var_28 != (type_5 *)0x0) {
LAB_0004dbbc:
    while( true ) {
      pcVar55 = *(type_7 **)(var_19 + 0x28520);
LAB_0004dbc0:
      (*pcVar55)(var_58);
      if (prVar53->nbackref != 0) {
LAB_0004dc14:
        var_29((type_2 *)auStack_144);
        (**(type_7 **)(var_19 + 0x28520))(var_33);
        (**(type_7 **)(var_19 + 0x28520))(auStack_144._116_4_);
      }
LAB_0004dbd4:
      var_30((type_24 *)auStack_144);
LAB_0004db58:
      if (var_31 == *piVar12) break;
      var_28 = (type_5 *)(**(type_7 **)(var_19 + 0x284cc))();
      var_58 = (type_5 **)auStack_144._100_4_;
    }
    return (type_1)var_28;
  }
  auStack_144._68_4_ = prVar53->word_char;
  auStack_144[0x4e] = (type_4)((type_11)(*(int *)&prVar53->field_0x58 << 4) >> 0x1f);
  if ((auStack_144[0x4b] != 0) ||
     (auStack_144._4_4_ = var_72, auStack_144._28_4_ = prStack_88, 1 < prVar53->mb_cur_max)) {
    auStack_144._28_4_ = (type_12 *)0x0;
  }
  auStack_144._56_4_ = prStack_7c;
  auStack_144._52_4_ = prStack_7c;
  auStack_144._32_4_ = auStack_144._28_4_;
  auStack_144[0x4d] = (type_4)((type_11)((var_18->input).valid_len << 7) >> 0x1f);
  var_10 = prVar53->nbackref;
  var_11 = var_10 * 2;
  auStack_144._88_4_ = &_gp;
  auStack_144._92_4_ = (type_5 *)0xffffffff;
  if (0 < var_11) {
    if (0xccccccc < var_11) goto LAB_0004dbf8;
    var_32 = (type_10 *)(**(type_7 **)(var_19 + 0x28450))(var_10 * 0x28);
    auStack_144._116_4_ = var_32;
    var_33 = (type_23 **)(**(type_7 **)(var_19 + 0x28450))(var_10 * 8);
    if ((var_32 == (type_10 *)0x0) || (var_33 == (type_23 **)0x0))
    goto LAB_0004dbf8;
  }
  auStack_144._112_4_ = var_11;
  iStack_c4 = var_11;
  bVar2 = (type_12 *)0x1 < var_24;
  auStack_144._120_4_ = (type_14)0x1;
  if ((bVar2) || ((prVar53->field_0x58 & 0x40) != 0)) {
    if (0x3ffffffe < (type_11)auStack_144._36_4_) {
LAB_0004dbf8:
      var_28 = (type_5 *)0xc;
      (**(type_7 **)(var_19 + 0x28520))(auStack_144._100_4_);
      if (prVar53->nbackref == 0) goto LAB_0004dbd4;
      goto LAB_0004dc14;
    }
    auStack_144._100_4_ = (**(type_7 **)(var_19 + 0x28450))((auStack_144._36_4_ + 1) * 4);
    var_58 = (type_5 **)auStack_144._100_4_;
    if ((type_5 **)auStack_144._100_4_ == (type_5 **)0x0) {
LAB_0004dbb4:
      var_28 = (type_5 *)0xc;
      goto LAB_0004dbbc;
    }
  }
  else {
    auStack_144._100_4_ = (type_5 **)0x0;
  }
  var_11 = prVar53->mb_cur_max;
  var_10 = -1;
  prStack_16c = var_22;
  auStack_144._60_4_ = 6;
  var_34 = (type_11)((int)var_23 < (int)var_22);
  var_72 = var_23;
  if (var_34 == 0) {
    var_10 = 1;
    var_72 = var_22;
  }
  if ((int)var_23 <= (int)var_22) {
    var_23 = var_22;
  }
  if (var_20 == (char *)0x0) goto LAB_0004eabc;
  var_35 = 4;
  if (((var_11 != 1) && (var_35 = 0, -1 < (int)(var_18->input).offsets << 9)) &&
     (var_35 = 4, var_26 != (type_21 *)0x0)) {
    var_35 = 0;
  }
  var_36 = 2;
  if (var_34 != 0) {
    var_36 = 0;
  }
  var_36 = var_26 != (type_21 *)0x0 | var_35 | var_36;
LAB_0004dab0:
  if (((int)var_72 <= (int)var_22) && ((int)var_22 <= (int)var_23)) {
    var_46 = &prStack_16c;
    if (var_34 != 0) {
      var_46 = (type_12 **)0x0;
    }
    var_38 = *(int *)(var_19 + 0x28244);
    var_13 = *(int *)(var_19 + 0x27edc);
    var_59 = *(int *)(var_19 + 0x2829c);
    pbVar36 = (type_16)auStack_144._24_4_;
    var_17 = prStack_88;
    do {
      prStack_88 = var_17;
      if (var_36 - 4 < 5) {
                    /* WARNING: Could not recover jumptable at 0x0004db3c. Too many branches */
                    /* WARNING: Treating indirect jump as call */
        var_3 = (*(type_7 *)(var_19 + *(int *)(var_13 + 0x2be4 + (var_36 - 4) * 4) + 0x2fea4))();
        return var_3;
      }
      auStack_144._24_4_ = pbVar36;
      while( true ) {
        var_37 = (type_12 *)((int)var_22 - (int)pbVar36);
        if ((type_11)auStack_144._32_4_ <= var_37) {
          var_28 = (type_5 *)
                        (*(type_7 *)(var_38 + 0x7eac))((type_2 *)auStack_144,var_22,&_gp);
          var_58 = (type_5 **)auStack_144._100_4_;
          if (var_28 != (type_5 *)0x0) goto LAB_0004dbbc;
          var_37 = (type_12 *)((int)var_22 - auStack_144._24_4_);
          pbVar36 = (type_16)auStack_144._24_4_;
        }
        if ((int)var_22 < (int)var_17) {
          var_39 = var_20
                   [*(type_4 *)((int)(((type_12 *)
                                    (((type_12 *)(var_37->word_char + -0x18))->word_char + -0x18))
                                    ->word_char + 0xffffffe8) +
                             (int)((type_12 *)
                                  (((type_12 *)
                                   (((type_12 *)
                                    ((type_25 *)(auStack_144._4_4_ + 0x60) + -0x18))->
                                    word_char + -0x18))->word_char + -0x18))->word_char +
                             0xffffffa0U)];
        }
        else {
          var_39 = *var_20;
        }
        if (var_39 != '\0') break;
        var_22 = (type_12 *)((int)var_22->word_char + var_10 + -0x60);
        prStack_16c = var_22;
        if (((int)var_22 < (int)var_72) || ((int)var_23 < (int)var_22)) goto LAB_0004df68;
      }
      var_41 = (type_5 *)
                var_40((type_24 *)auStack_144,(type_13)var_22,0x7d580);
      var_43 = auStack_144._84_4_;
      var_14 = (type_5 *)auStack_144._40_4_;
      var_58 = (type_5 **)auStack_144._100_4_;
      var_28 = var_41;
      if (var_41 != (type_5 *)0x0) goto LAB_0004dbbc;
      if (((var_11 == 1) || ((type_12 *)auStack_144._28_4_ == (type_12 *)0x0)) ||
         (*(type_26 *)auStack_144._8_4_ != 0xffffffff)) {
        auStack_144._120_4_ = (type_14)0x0;
        auStack_144._108_4_ = 0;
        var_45 = *(type_5 **)(auStack_144._84_4_ + 0x24);
        prStack_1d0 = (type_5 *)auStack_144._40_4_;
        auStack_144._104_4_ = 0;
        var_56._0_4_ = (type_5 *)0x0;
        if ((var_45->field_0x34 & 1) != 0) {
          var_34 = var_42
                             ((type_24 *)auStack_144,
                              (type_13)&((type_5 *)(auStack_144._40_4_ + -0x38))->field_0x37,
                              auStack_144._88_4_);
          if ((var_34 & 1) == 0) {
            if (var_34 == 0) goto LAB_0004dd24;
            if ((var_34 & 6) == 6) {
              var_45 = *(type_5 **)(var_43 + 0x30);
            }
            else if ((var_34 & 2) == 0) {
              if ((var_34 & 4) == 0) goto LAB_0004dd24;
              var_45 = var_44
                                  ((type_1 *)var_56,(type_12 *)var_43,
                                   var_45->entrance_nodes,var_34);
            }
            else {
              var_45 = *(type_5 **)(var_43 + 0x2c);
            }
          }
          else {
            var_45 = *(type_5 **)(var_43 + 0x28);
          }
          if (var_45 == (type_5 *)0x0) goto code_r0x0004ea7c;
        }
LAB_0004dd24:
        bVar4 = var_46 != (type_12 **)0x0;
        if (((type_5 **)auStack_144._100_4_ == (type_5 **)0x0) ||
           (var_47 = *(type_13 *)(var_43 + 0x4c),
           *(type_5 **)(auStack_144._100_4_ + (int)var_14 * 4) = var_45, var_47 == 0)) {
LAB_0004dd48:
          if (*(int *)&var_45->field_0x34 << 4 < 0) {
            if (((var_45->field_0x34 & 1) == 0) ||
               (var_49 = var_48
                                   ((type_2 *)auStack_144,
                                    (type_5 *)(var_45->nodes).nelem,
                                    (type_13)&(var_45->nodes).elems,var_14), var_49 != 0)) {
              var_54 = var_14;
              var_62 = bVar30;
              if (!bVar30) goto LAB_0004e0e4;
            }
            else {
              var_14 = (type_5 *)0xffffffff;
              var_62 = false;
            }
          }
          else {
            var_14 = (type_5 *)0xffffffff;
            var_62 = false;
          }
          var_47 = *(int *)(var_19 + 0x28244);
          var_52 = *(int *)(var_19 + 0x2829c);
          var_54 = (type_5 *)auStack_144._40_4_;
          var_63 = var_46;
          while ((int)var_54 < (int)auStack_144._56_4_) {
            prVar51 = (type_5 *)((int)&var_54->hash + 1);
            if ((((int)prVar51 < (int)auStack_144._36_4_) ||
                ((int)auStack_144._48_4_ <= (int)auStack_144._36_4_)) &&
               (((int)prVar51 < (int)auStack_144._28_4_ ||
                ((int)auStack_144._48_4_ <= (int)auStack_144._28_4_)))) {
              var_50 = *(int *)&var_45->field_0x34;
              var_17 = (type_12 *)auStack_144._84_4_;
            }
            else {
              var_56._0_4_ =
                   (*(type_7 *)(var_47 + 0x41e4))
                             ((type_2 *)auStack_144,
                              (type_18 *)((int)&var_54->hash + 2));
              if ((type_5 *)var_56._0_4_ != (type_5 *)0x0) {
                if ((type_5 *)var_56._0_4_ == (type_5 *)0xc) goto LAB_0004dbf8;
                var_43 = 0x46c;
                goto LAB_0004ea9c;
              }
              var_50 = *(int *)&var_45->field_0x34;
              var_54 = (type_5 *)auStack_144._40_4_;
              var_17 = (type_12 *)auStack_144._84_4_;
            }
            auStack_144._84_4_ = var_17;
            if (var_50 << 5 < 0) {
              var_50 = (var_45->nodes).nelem;
              if (0 < var_50) {
                var_22 = (type_12 *)0x0;
                var_53 = *(int *)(var_19 + 0x28244);
                pcVar55 = (type_7 *)(*(int *)(var_19 + 0x28244) + 0x7ab0);
                do {
                  var_15 = var_17->nodes;
                  iVar54 = (var_45->nodes).elems[(int)var_22];
                  var_34 = *(type_11 *)&var_15[iVar54].field_0x4;
                  if ((var_34 & 0x800) != 0) {
                    if ((var_34 & 0xffc000) != 0) {
                      var_35 = (*pcVar55)((type_2 *)auStack_144,var_54,
                                          auStack_144._88_4_);
                      var_34 = (var_34 << 8) >> 0x16;
                      if ((var_34 & 4) == 0) {
                        var_51 = var_35 & 1;
                        if ((var_34 & 8) != 0) goto joined_r0x0004e514;
                      }
                      else {
                        var_51 = var_34 & 8;
                        if ((var_35 & 1) == 0) goto LAB_0004e670;
joined_r0x0004e514:
                        if (var_51 != 0) goto LAB_0004e670;
                      }
                      if ((((var_34 & 0x20) != 0) && ((var_35 & 2) == 0)) ||
                         (((var_34 & 0x80) != 0 && ((var_35 & 8) == 0)))) goto LAB_0004e670;
                    }
                    aVar25.__spins =
                         (*(type_7 *)(var_52 + -0x4eb0))
                                   (var_15,&var_17->syntax,iVar54,
                                    (type_2 *)auStack_144,var_54);
                    if (aVar25.__spins != 0) {
                      if ((int)auStack_144._120_4_ < aVar25.__spins) {
                        auStack_144._120_4_ = aVar25.__spins;
                      }
                      var_55 = (type_18 *)
                                ((int)(type_26 *)auStack_144._40_4_ + aVar25.__spins);
                      var_56._4_4_ =
                           (*(type_7 *)(var_53 + 0x43b0))((type_2 *)auStack_144,var_55);
                      var_54 = (type_5 *)var_56._4_4_;
                      if ((type_5 *)var_56._4_4_ != (type_5 *)0x0)
                      goto joined_r0x0004e770;
                      var_50 = (int)var_55 * 4;
                      var_58 = (type_5 **)(auStack_144._100_4_ + var_50);
                      var_54 = *var_58;
                      src2 = var_17->eclosures + var_17->nexts[iVar54];
                      if (var_54 == (type_5 *)0x0) {
                        rStack_160.sifted_states = (type_5 **)src2->alloc;
                        rStack_160.limited_states = (type_5 **)src2->nelem;
                        rStack_160.last_node = (type_13)src2->elems;
                        var_34 = (*pcVar55)((type_2 *)auStack_144,
                                            (type_5 *)(var_55 + -1),auStack_144._88_4_);
                        var_54 = var_44
                                            ((type_1 *)(var_56 + 4),var_17,
                                             (type_19 *)(var_56 + 8),var_34);
                        *var_58 = var_54;
                      }
                      else {
                        var_56._4_4_ =
                             var_57
                                       ((type_19 *)(var_56 + 8),var_54->entrance_nodes,
                                        src2);
                        var_54 = (type_5 *)var_56._4_4_;
                        if ((type_5 *)var_56._4_4_ != (type_5 *)0x0)
                        goto joined_r0x0004e770;
                        var_34 = (*pcVar55)((type_2 *)auStack_144,
                                            (type_5 *)(var_55 + -1),auStack_144._88_4_);
                        var_58 = (type_5 **)(auStack_144._100_4_ + var_50);
                        var_54 = var_44
                                            ((type_1 *)(var_56 + 4),var_17,
                                             (type_19 *)(var_56 + 8),var_34);
                        pcVar8 = *(type_7 **)(var_19 + 0x28520);
                        *var_58 = var_54;
                        (*pcVar8)(rStack_160.last_node);
                      }
                      if ((*(type_5 **)(auStack_144._100_4_ + var_50) == (type_5 *)0x0
                          ) && (var_54 = (type_5 *)var_56._4_4_,
                               (type_5 *)var_56._4_4_ != (type_5 *)0x0))
                      goto joined_r0x0004e770;
                    }
                    var_50 = (var_45->nodes).nelem;
                    var_54 = (type_5 *)auStack_144._40_4_;
                  }
LAB_0004e670:
                  var_22 = (type_12 *)((int)&((type_24 *)&var_22->nodes)->raw_mbs + 1);
                } while ((int)var_22 < var_50);
              }
              var_56._0_4_ = (type_5 *)0x0;
            }
            auStack_144._40_4_ = (int)&var_54->hash + 1;
            var_34 = (type_11)*(type_4 *)((int)((type_12 *)
                                          ((type_25 *)(auStack_144._4_4_ + 0x60) + -0x18))->
                                          word_char + (int)&var_54[-2].non_eps_nodes);
            do {
              if (var_45->trtable != (type_5 **)0x0) {
                var_61 = var_45->trtable[var_34];
LAB_0004ddf0:
                if ((type_5 **)auStack_144._100_4_ != (type_5 **)0x0)
                goto LAB_0004ddfc;
                goto LAB_0004de1c;
              }
              var_58 = var_45->word_trtable;
              if (var_58 != (type_5 **)0x0) {
                var_35 = var_42
                                   ((type_24 *)auStack_144,
                                    (type_13)&((type_5 *)(auStack_144._40_4_ + -0x38))->
                                          field_0x37,auStack_144._88_4_);
                if ((var_35 & 1) == 0) {
                  var_61 = var_58[var_34];
                }
                else {
                  var_61 = var_58[var_34 + 0x100];
                }
                goto LAB_0004ddf0;
              }
              var_50 = (*(type_7 *)(var_59 + -0x7510))(auStack_144._84_4_,var_45);
            } while (var_50 != 0);
            var_56._0_4_ = (type_5 *)0xc;
            var_54 = (type_5 *)var_56._0_4_;
joined_r0x0004e770:
            var_56._0_4_ = var_54;
            if ((type_5 **)auStack_144._100_4_ == (type_5 **)0x0) {
              var_58 = (type_5 **)0x0;
              goto LAB_0004dbb4;
            }
            var_61 = (type_5 *)0x0;
LAB_0004ddfc:
            var_61 = var_60
                                ((type_1 *)var_56,(type_2 *)auStack_144,
                                 var_61);
LAB_0004de1c:
            var_54 = (type_5 *)auStack_144._40_4_;
            if (var_61 == (type_5 *)0x0) {
              var_58 = (type_5 **)auStack_144._100_4_;
              if ((type_5 *)var_56._0_4_ != (type_5 *)0x0) goto LAB_0004dbb4;
              if (((type_5 **)auStack_144._100_4_ == (type_5 **)0x0) ||
                 ((var_62 && (!bVar30)))) break;
              var_22 = (type_12 *)var_56;
              do {
                bVar3 = false;
                var_58 = (type_5 **)(auStack_144._100_4_ + auStack_144._40_4_ * 4);
                var_54 = (type_5 *)auStack_144._40_4_;
                do {
                  var_61 = (type_5 *)((int)&var_54->hash + 1);
                  var_58 = var_58 + 1;
                  if ((int)auStack_144._104_4_ < (int)var_61) {
                    if (bVar3) {
                      auStack_144._40_4_ = var_54;
                    }
                    goto LAB_0004e0cc;
                  }
                  bVar3 = true;
                  var_54 = var_61;
                } while (*var_58 == (type_5 *)0x0);
                auStack_144._40_4_ = var_61;
                var_61 = var_60
                                    ((type_1 *)var_22,(type_2 *)auStack_144,
                                     (type_5 *)0x0);
                var_54 = (type_5 *)auStack_144._40_4_;
                if ((type_5 *)var_56._0_4_ != (type_5 *)0x0) {
                  if (var_61 == (type_5 *)0x0) goto LAB_0004e0cc;
                  break;
                }
              } while (var_61 == (type_5 *)0x0);
            }
            prVar6 = prStack_1d0;
            if ((bVar4) && (prVar6 = prVar51, var_45 != var_61)) {
              bVar4 = false;
              prVar6 = prStack_1d0;
            }
            prStack_1d0 = prVar6;
            var_45 = var_61;
            auStack_144._40_4_ = var_54;
            if (((var_61->field_0x34 & 8) != 0) &&
               (((var_61->field_0x34 & 1) == 0 ||
                (var_49 = var_48
                                    ((type_2 *)auStack_144,
                                     (type_5 *)(var_61->nodes).nelem,
                                     (type_13)&(var_61->nodes).elems,var_54), var_49 != 0)))) {
              if (!bVar30) goto LAB_0004e0e4;
              var_63 = (type_12 **)0x0;
              var_14 = var_54;
              var_62 = bVar30;
            }
          }
LAB_0004e0cc:
          var_54 = var_14;
          if (var_63 != (type_12 **)0x0) {
            *var_63 = (type_12 *)((int)&prStack_1d0->hash + (int)*var_63);
          }
        }
        else {
          var_75 = &(var_45->nodes).nelem;
          nodes_1 = &(var_45->nodes).elems;
          var_54 = (type_5 *)
                    var_64
                              ((type_2 *)auStack_144,(type_19 *)var_75,(type_13)nodes_1
                               ,(type_19 *)0x0);
          var_56._0_4_ = var_54;
          if (var_54 == (type_5 *)0x0) {
            if ((var_45->field_0x34 & 2) == 0) {
              bVar4 = false;
            }
            else {
              var_54 = (type_5 *)
                        var_65((type_2 *)auStack_144,(type_19 *)var_75
                                            ,(type_19 *)nodes_1);
              var_56._0_4_ = var_54;
              if (var_54 != (type_5 *)0x0) goto LAB_0004e0e4;
              bVar4 = false;
            }
            goto LAB_0004dd48;
          }
        }
LAB_0004e0e4:
        var_58 = (type_5 **)auStack_144._100_4_;
        if (var_54 != (type_5 *)0xffffffff) {
          if (var_54 == (type_5 *)&SUB_fffffffe) goto LAB_0004dbf8;
          auStack_144._92_4_ = var_54;
          if (((var_18->input).valid_len & 0x8000000) == 0) {
            if (!bVar2) {
              var_47 = prVar53->nbackref;
              goto joined_r0x0004e94c;
            }
            pcVar55 = (type_7 *)(*(int *)(var_19 + 0x28244) + 0x7d8c);
            var_14 = *(type_5 **)(auStack_144._100_4_ + (int)var_54 * 4);
            auStack_144._96_4_ =
                 var_48
                           ((type_2 *)auStack_144,
                            (type_5 *)(var_14->nodes).nelem,(type_13)&(var_14->nodes).elems,
                            var_54);
            if (((char)prVar53->field_0x58 < '\0') || (prVar53->nbackref != 0)) goto LAB_0004e170;
          }
          else {
            var_47 = prVar53->nbackref;
joined_r0x0004e94c:
            if (var_47 != 0) {
              pcVar55 = (type_7 *)(*(int *)(var_19 + 0x28244) + 0x7d8c);
              var_14 = *(type_5 **)(auStack_144._100_4_ + (int)var_54 * 4);
              auStack_144._96_4_ =
                   var_48
                             ((type_2 *)auStack_144,
                              (type_5 *)(var_14->nodes).nelem,(type_13)&(var_14->nodes).elems,
                              var_54);
LAB_0004e170:
              var_75 = (type_13 *)auStack_144._96_4_;
              var_43 = auStack_144._84_4_;
              if (var_54 < (type_5 *)0x3fffffff) {
                prStack_1f0 = (type_5 *)((int)&var_54->hash + 1);
                var_58 = (type_5 **)(**(type_7 **)(var_19 + 0x28450))((int)prStack_1f0 * 4);
                if (var_58 == (type_5 **)0x0) goto LAB_0004dbf8;
                if (*(type_13 *)(var_43 + 0x4c) == 0) {
                  rStack_160.limited_states = (type_5 **)0x0;
                  rStack_160.limits.alloc = 0;
                  rStack_160.limits.nelem = 0;
                  rStack_160.limits.elems = (type_13 *)0x0;
                  rStack_160.sifted_states = var_58;
                  rStack_160.last_node = (type_13)var_75;
                  rStack_160.last_str_idx = (type_13)var_54;
                  var_28 = (type_5 *)
                                function_1
                                          ((type_2 *)auStack_144,
                                           (type_3 *)(var_56 + 8));
                  (**(type_7 **)(var_19 + 0x28520))(rStack_160.limits.elems);
                  if (var_28 == (type_5 *)0x0) {
                    if (*var_58 == (type_5 *)0x0) {
                      (**(type_7 **)(var_19 + 0x28520))(var_58);
                      goto LAB_0004e2d4;
                    }
LAB_0004e9f8:
                    (**(type_7 **)(var_19 + 0x28520))(auStack_144._100_4_);
                    auStack_144._92_4_ = var_54;
                    auStack_144._96_4_ = var_75;
                    auStack_144._100_4_ = var_58;
                    goto LAB_0004e7e0;
                  }
LAB_0004ed18:
                  var_66 = (type_5 **)0x0;
                }
                else {
                  var_66 = (type_5 **)
                                 (**(type_7 **)(var_19 + 0x28450))((int)prStack_1f0 * 4);
                  if (var_66 == (type_5 **)0x0) {
                    (**(type_7 **)(var_19 + 0x28520))(var_58);
                    var_28 = (type_5 *)0xc;
                    var_58 = (type_5 **)auStack_144._100_4_;
                    goto LAB_0004dbbc;
                  }
                  var_47 = *(int *)(var_19 + 0x2829c);
                  while( true ) {
                    (**(type_7 **)(var_19 + 0x283f8))(var_66,0,(int)prStack_1f0 * 4);
                    rStack_160.limits.alloc = 0;
                    rStack_160.limits.nelem = 0;
                    rStack_160.limits.elems = (type_13 *)0x0;
                    rStack_160.sifted_states = var_58;
                    rStack_160.limited_states = var_66;
                    rStack_160.last_node = (type_13)var_75;
                    rStack_160.last_str_idx = (type_13)var_54;
                    var_28 = (type_5 *)
                                  (*(type_7 *)(var_47 + -0x2cf4))
                                            ((type_2 *)auStack_144,var_56 + 8);
                    (**(type_7 **)(var_19 + 0x28520))(rStack_160.limits.elems);
                    if (var_28 != (type_5 *)0x0) break;
                    if ((*var_58 != (type_5 *)0x0) ||
                       (*var_66 != (type_5 *)0x0)) {
                      var_28 = (type_5 *)
                                    var_67((type_12 *)var_43,var_58,var_66,
                                                      (type_13)prStack_1f0);
                      (**(type_7 **)(var_19 + 0x28520))(var_66);
                      if (var_28 != (type_5 *)0x0) goto LAB_0004ed18;
                      goto LAB_0004e9f8;
                    }
                    var_52 = auStack_144._100_4_ + (int)prStack_1f0 * 4 + -4;
                    prStack_1f0 = var_54;
                    while( true ) {
                      var_54 = (type_5 *)&prStack_1f0[-1].field_0x37;
                      if (var_54 == (type_5 *)0xffffffff) {
                        (**(type_7 **)(var_19 + 0x28520))(var_58);
                        (**(type_7 **)(var_19 + 0x28520))(var_66);
                        goto LAB_0004e2d4;
                      }
                      var_50 = *(int *)(var_52 + -4);
                      if ((var_50 != 0) && ((*(type_4 *)(var_50 + 0x34) & 8) != 0)) break;
                      var_52 = var_52 + -4;
                      prStack_1f0 = var_54;
                    }
                    var_75 = (type_13 *)(*pcVar55)((type_2 *)auStack_144,
                                                *(type_20 *)(var_50 + 8),var_50 + 0xc,var_54);
                  }
                }
                (**(type_7 **)(var_19 + 0x28520))(var_58);
                (**(type_7 **)(var_19 + 0x28520))(var_66);
                var_58 = (type_5 **)auStack_144._100_4_;
                if (var_28 == (type_5 *)0x1) goto LAB_0004e2d4;
                goto LAB_0004dbbc;
              }
              var_28 = (type_5 *)0xc;
              goto LAB_0004dbbc;
            }
          }
LAB_0004e7e0:
          var_58 = (type_5 **)auStack_144._100_4_;
          var_28 = var_41;
          if (var_24 == (type_12 *)0x0) goto LAB_0004dbbc;
          var_49 = (var_18->input).valid_len;
          if (bVar2) {
            var_69 = var_68 + 1;
            do {
              var_69->rm_eo = -1;
              var_70 = var_69 + 1;
              var_69->rm_so = -1;
              var_69 = var_70;
            } while (var_68 + (int)var_24 != var_70);
            var_68->rm_so = 0;
            var_68->rm_eo = auStack_144._92_4_;
            if ((var_49 & 0x8000000) == 0) {
              if ((char)prVar53->field_0x58 < '\0') {
                bVar30 = 0 < prVar53->nbackref;
              }
              else {
                bVar30 = false;
              }
              var_28 = (type_5 *)
                            var_71((type_27 *)var_18,(type_2 *)auStack_144,
                                     (size_t)var_24,var_68,bVar30);
              var_58 = (type_5 **)auStack_144._100_4_;
              if (var_28 != (type_5 *)0x0) goto LAB_0004dbbc;
              var_72 = (type_12 *)var_68->rm_so;
            }
            else {
LAB_0004e838:
              var_72 = (type_12 *)0x0;
            }
            var_17 = (type_12 *)0x0;
            var_69 = var_68;
            while( true ) {
              if (var_72 != (type_12 *)0xffffffff) {
                var_73 = (type_12 *)var_69->rm_eo;
                var_37 = var_72;
                prVar43 = var_73;
                if (auStack_144[0x4c] != '\0') {
                  var_37 = (type_12 *)auStack_144._32_4_;
                  if ((type_12 *)auStack_144._28_4_ != var_72) {
                    var_37 = (type_12 *)((type_26 *)auStack_144._12_4_)[(int)var_72];
                  }
                  var_69->rm_so = (type_28)var_37;
                  prVar43 = (type_12 *)auStack_144._32_4_;
                  if ((type_12 *)auStack_144._28_4_ != var_73) {
                    prVar43 = (type_12 *)((type_26 *)auStack_144._12_4_)[(int)var_73];
                  }
                }
                var_69->rm_so =
                     (int)(((type_12 *)
                           (((type_12 *)(var_37->word_char + -0x18))->word_char + -0x18))->
                           word_char + 0xffffffe8) +
                     (int)((type_12 *)
                          (((type_12 *)
                           (((type_12 *)(prStack_16c->word_char + -0x18))->word_char + -0x18))->
                           word_char + -0x18))->word_char + 0xffffffa0U;
                var_69->rm_eo =
                     (int)(((type_12 *)
                           (((type_12 *)(prVar43->word_char + -0x18))->word_char + -0x18))->
                           word_char + 0xffffffe8) +
                     (int)((type_12 *)
                          (((type_12 *)
                           (((type_12 *)(prStack_16c->word_char + -0x18))->word_char + -0x18))->
                           word_char + -0x18))->word_char + 0xffffffa0U;
              }
              var_17 = (type_12 *)((int)&var_17->nodes + 1);
              var_69 = var_69 + 1;
              if (var_17 == var_24) break;
              var_72 = (type_12 *)var_69->rm_so;
            }
            if (0 < var_74) {
              var_69 = var_68 + (int)var_24;
              do {
                var_69->rm_so = -1;
                var_70 = var_69 + 1;
                var_69->rm_eo = -1;
                var_69 = var_70;
              } while (var_68 + (int)var_24->word_char + var_74 + -0x60 != var_70);
            }
            var_75 = prVar53->subexp_map;
            var_58 = (type_5 **)auStack_144._100_4_;
            var_28 = var_41;
            if (var_75 != (type_13 *)0x0) {
              var_55 = (type_18 *)0x0;
              var_69 = var_68;
              do {
                pcVar55 = *(type_7 **)(var_19 + 0x28520);
                if (var_55 == (type_18 *)((int)&var_24[-1].lock + 0x17)) goto LAB_0004dbc0;
                if ((type_18 *)*var_75 != var_55) {
                  var_69[1].rm_so = var_68[(int)((type_18 *)*var_75 + 1)].rm_so;
                  var_69[1].rm_eo = var_68[*var_75 + 1].rm_eo;
                }
                var_55 = var_55 + 1;
                var_75 = var_75 + 1;
                var_69 = var_69 + 1;
              } while( true );
            }
            goto LAB_0004dbbc;
          }
          var_68->rm_so = 0;
          var_68->rm_eo = auStack_144._92_4_;
          goto LAB_0004e838;
        }
LAB_0004e2d4:
        var_29((type_2 *)auStack_144);
        var_22 = prStack_16c;
      }
      var_22 = (type_12 *)((int)var_22->word_char + var_10 + -0x60);
      prStack_16c = var_22;
      if (((int)var_22 < (int)var_72) ||
         (pbVar36 = (type_16)auStack_144._24_4_, var_17 = prStack_88,
         (int)var_23 < (int)var_22)) break;
    } while( true );
  }
LAB_0004df68:
  var_28 = (type_5 *)0x1;
  var_58 = (type_5 **)auStack_144._100_4_;
  goto LAB_0004dbbc;
code_r0x0004ea7c:
  var_28 = (type_5 *)var_56._0_4_;
  var_58 = (type_5 **)auStack_144._100_4_;
  if ((type_5 *)var_56._0_4_ == (type_5 *)0xc) goto LAB_0004dbbc;
  var_43 = 0x435;
LAB_0004ea9c:
  (**(type_7 **)(var_19 + 0x282f4))
            (*(int *)(var_19 + 0x27edc) + 0x2b30,*(int *)(var_19 + 0x27edc) + 0x2ac0,var_43,
             *(int *)(var_19 + 0x27edc) + 0x3030);
  var_34 = extraout_v1;
  var_18 = (type_2 *)auStack_144;
LAB_0004eabc:
  var_36 = 8;
  goto LAB_0004dab0;
}


(translation_unit (function_definition type: (type_identifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (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: (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: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) 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: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator 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: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (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: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) 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: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) 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: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator 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: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (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: (type_identifier) 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: (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: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) 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: (pointer_declarator declarator: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (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: (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: (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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier))) consequence: (goto_statement label: (statement_identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (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: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (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: (subscript_expression argument: (identifier) index: (number_literal)))) right: (binary_expression left: (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 (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (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)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (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: (compound_statement (labeled_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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))))) (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))))) (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (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 (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) 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: (pointer_expression argument: (identifier)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (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: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))))) (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))))) (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))) (goto_statement label: (statement_identifier)))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (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: (identifier))) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (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: (identifier)))) arguments: (argument_list (identifier)))))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (identifier))))) consequence: (compound_statement (return_statement (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (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 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: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (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)) (number_literal) (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))))))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) right: (number_literal))))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) right: (number_literal)) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))) right: (number_literal)))))))) consequence: (compound_statement (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: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) alternative: (else_clause (compound_statement (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: (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: (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: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (true)))))) (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)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal)))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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 (identifier)) arguments: (argument_list (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (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) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (identifier)))) consequence: (break_statement))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))) (return_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 (identifier)) arguments: (argument_list (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal)))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (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)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (identifier)) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (number_literal))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_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)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) 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 (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (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: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (number_literal) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (number_literal)) right: (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: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))) right: (identifier)) right: (identifier)))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (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: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_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: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))))) right: (number_literal)))))) arguments: (argument_list)))) (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier) (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) 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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) consequence: (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier) (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))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (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: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (binary_expression left: (identifier) right: (number_literal)) (identifier))))) (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: (identifier) right: (number_literal))) consequence: (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: (subscript_expression argument: (identifier) index: (number_literal))))) alternative: (else_clause (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))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier) (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)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))) right: (comma_expression left: (assignment_expression left: (subscript_expression argument: (identifier) index: (identifier)) right: (identifier)) right: (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (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: (identifier) right: (number_literal)) (identifier)))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (unary_expression argument: (identifier))) consequence: (goto_statement label: (statement_identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (false))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (false))))))) (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: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (while_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) 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: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))))) 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: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) arguments: (argument_list (pointer_expression argument: (identifier)) (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: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (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))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (do_statement body: (compound_statement (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: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (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: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))))))) consequence: (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (identifier) (pointer_expression argument: (identifier)) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))))) 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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (pointer_expression argument: (identifier)) (binary_expression left: (identifier) right: (number_literal)) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier) (pointer_expression argument: (identifier)) (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (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: (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: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (pointer_expression argument: (identifier)) (binary_expression left: (identifier) right: (number_literal)) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier) (pointer_expression argument: (identifier)) (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: (identifier)) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (identifier)) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (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: (identifier))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))))) condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))))) (expression_statement (assignment_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: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier))))))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (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: (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)))))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (binary_expression left: (identifier) right: (number_literal)) (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)) value: (parenthesized_expression (binary_expression left: (identifier) right: (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)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))))))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) arguments: (argument_list (identifier) (identifier)))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) 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: (number_literal)))) (goto_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: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier)) (identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (identifier) right: (parenthesized_expression (unary_expression argument: (identifier)))))))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (false))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (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)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (true))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (break_statement)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (identifier)) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (identifier)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (false))) (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: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal)) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (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: (identifier) right: (number_literal)) (identifier)))) right: (binary_expression left: (identifier) right: (number_literal))))))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (unary_expression argument: (identifier))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier))) right: (identifier))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal)) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (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: (false)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (false)))))) (goto_statement label: (statement_identifier))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) 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: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (unary_expression argument: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (identifier)) right: (number_literal))))) (binary_expression left: (subscript_expression argument: (identifier) index: (identifier)) right: (number_literal)) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) consequence: (goto_statement label: (statement_identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (identifier)) right: (number_literal))))) (binary_expression left: (subscript_expression argument: (identifier) index: (identifier)) right: (number_literal)) (identifier))))) (labeled_statement label: (statement_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: (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: (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 (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: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (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)))) (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))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) 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 (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 (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))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (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 (true)) body: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) arguments: (argument_list (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (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)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (while_statement condition: (parenthesized_expression (true)) 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: (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)))) (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 (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (pointer_expression argument: (identifier)) (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: (identifier) right: (number_literal)) (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 (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (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: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (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: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) right: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (false)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)) (identifier) (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (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: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) 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: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) 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: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (break_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))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (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: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) right: (number_literal))) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) right: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) right: (number_literal)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (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: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (true))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))))) consequence: (break_statement))) condition: (parenthesized_expression (true)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (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 (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)) (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))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (goto_statement label: (statement_identifier)))))

/* WARNING: Removing unreachable block (ram,0x0004da3c) */

uint MASKED(uint *param_1,uint *param_2,uint *param_3,uint *param_4)

{
  bool bVar1;
  bool bVar2;
  int *piVar3;
  bool bVar4;
  bool bVar5;
  uint uVar6;
  code *pcVar7;
  code *pcVar8;
  code *pcVar9;
  int *piVar10;
  uint uVar11;
  uint **ppuVar12;
  int iVar13;
  uint uVar14;
  int iVar15;
  int iVar16;
  int *piVar17;
  char cVar21;
  int iVar18;
  uint uVar19;
  undefined4 uVar20;
  bool bVar22;
  uint *puVar23;
  uint extraout_v1;
  uint **ppuVar24;
  int iVar25;
  int iVar26;
  uint uVar27;
  int iVar28;
  int iVar29;
  int iVar30;
  uint uVar31;
  uint *puVar32;
  int *piVar33;
  uint uVar34;
  undefined4 *puVar35;
  uint *puVar36;
  uint uVar37;
  uint *puVar38;
  uint *puVar39;
  uint uVar40;
  int *unaff_s4;
  uint uVar41;
  int unaff_s5;
  uint uVar42;
  int unaff_s6;
  uint *puVar43;
  int iVar44;
  uint *unaff_s7;
  code *pcVar45;
  undefined *puVar46;
  int unaff_s8;
  uint uStack_1f0;
  int *piStack_1ec;
  uint uStack_1e4;
  uint *puStack_1e0;
  uint **ppuStack_1dc;
  uint uStack_1d0;
  int iStack_180;
  uint *puStack_16c;
  uint uStack_168;
  uint uStack_164;
  int *piStack_160;
  int *piStack_15c;
  int iStack_158;
  uint uStack_154;
  undefined4 uStack_150;
  undefined4 uStack_14c;
  undefined4 uStack_148;
  uint *puStack_144;
  uint *puStack_140;
  int *piStack_13c;
  int iStack_138;
  int iStack_12c;
  uint *puStack_128;
  uint *puStack_124;
  uint uStack_120;
  uint uStack_11c;
  uint *puStack_118;
  uint *puStack_114;
  uint *puStack_110;
  uint *puStack_10c;
  undefined4 uStack_108;
  uint *puStack_104;
  uint *puStack_100;
  byte bStack_fc;
  byte bStack_fb;
  byte bStack_fa;
  byte bStack_f9;
  char cStack_f8;
  byte bStack_f7;
  byte bStack_f6;
  uint uStack_f4;
  uint *puStack_f0;
  undefined1 *puStack_ec;
  uint uStack_e8;
  int iStack_e4;
  int *piStack_e0;
  int iStack_dc;
  undefined4 uStack_d8;
  int iStack_d4;
  int iStack_d0;
  int iStack_cc;
  int iStack_c4;
  int iStack_c0;
  int iStack_bc;
  uint *puStack_b8;
  uint *puStack_b4;
  uint *puStack_b0;
  uint *puStack_ac;
  int *piStack_a8;
  int iStack_a4;
  int iStack_a0;
  uint *puStack_9c;
  int iStack_98;
  code *pcStack_94;
  uint *puStack_88;
  uint *local_80;
  uint *local_7c;
  uint *local_78;
  int *piStack_74;
  int local_64;
  uint local_38;
  undefined4 local_34;
  undefined4 *local_30;
  uint **local_2c;
  
  puVar46 = PTR___stack_chk_guard_00075be8;
  local_38 = 1;
  local_34 = 1;
  local_2c = *(uint ***)PTR___stack_chk_guard_00075be8;
  puVar36 = (uint *)param_2[3];
  puVar39 = (uint *)param_2[2];
  puVar23 = param_2;
  local_30 = (undefined4 *)(*(code *)PTR_malloc_00075b2c)(4);
  if (local_30 == (undefined4 *)0x0) {
    uVar6 = 0xc;
  }
  else {
    *local_30 = puVar39;
    pcVar45 = (code *)(PTR_DAT_00075978 + -0x1248);
    puVar23 = param_2;
    param_3 = puVar36;
    param_4 = &local_38;
    uVar6 = FUN_0004edb8(param_1);
    if (uVar6 == 0) {
      local_64 = 0;
      if (0 < (int)puVar36) {
        pcVar7 = (code *)(PTR_LAB_00075920 + 0x5610);
        pcVar8 = (code *)(PTR_LAB_00075920 + 0x33f8);
        pcVar9 = (code *)(PTR_LAB_00075920 + 0x5230);
        do {
          unaff_s7 = (uint *)((int)puVar36 * 4);
          if (*(int *)(*param_2 + (int)unaff_s7) == 0) {
            local_64 = local_64 + 1;
            if ((int)param_1[0x1e] < local_64) goto LAB_0004d6a0;
          }
          else {
            local_64 = 0;
            if ((int)param_1[0x1e] < 0) {
LAB_0004d6a0:
              puVar23 = (uint *)0x0;
              param_3 = unaff_s7;
              (*(code *)PTR_memset_00075ad4)();
              (*(code *)PTR_free_00075bfc)(local_30);
              uVar6 = 0;
              goto LAB_0004d644;
            }
          }
          local_34 = 0;
          unaff_s6 = *(int *)((int)unaff_s7 + (param_1[0x19] - 4));
          puVar36 = (uint *)((int)puVar36 + -1);
          if ((unaff_s6 != 0) && (unaff_s4 = (int *)param_1[0x15], 0 < *(int *)(unaff_s6 + 0x14))) {
            unaff_s5 = 0;
            do {
              puVar39 = *(uint **)(*(int *)(unaff_s6 + 0x18) + unaff_s5 * 4);
              unaff_s8 = (int)puVar39 * 8;
              iVar29 = *unaff_s4 + unaff_s8;
              if ((*(uint *)(iVar29 + 4) & 0x800) == 0) {
LAB_0004d464:
                iVar29 = FUN_00047bf8(param_1,iVar29,puVar36);
                if (iVar29 != 0) {
                  iVar29 = *(int *)(*param_2 + (int)unaff_s7);
                  if (iVar29 != 0) {
                    param_3 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);
                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar29 + 8),iVar29 + 0xc);
                    iVar29 = 1;
                    if (iVar30 != 0) goto LAB_0004d4b4;
                  }
                }
              }
              else {
                puVar35 = (undefined4 *)param_1[0x15];
                uVar6 = param_2[3];
                param_3 = puVar39;
                param_4 = param_1;
                local_80 = puVar36;
                iVar29 = FUN_0004b150(*puVar35,puVar35 + 0x20);
                if (iVar29 < 1) {
                  if (iVar29 == 0) {
                    iVar29 = *unaff_s4;
                    goto LAB_0004d460;
                  }
                }
                else if ((int)puVar36 + iVar29 <= (int)uVar6) {
                  iVar30 = *(int *)(*param_2 + ((int)puVar36 + iVar29) * 4);
                  if (iVar30 != 0) {
                    param_3 = *(uint **)(puVar35[3] + (int)puVar39 * 4);
                    iVar30 = (*pcVar9)(*(undefined4 *)(iVar30 + 8),iVar30 + 0xc);
                    if (iVar30 != 0) goto LAB_0004d4b4;
                  }
                  iVar29 = *unaff_s4;
LAB_0004d460:
                  iVar29 = iVar29 + unaff_s8;
                  goto LAB_0004d464;
                }
LAB_0004d4b4:
                if (param_2[5] != 0) {
                  local_80 = (uint *)((int)puVar36 + iVar29);
                  param_3 = param_2 + 6;
                  param_4 = *(uint **)(unaff_s4[3] + (int)puVar39 * 4);
                  local_7c = puVar39;
                  local_78 = puVar36;
                  iVar29 = (*pcVar7)(param_1,param_2 + 5);
                  if (iVar29 != 0) goto LAB_0004d510;
                }
                puVar23 = puVar39;
                iVar29 = (*pcVar8)(&local_38);
                if (iVar29 == 0) {
                  uVar6 = 0xc;
                  goto LAB_0004d62c;
                }
              }
LAB_0004d510:
              unaff_s5 = unaff_s5 + 1;
              param_4 = &local_38;
            } while (unaff_s5 < *(int *)(unaff_s6 + 0x14));
          }
          puVar23 = param_2;
          param_3 = puVar36;
          param_4 = &local_38;
          uVar6 = (*pcVar45)(param_1);
          if (uVar6 != 0) goto LAB_0004d62c;
        } while (puVar36 != (uint *)0x0);
      }
      uVar6 = 0;
    }
LAB_0004d62c:
    (*(code *)PTR_free_00075bfc)(local_30);
  }
LAB_0004d644:
  if (local_2c == *(uint ***)puVar46) {
    return uVar6;
  }
  pcVar45 = FUN_0004d6dc;
  ppuVar24 = local_2c;
  puVar46 = PTR___stack_chk_fail_00075ba8;
  (*(code *)PTR___stack_chk_fail_00075ba8)();
  puVar32 = local_7c;
  puVar38 = local_80;
  piVar10 = *(int **)(puVar46 + 0x2850c);
  iStack_bc = *piVar10;
  puVar43 = *ppuVar24;
  puStack_b8 = puVar36;
  puStack_b4 = param_2;
  puStack_b0 = param_1;
  puStack_ac = puVar39;
  piStack_a8 = unaff_s4;
  iStack_a4 = unaff_s5;
  iStack_a0 = unaff_s6;
  puStack_9c = unaff_s7;
  iStack_98 = unaff_s8;
  pcStack_94 = pcVar45;
  puStack_88 = param_3;
  (**(code **)(puVar46 + 0x283f8))(&puStack_144,0,0x88);
  puStack_1e0 = ppuVar24[4];
  if (puStack_1e0 != (uint *)0x0) {
    if (((*(byte *)(ppuVar24 + 7) & 0x10) == 0) || (param_4 == puVar38)) {
      puStack_1e0 = (uint *)0x0;
    }
    else if ((char)*(byte *)(ppuVar24 + 7) < '\0') {
      puStack_1e0 = (uint *)0x0;
    }
  }
  puVar36 = ppuVar24[6];
  if (puVar36 < local_78) {
    iStack_180 = ((int)local_78 + -1) - (int)puVar36;
    local_78 = (uint *)((int)local_78 + ((int)puVar36 - ((int)local_78 + -1)));
    puVar36 = ppuVar24[2];
  }
  else {
    puVar36 = ppuVar24[2];
    iStack_180 = 0;
  }
  puStack_f0 = puVar43;
  if ((((puVar36 == (uint *)0x0) || (puVar43[9] == 0)) || (puVar43[10] == 0)) ||
     ((puVar43[0xb] == 0 || (puVar43[0xc] == 0)))) {
LAB_0004db54:
    uStack_1e4 = 1;
    goto LAB_0004db58;
  }
  if (((*(int *)(puVar43[9] + 8) == 0) && (*(int *)(puVar43[10] + 8) == 0)) &&
     ((*(int *)(puVar43[0xb] + 8) == 0 || (((uint)ppuVar24[7] & 0x1000000) == 0)))) {
    if (param_4 == (uint *)0x0) {
      puVar38 = (uint *)0x0;
    }
    else {
      if (puVar38 != (uint *)0x0) goto LAB_0004db54;
      param_4 = (uint *)0x0;
    }
  }
  if (local_78 == (uint *)0x0) {
    bVar22 = puVar43[0x13] != 0;
  }
  else {
    bVar22 = true;
  }
  uStack_f4 = puVar43[0x17];
  puVar36 = ppuVar24[5];
  uVar6 = puVar43[2] + 1;
  if ((int)(puVar43[2] + 1) < (int)uStack_f4) {
    uVar6 = uStack_f4;
  }
  bStack_fc = (byte)((uint)((int)ppuVar24[3] << 9) >> 0x18);
  bStack_f9 = 1;
  if (puVar36 == (uint *)0x0) {
    bStack_f9 = bStack_fc >> 7;
  }
  uVar34 = (int)puStack_88 + 1U;
  if ((int)uVar6 <= (int)((int)puStack_88 + 1U)) {
    uVar34 = uVar6;
  }
  bStack_fc = bStack_fc >> 7;
  bStack_fb = (byte)((puVar43[0x16] << 2) >> 0x1f);
  bStack_fa = (byte)((puVar43[0x16] << 3) >> 0x1f);
  puStack_114 = puStack_88;
  puStack_118 = puStack_88;
  puStack_10c = puStack_88;
  puStack_110 = puStack_88;
  puStack_144 = puVar23;
  puStack_104 = puVar36;
  uStack_1e4 = FUN_00043278(&puStack_144,uVar34);
  piVar17 = piStack_e0;
  if (uStack_1e4 != 0) {
LAB_0004dbbc:
    while( true ) {
      pcVar45 = *(code **)(puVar46 + 0x28520);
LAB_0004dbc0:
      (*pcVar45)(piVar17);
      if (puVar43[0x13] != 0) {
LAB_0004dc14:
        FUN_00044db0(&puStack_144);
        (**(code **)(puVar46 + 0x28520))(iStack_c0);
        (**(code **)(puVar46 + 0x28520))(iStack_d0);
      }
LAB_0004dbd4:
      FUN_00044d40(&puStack_144);
LAB_0004db58:
      if (iStack_bc == *piVar10) break;
      uStack_1e4 = (**(code **)(puVar46 + 0x284cc))();
      piVar17 = piStack_e0;
    }
    return uStack_1e4;
  }
  puStack_100 = puVar43 + 0x18;
  bStack_f6 = (byte)((puVar43[0x16] << 4) >> 0x1f);
  if ((bStack_f9 != 0) || (puStack_140 = puVar23, puStack_128 = puStack_88, 1 < (int)puVar43[0x17]))
  {
    puStack_128 = (uint *)0x0;
  }
  puStack_10c = puVar32;
  puStack_110 = puVar32;
  puStack_124 = puStack_128;
  bStack_f7 = (byte)((uint)((int)ppuVar24[7] << 7) >> 0x1f);
  uVar6 = puVar43[0x13];
  iVar29 = uVar6 * 2;
  puStack_ec = &_gp_1;
  uStack_e8 = 0xffffffff;
  if (0 < iVar29) {
    if (0xccccccc < iVar29) goto LAB_0004dbf8;
    iVar30 = (**(code **)(puVar46 + 0x28450))(uVar6 * 0x28);
    iStack_d0 = iVar30;
    iStack_c0 = (**(code **)(puVar46 + 0x28450))(uVar6 * 8);
    if ((iVar30 == 0) || (iStack_c0 == 0)) goto LAB_0004dbf8;
  }
  iStack_d4 = iVar29;
  iStack_c4 = iVar29;
  bVar1 = (uint *)0x1 < local_78;
  iStack_cc = 1;
  if ((bVar1) || ((puVar43[0x16] & 0x40000000) != 0)) {
    if (0x3ffffffe < uStack_120) {
LAB_0004dbf8:
      uStack_1e4 = 0xc;
      (**(code **)(puVar46 + 0x28520))(piStack_e0);
      if (puVar43[0x13] == 0) goto LAB_0004dbd4;
      goto LAB_0004dc14;
    }
    piStack_e0 = (int *)(**(code **)(puVar46 + 0x28450))((uStack_120 + 1) * 4);
    piVar17 = piStack_e0;
    if (piStack_e0 == (int *)0x0) {
LAB_0004dbb4:
      uStack_1e4 = 0xc;
      goto LAB_0004dbbc;
    }
  }
  else {
    piStack_e0 = (int *)0x0;
  }
  uVar34 = puVar43[0x17];
  iVar29 = -1;
  puStack_16c = param_4;
  uStack_108 = 6;
  uVar6 = (uint)((int)puVar38 < (int)param_4);
  puVar23 = puVar38;
  if (uVar6 == 0) {
    iVar29 = 1;
    puVar23 = param_4;
  }
  if ((int)puVar38 <= (int)param_4) {
    puVar38 = param_4;
  }
  if (puStack_1e0 == (uint *)0x0) goto LAB_0004eabc;
  uVar11 = 4;
  if (((uVar34 != 1) && (uVar11 = 0, -1 < (int)ppuVar24[3] << 9)) &&
     (uVar11 = 4, puVar36 != (uint *)0x0)) {
    uVar11 = 0;
  }
  uVar31 = 2;
  if (uVar6 != 0) {
    uVar31 = 0;
  }
  uVar31 = puVar36 != (uint *)0x0 | uVar11 | uVar31;
LAB_0004dab0:
  if (((int)puVar23 <= (int)param_4) && ((int)param_4 <= (int)puVar38)) {
    ppuVar12 = &puStack_16c;
    if (uVar6 != 0) {
      ppuVar12 = (uint **)0x0;
    }
    iVar25 = *(int *)(puVar46 + 0x28244);
    iVar13 = *(int *)(puVar46 + 0x27edc);
    iVar26 = *(int *)(puVar46 + 0x2829c);
    iVar30 = iStack_12c;
    puVar36 = puStack_88;
    do {
      puStack_88 = puVar36;
      if (uVar31 - 4 < 5) {
                    /* WARNING: Could not recover jumptable at 0x0004db3c. Too many branches */
                    /* WARNING: Treating indirect jump as call */
        uVar6 = (*(code *)(puVar46 + *(int *)(iVar13 + 0x2be4 + (uVar31 - 4) * 4) + 0x2fea4))();
        return uVar6;
      }
      iStack_12c = iVar30;
      while( true ) {
        puVar39 = (uint *)((int)param_4 - iVar30);
        if (puStack_124 <= puVar39) {
          uStack_1e4 = (*(code *)(iVar25 + 0x7eac))(&puStack_144,param_4,&_gp_1);
          piVar17 = piStack_e0;
          if (uStack_1e4 != 0) goto LAB_0004dbbc;
          puVar39 = (uint *)((int)param_4 - iStack_12c);
          iVar30 = iStack_12c;
        }
        if ((int)param_4 < (int)puVar36) {
          cVar21 = *(char *)((int)puStack_1e0 + (uint)*(byte *)((int)puStack_140 + (int)puVar39));
        }
        else {
          cVar21 = *(char *)puStack_1e0;
        }
        if (cVar21 != '\0') break;
        param_4 = (uint *)((int)param_4 + iVar29);
        puStack_16c = param_4;
        if (((int)param_4 < (int)puVar23) || ((int)puVar38 < (int)param_4)) goto LAB_0004df68;
      }
      uVar11 = FUN_00047eac(&puStack_144,param_4,&_gp_1);
      puVar36 = puStack_f0;
      uVar6 = uStack_11c;
      piVar17 = piStack_e0;
      uStack_1e4 = uVar11;
      if (uVar11 != 0) goto LAB_0004dbbc;
      if (((uVar34 == 1) || (puStack_128 == (uint *)0x0)) || (*piStack_13c != -1)) {
        iStack_cc = 0;
        uStack_d8 = 0;
        uVar41 = puStack_f0[9];
        uStack_1d0 = uStack_11c;
        iStack_dc = 0;
        uStack_168 = 0;
        if ((*(byte *)(uVar41 + 0x34) & 1) != 0) {
          uVar14 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);
          if ((uVar14 & 1) == 0) {
            if (uVar14 == 0) goto LAB_0004dd24;
            if ((uVar14 & 6) == 6) {
              uVar41 = puVar36[0xc];
            }
            else if ((uVar14 & 2) == 0) {
              if ((uVar14 & 4) == 0) goto LAB_0004dd24;
              uVar41 = FUN_00046cac(&uStack_168,puVar36,*(undefined4 *)(uVar41 + 0x28),uVar14);
            }
            else {
              uVar41 = puVar36[0xb];
            }
          }
          else {
            uVar41 = puVar36[10];
          }
          if (uVar41 == 0) goto code_r0x0004ea7c;
        }
LAB_0004dd24:
        bVar4 = ppuVar12 != (uint **)0x0;
        if ((piStack_e0 == (int *)0x0) ||
           (uVar14 = puVar36[0x13], piStack_e0[uVar6] = uVar41, uVar14 == 0)) {
LAB_0004dd48:
          if (*(int *)(uVar41 + 0x34) << 4 < 0) {
            if (((*(byte *)(uVar41 + 0x34) & 1) == 0) ||
               (iVar30 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar41 + 8),uVar41 + 0xc,uVar6),
               iVar30 != 0)) {
              uVar14 = uVar6;
              bVar5 = bVar22;
              if (!bVar22) goto LAB_0004e0e4;
            }
            else {
              uVar6 = 0xffffffff;
              bVar5 = false;
            }
          }
          else {
            uVar6 = 0xffffffff;
            bVar5 = false;
          }
          iVar30 = *(int *)(puVar46 + 0x28244);
          iVar15 = *(int *)(puVar46 + 0x2829c);
          uVar14 = uStack_11c;
          ppuStack_1dc = ppuVar12;
          while ((int)uVar14 < (int)puStack_10c) {
            uVar40 = uVar14 + 1;
            if ((((int)uVar40 < (int)uStack_120) || ((int)puStack_114 <= (int)uStack_120)) &&
               (((int)uVar40 < (int)puStack_128 || ((int)puStack_114 <= (int)puStack_128)))) {
              iVar16 = *(int *)(uVar41 + 0x34);
              puVar36 = puStack_f0;
            }
            else {
              uStack_168 = (*(code *)(iVar30 + 0x41e4))(&puStack_144,uVar14 + 2);
              if (uStack_168 != 0) {
                if (uStack_168 == 0xc) goto LAB_0004dbf8;
                uVar20 = 0x46c;
                goto LAB_0004ea9c;
              }
              iVar16 = *(int *)(uVar41 + 0x34);
              uVar14 = uStack_11c;
              puVar36 = puStack_f0;
            }
            puStack_f0 = puVar36;
            if (iVar16 << 5 < 0) {
              iVar16 = *(int *)(uVar41 + 8);
              if (0 < iVar16) {
                param_4 = (uint *)0x0;
                iVar18 = *(int *)(puVar46 + 0x28244);
                pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7ab0);
                do {
                  uVar42 = *puVar36;
                  iVar44 = *(int *)(*(int *)(uVar41 + 0xc) + (int)param_4 * 4);
                  uVar37 = *(uint *)(uVar42 + iVar44 * 8 + 4);
                  if ((uVar37 & 0x800) != 0) {
                    if ((uVar37 & 0xffc000) != 0) {
                      uVar19 = (*pcVar45)(&puStack_144,uVar14,puStack_ec);
                      uVar37 = (uVar37 << 8) >> 0x16;
                      if ((uVar37 & 4) == 0) {
                        uVar27 = uVar19 & 1;
                        if ((uVar37 & 8) != 0) goto joined_r0x0004e514;
                      }
                      else {
                        uVar27 = uVar37 & 8;
                        if ((uVar19 & 1) == 0) goto LAB_0004e670;
joined_r0x0004e514:
                        if (uVar27 != 0) goto LAB_0004e670;
                      }
                      if ((((uVar37 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||
                         (((uVar37 & 0x80) != 0 && ((uVar19 & 8) == 0)))) goto LAB_0004e670;
                    }
                    iVar16 = (*(code *)(iVar15 + -0x4eb0))
                                       (uVar42,puVar36 + 0x20,iVar44,&puStack_144,uVar14);
                    if (iVar16 != 0) {
                      if (iStack_cc < iVar16) {
                        iStack_cc = iVar16;
                      }
                      iVar16 = iVar16 + uStack_11c;
                      uStack_164 = (*(code *)(iVar18 + 0x43b0))(&puStack_144,iVar16);
                      uVar14 = uStack_164;
                      if (uStack_164 != 0) goto joined_r0x0004e770;
                      piVar33 = piStack_e0 + iVar16;
                      iVar28 = *piVar33;
                      piVar17 = (int *)(puVar36[6] + *(int *)(puVar36[3] + iVar44 * 4) * 0xc);
                      if (iVar28 == 0) {
                        piStack_160 = (int *)*piVar17;
                        piStack_15c = (int *)piVar17[1];
                        iStack_158 = piVar17[2];
                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);
                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);
                        *piVar33 = iVar44;
                      }
                      else {
                        uStack_164 = FUN_00046ab0(&piStack_160,*(undefined4 *)(iVar28 + 0x28));
                        uVar14 = uStack_164;
                        if (uStack_164 != 0) goto joined_r0x0004e770;
                        uVar20 = (*pcVar45)(&puStack_144,iVar16 + -1,puStack_ec);
                        piVar17 = piStack_e0 + iVar16;
                        iVar44 = FUN_00046cac(&uStack_164,puVar36,&piStack_160,uVar20);
                        pcVar7 = *(code **)(puVar46 + 0x28520);
                        *piVar17 = iVar44;
                        (*pcVar7)(iStack_158);
                      }
                      if ((piStack_e0[iVar16] == 0) && (uVar14 = uStack_164, uStack_164 != 0))
                      goto joined_r0x0004e770;
                    }
                    iVar16 = *(int *)(uVar41 + 8);
                    uVar14 = uStack_11c;
                  }
LAB_0004e670:
                  param_4 = (uint *)((int)param_4 + 1);
                } while ((int)param_4 < iVar16);
              }
              uStack_168 = 0;
            }
            uStack_11c = uVar14 + 1;
            uVar14 = (uint)*(byte *)((int)puStack_140 + uVar14);
            do {
              if (*(int *)(uVar41 + 0x2c) != 0) {
                uVar37 = *(uint *)(*(int *)(uVar41 + 0x2c) + uVar14 * 4);
LAB_0004ddf0:
                if (piStack_e0 != (int *)0x0) goto LAB_0004ddfc;
                goto LAB_0004de1c;
              }
              iVar16 = *(int *)(uVar41 + 0x30);
              if (iVar16 != 0) {
                uVar37 = FUN_00047ab0(&puStack_144,uStack_11c - 1,puStack_ec);
                if ((uVar37 & 1) == 0) {
                  uVar37 = *(uint *)(iVar16 + uVar14 * 4);
                }
                else {
                  uVar37 = *(uint *)(iVar16 + (uVar14 + 0x100) * 4);
                }
                goto LAB_0004ddf0;
              }
              iVar16 = (*(code *)(iVar26 + -0x7510))(puStack_f0,uVar41);
            } while (iVar16 != 0);
            uStack_168 = 0xc;
            uVar14 = uStack_168;
joined_r0x0004e770:
            uStack_168 = uVar14;
            if (piStack_e0 == (int *)0x0) {
              piVar17 = (int *)0x0;
              goto LAB_0004dbb4;
            }
            uVar37 = 0;
LAB_0004ddfc:
            uVar37 = FUN_0004d0a8(&uStack_168,&puStack_144,uVar37);
LAB_0004de1c:
            uVar14 = uStack_11c;
            if (uVar37 == 0) {
              piVar17 = piStack_e0;
              if (uStack_168 != 0) goto LAB_0004dbb4;
              if ((piStack_e0 == (int *)0x0) || ((bVar5 && (!bVar22)))) break;
              param_4 = &uStack_168;
              do {
                bVar2 = false;
                piVar17 = piStack_e0 + uStack_11c;
                uVar14 = uStack_11c;
                do {
                  uVar37 = uVar14 + 1;
                  piVar17 = piVar17 + 1;
                  if (iStack_dc < (int)uVar37) {
                    if (bVar2) {
                      uStack_11c = uVar14;
                    }
                    goto LAB_0004e0cc;
                  }
                  bVar2 = true;
                  uVar14 = uVar37;
                } while (*piVar17 == 0);
                uStack_11c = uVar37;
                uVar37 = FUN_0004d0a8(param_4,&puStack_144,0);
                uVar14 = uStack_11c;
                if (uStack_168 != 0) {
                  if (uVar37 == 0) goto LAB_0004e0cc;
                  break;
                }
              } while (uVar37 == 0);
            }
            uVar42 = uStack_1d0;
            if ((bVar4) && (uVar42 = uVar40, uVar41 != uVar37)) {
              bVar4 = false;
              uVar42 = uStack_1d0;
            }
            uStack_1d0 = uVar42;
            uVar41 = uVar37;
            uStack_11c = uVar14;
            if (((*(byte *)(uVar37 + 0x34) & 8) != 0) &&
               (((*(byte *)(uVar37 + 0x34) & 1) == 0 ||
                (iVar16 = FUN_00047d8c(&puStack_144,*(undefined4 *)(uVar37 + 8),uVar37 + 0xc,uVar14)
                , iVar16 != 0)))) {
              if (!bVar22) goto LAB_0004e0e4;
              ppuStack_1dc = (uint **)0x0;
              uVar6 = uVar14;
              bVar5 = bVar22;
            }
          }
LAB_0004e0cc:
          uVar14 = uVar6;
          if (ppuStack_1dc != (uint **)0x0) {
            *ppuStack_1dc = (uint *)((int)*ppuStack_1dc + uStack_1d0);
          }
        }
        else {
          uVar14 = FUN_00047924(&puStack_144,uVar41 + 8,uVar41 + 0xc,0);
          uStack_168 = uVar14;
          if (uVar14 == 0) {
            if ((*(byte *)(uVar41 + 0x34) & 2) == 0) {
              bVar4 = false;
            }
            else {
              uVar14 = FUN_0004c6a8(&puStack_144,uVar41 + 8,uVar41 + 0xc);
              uStack_168 = uVar14;
              if (uVar14 != 0) goto LAB_0004e0e4;
              bVar4 = false;
            }
            goto LAB_0004dd48;
          }
        }
LAB_0004e0e4:
        piVar17 = piStack_e0;
        if (uVar14 != 0xffffffff) {
          if (uVar14 == 0xfffffffe) goto LAB_0004dbf8;
          uStack_e8 = uVar14;
          if (((uint)ppuVar24[7] & 0x8000000) == 0) {
            if (!bVar1) {
              uVar6 = puVar43[0x13];
              goto joined_r0x0004e94c;
            }
            pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);
            iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),
                                     piStack_e0[uVar14] + 0xc,uVar14);
            if ((*(char *)(puVar43 + 0x16) < '\0') || (puVar43[0x13] != 0)) goto LAB_0004e170;
          }
          else {
            uVar6 = puVar43[0x13];
joined_r0x0004e94c:
            if (uVar6 != 0) {
              pcVar45 = (code *)(*(int *)(puVar46 + 0x28244) + 0x7d8c);
              iStack_e4 = FUN_00047d8c(&puStack_144,*(undefined4 *)(piStack_e0[uVar14] + 8),
                                       piStack_e0[uVar14] + 0xc,uVar14);
LAB_0004e170:
              iVar30 = iStack_e4;
              puVar36 = puStack_f0;
              if (uVar14 < 0x3fffffff) {
                uStack_1f0 = uVar14 + 1;
                piVar17 = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);
                if (piVar17 == (int *)0x0) goto LAB_0004dbf8;
                if (puVar36[0x13] == 0) {
                  piStack_15c = (int *)0x0;
                  uStack_150 = 0;
                  uStack_14c = 0;
                  uStack_148 = 0;
                  piStack_160 = piVar17;
                  iStack_158 = iVar30;
                  uStack_154 = uVar14;
                  uStack_1e4 = MASKED(&puStack_144,&piStack_160);
                  (**(code **)(puVar46 + 0x28520))(uStack_148);
                  if (uStack_1e4 == 0) {
                    if (*piVar17 == 0) {
                      (**(code **)(puVar46 + 0x28520))(piVar17);
                      goto LAB_0004e2d4;
                    }
LAB_0004e9f8:
                    (**(code **)(puVar46 + 0x28520))(piStack_e0);
                    uStack_e8 = uVar14;
                    iStack_e4 = iVar30;
                    piStack_e0 = piVar17;
                    goto LAB_0004e7e0;
                  }
LAB_0004ed18:
                  piStack_1ec = (int *)0x0;
                }
                else {
                  piStack_1ec = (int *)(**(code **)(puVar46 + 0x28450))(uStack_1f0 * 4);
                  if (piStack_1ec == (int *)0x0) {
                    (**(code **)(puVar46 + 0x28520))(piVar17);
                    uStack_1e4 = 0xc;
                    piVar17 = piStack_e0;
                    goto LAB_0004dbbc;
                  }
                  iVar15 = *(int *)(puVar46 + 0x2829c);
                  while( true ) {
                    (**(code **)(puVar46 + 0x283f8))(piStack_1ec,0,uStack_1f0 * 4);
                    uStack_150 = 0;
                    uStack_14c = 0;
                    uStack_148 = 0;
                    piStack_160 = piVar17;
                    piStack_15c = piStack_1ec;
                    iStack_158 = iVar30;
                    uStack_154 = uVar14;
                    uStack_1e4 = (*(code *)(iVar15 + -0x2cf4))(&puStack_144,&piStack_160);
                    (**(code **)(puVar46 + 0x28520))(uStack_148);
                    if (uStack_1e4 != 0) break;
                    if ((*piVar17 != 0) || (*piStack_1ec != 0)) {
                      uStack_1e4 = FUN_00047390(puVar36,piVar17,piStack_1ec,uStack_1f0);
                      (**(code **)(puVar46 + 0x28520))(piStack_1ec);
                      if (uStack_1e4 != 0) goto LAB_0004ed18;
                      goto LAB_0004e9f8;
                    }
                    piVar33 = piStack_e0 + (uStack_1f0 - 1);
                    uStack_1f0 = uVar14;
                    while( true ) {
                      uVar14 = uStack_1f0 - 1;
                      if (uVar14 == 0xffffffff) {
                        (**(code **)(puVar46 + 0x28520))(piVar17);
                        (**(code **)(puVar46 + 0x28520))(piStack_1ec);
                        goto LAB_0004e2d4;
                      }
                      iVar30 = piVar33[-1];
                      if ((iVar30 != 0) && ((*(byte *)(iVar30 + 0x34) & 8) != 0)) break;
                      piVar33 = piVar33 + -1;
                      uStack_1f0 = uVar14;
                    }
                    iVar30 = (*pcVar45)(&puStack_144,*(undefined4 *)(iVar30 + 8),iVar30 + 0xc,uVar14
                                       );
                  }
                }
                (**(code **)(puVar46 + 0x28520))(piVar17);
                (**(code **)(puVar46 + 0x28520))(piStack_1ec);
                piVar17 = piStack_e0;
                if (uStack_1e4 == 1) goto LAB_0004e2d4;
                goto LAB_0004dbbc;
              }
              uStack_1e4 = 0xc;
              goto LAB_0004dbbc;
            }
          }
LAB_0004e7e0:
          piVar17 = piStack_e0;
          uStack_1e4 = uVar11;
          if (local_78 == (uint *)0x0) goto LAB_0004dbbc;
          puVar23 = ppuVar24[7];
          if (bVar1) {
            piVar17 = piStack_74 + 2;
            do {
              piVar17[1] = -1;
              piVar33 = piVar17 + 2;
              *piVar17 = -1;
              piVar17 = piVar33;
            } while (piStack_74 + (int)local_78 * 2 != piVar33);
            *piStack_74 = 0;
            piStack_74[1] = uStack_e8;
            if (((uint)puVar23 & 0x8000000) == 0) {
              if (*(char *)(puVar43 + 0x16) < '\0') {
                bVar22 = 0 < (int)puVar43[0x13];
              }
              else {
                bVar22 = false;
              }
              uStack_1e4 = FUN_0004bc00(ppuVar24,&puStack_144,local_78,piStack_74,bVar22);
              piVar17 = piStack_e0;
              if (uStack_1e4 != 0) goto LAB_0004dbbc;
              puVar23 = (uint *)*piStack_74;
            }
            else {
LAB_0004e838:
              puVar23 = (uint *)0x0;
            }
            puVar36 = (uint *)0x0;
            piVar17 = piStack_74;
            while( true ) {
              if (puVar23 != (uint *)0xffffffff) {
                puVar32 = (uint *)piVar17[1];
                puVar39 = puVar23;
                puVar38 = puVar32;
                if (cStack_f8 != '\0') {
                  puVar39 = puStack_124;
                  if (puStack_128 != puVar23) {
                    puVar39 = *(uint **)(iStack_138 + (int)puVar23 * 4);
                  }
                  *piVar17 = (int)puVar39;
                  puVar38 = puStack_124;
                  if (puStack_128 != puVar32) {
                    puVar38 = *(uint **)(iStack_138 + (int)puVar32 * 4);
                  }
                }
                *piVar17 = (int)puStack_16c + (int)puVar39;
                piVar17[1] = (int)puStack_16c + (int)puVar38;
              }
              puVar36 = (uint *)((int)puVar36 + 1);
              piVar17 = piVar17 + 2;
              if (puVar36 == local_78) break;
              puVar23 = (uint *)*piVar17;
            }
            if (0 < iStack_180) {
              piVar17 = piStack_74 + (int)local_78 * 2;
              do {
                *piVar17 = -1;
                piVar33 = piVar17 + 2;
                piVar17[1] = -1;
                piVar17 = piVar33;
              } while (piStack_74 + (iStack_180 + (int)local_78) * 2 != piVar33);
            }
            piVar33 = (int *)puVar43[0x21];
            piVar17 = piStack_e0;
            uStack_1e4 = uVar11;
            if (piVar33 != (int *)0x0) {
              iVar29 = 0;
              piVar3 = piStack_74;
              do {
                pcVar45 = *(code **)(puVar46 + 0x28520);
                if (iVar29 == (int)local_78 + -1) goto LAB_0004dbc0;
                if (*piVar33 != iVar29) {
                  piVar3[2] = piStack_74[(*piVar33 + 1) * 2];
                  piVar3[3] = piStack_74[(*piVar33 + 1) * 2 + 1];
                }
                iVar29 = iVar29 + 1;
                piVar33 = piVar33 + 1;
                piVar3 = piVar3 + 2;
              } while( true );
            }
            goto LAB_0004dbbc;
          }
          *piStack_74 = 0;
          piStack_74[1] = uStack_e8;
          goto LAB_0004e838;
        }
LAB_0004e2d4:
        FUN_00044db0(&puStack_144);
        param_4 = puStack_16c;
      }
      param_4 = (uint *)((int)param_4 + iVar29);
      puStack_16c = param_4;
      if (((int)param_4 < (int)puVar23) ||
         (iVar30 = iStack_12c, puVar36 = puStack_88, (int)puVar38 < (int)param_4)) break;
    } while( true );
  }
LAB_0004df68:
  uStack_1e4 = 1;
  piVar17 = piStack_e0;
  goto LAB_0004dbbc;
code_r0x0004ea7c:
  uStack_1e4 = uStack_168;
  piVar17 = piStack_e0;
  if (uStack_168 == 0xc) goto LAB_0004dbbc;
  uVar20 = 0x435;
LAB_0004ea9c:
  (**(code **)(puVar46 + 0x282f4))
            (*(int *)(puVar46 + 0x27edc) + 0x2b30,*(int *)(puVar46 + 0x27edc) + 0x2ac0,uVar20,
             *(int *)(puVar46 + 0x27edc) + 0x3030);
  uVar6 = extraout_v1;
  ppuVar24 = &puStack_144;
LAB_0004eabc:
  uVar31 = 8;
  goto LAB_0004dab0;
}

